Приложение Android не запрашивает разрешения при установке

Я работаю в ИТ-отделе своего университета, и мы работаем над приложением, которое устанавливает правильную настройку для WiFi-среды eduroam (возможно, вы слышали об этом).

Однако у меня есть проблема с запуском на моем собственном LG G4 с Android 6.0. При установке скомпилированного *.apk он не запрашивает никаких разрешений, хотя они установлены в AndroidManifest.xml. Он работал над всеми предыдущими версиями Android.

Обязательно ли теперь запрашивать разрешения во время выполнения?

Ответ 1

Если ваша целевая версия SDK равна 23, тогда вам нужно попросить "опасные" разрешения во время выполнения.

Если это так, вы должны уметь видеть, что разрешения не были предоставлены, если вы перейдете в " Settings > Apps > "Your app" > Permissions.

Если вы не хотите внедрять новую систему, то вы можете уменьшить целевую версию sdk до 22, чтобы получить старую систему разрешений. Вы все еще можете скомпилировать с помощью sdk версии 23.

Дополнительную информацию см. В документации.

Ответ 2

если вы хотите выполнить время выполнения справки, вы должны написать специальный запрос в своем приложении. Что-то вроде этого:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
        createPermissions();
}
public void createPermissions(){
    String permission = Manifest.permission.READ_SMS;
    if (ContextCompat.checkSelfPermission(getContext(), permission) != PackageManager.PERMISSION_GRANTED){    
        if(!ActivityCompat.shouldShowRequestPermissionRationale(getActivity(), permission)){
              requestPermissions(new String[]{permission}),
                        SMS_PERMISSION);
        }
    }
}