Как получить, если приложение запрашивает разрешение? - PullRequest
0 голосов
/ 02 марта 2019

Доброе утро

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

if(//com.package.name requests Manifest.permission.camera and that permission is granted)
{//do something}

Я уже читал эту ветку http://stackoverflow.com/questions/31535088/android-m-programmatically-revoke-permissions, но он не находит способа узнать, действительно ли приложение запрашивает определенное разрешение, и еслиэто предоставлено.

Заранее спасибо

С уважением

1 Ответ

0 голосов
/ 02 марта 2019

Используйте следующий код в своей деятельности:

Я создал StringBuffer appNameAndPermissions = new StringBuffer();, чтобы добавить всю информацию о приложениях и разрешениях.

Работает нормально.Я уже проверял это.Если у вас есть какие-либо проблемы, пожалуйста, сообщите мне.

StringBuffer appNameAndPermissions = new StringBuffer();
PackageManager pm = getPackageManager();
List<ApplicationInfo> packages = pm.getInstalledApplications(PackageManager.GET_META_DATA);

for (ApplicationInfo applicationInfo : packages) {
    Log.d("test", "App: " + applicationInfo.name + " Package: " + applicationInfo.packageName);
try {
    PackageInfo packageInfo = pm.getPackageInfo(applicationInfo.packageName, PackageManager.GET_PERMISSIONS);
    appNameAndPermissions.append(packageInfo.packageName+"*******:\n");

    //Get Permissions
    String[] requestedPermissions = packageInfo.requestedPermissions;
    if(requestedPermissions != null) {
        for (int i = 0; i < requestedPermissions.length; i++) {
            Log.d("test", requestedPermissions[i]);
            appNameAndPermissions.append(requestedPermissions[i]+"\n");
        }
    appNameAndPermissions.append("\n");
} catch (NameNotFoundException e) {
    e.printStackTrace();
}

Используйте следующее разрешение в вашем файле AndroidManifest.xml:

<uses-permission android:name="android.permission.GET_TASKS"/>

Источник и более ответов здесь

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