как узнать список разрешений, используемых в android? - PullRequest
1 голос
/ 24 февраля 2020

Прежде всего, я не очень хорош в английском sh. Извините.

Я хочу знать список всех разрешений, не использованных (но добавленных в файл манифеста) в Android.

Что еще более важно, программно , без использования IDE ( например, Анализ -> Проверка кода в Android Studio )

Что я могу сделать?

1 Ответ

0 голосов
/ 24 февраля 2020

Разрешения для Android обычно добавляются через файл манифеста. Разрешение может быть добавлено для всего приложения. или это также может быть применено на уровне активности. Я привел пример того, как это можно сделать.

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_INTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_INTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />

Это обеспечит предоставление разрешений на уровне приложения. при этом, если вы хотите сделать это на уровне активности, вы можете включить его в активности через код.

Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
Uri uri = Uri.fromParts("package", getPackageName(), null);
intent.setData(uri);
startActivity(intent);

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

Описание

 Settings.ACTION_APPLICATION_DETAILS_SETTINGS

Открывает страницу настроек сведений для приложения. Отсюда пользователь должен вручную назначить желаемое разрешение.

 Intent.FLAG_ACTIVITY_NEW_TASK

Необязательно. Если установлено, то открывает экран настроек (активность) как новое действие. В противном случае он будет открыт в текущем действии.

Uri.fromParts("package", getPackageName(), null)

Подготавливает или создает URI, тогда как getPackageName () - возвращает имя пакета приложения.

intent.setData(uri)

Не забудьте установить это. В противном случае вы получите android .content.ActivityNotFoundException. Потому что вы задали намерение как Settings.ACTION_APPLICATION_DETAILS_SETTINGS и android ожидает, что какое-то имя будет искать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...