如果应用程序请求权限,如何获取?

How to get if an app requests a permission?

早上好

我正在寻找一种方法来了解给定包名称的应用程序是否请求特定权限以及是否授予该权限(通过设置)。我正在寻找类似的东西:

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

我已经读过这个话题,但它没有找到一种方法来了解应用程序是否真的在请求特定权限以及是否已被授予。

提前致谢

此致

在您的 activity 中使用以下代码:

我创建了 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"/>

来源 和更多答案 here