Использование проверки Selfpermission в Android?Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Использование проверки Selfpermission в Android?

Сообщение Anonymous »

Я работаю над приложением, которое требует нескольких разрешений от пользователя (местоположение, внешнее хранилище, камеру и состояние телефона), и если я помесчу запросы один за другим, только одно обращается к пользователю, когда я запускаю приложение, что является проблемой: < /p>

if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
//ask for the location permission
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.ACCESS_FINE_LOCATION}, 123);

}
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) {
//ask for the location permission
ActivityCompat.requestPermissions(this,
new String[]{Manifest.permission.CAMERA}, REQUEST_CAMERA);

}
if (ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE)
!= PackageManager.PERMISSION_GRANTED
|| ContextCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE)
!= PackageManager.PERMISSION_GRANTED) {

ActivityCompat.requestPermissions(this,
PERMISSION_EXTERNAL, REQUEST_EXTERNAL_STORAGE);
}

if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_PHONE_STATE)!= PackageManager.PERMISSION_GRANTED)
{
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_PHONE_STATE}, REQUEST_PHONE_STATE);
}
< /code>

Наличие нескольких тестов для создания строки со всеми необходимыми запросами на разрешение, которые были довольно раздражающими, я попытался просто попросить разрешения без тестирования, если они предоставляются с помощью метода проверки Selfpermision: < /p>

ActivityCompat.requestPermissions(this,
new String[]{Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.ACCESS_FINE_LOCATION,Manifest.permission.CAMERA,Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.READ_EXTERNAL_STORAGE,Manifest.permission.READ_PHONE_STATE}, REQUEST_MULTIPLE);
< /code>

И он работает, он складывает все различные запросы, одну за другой, если я повторный приложение, оно не спрашивает снова, поскольку разрешения были предоставлены, и если я вручную удаляю одно из разрешений, приложение только запрашивает то, что я удалял. Есть ли риск, который я пропустил или не знаю?

Подробнее здесь: https://stackoverflow.com/questions/463 ... in-android
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»