为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

白猪掌柜的 2022-07-14 17:28:38
早上好我正在寻找一种方法来了解应用程序是否在给定包名称的情况下请求特定权限以及是否授予该权限(通过设置)。我一直在寻找类似的东西: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 回答

?
红颜莎娜

TA贡献1842条经验 获得超12个赞

在您的活动中使用以下代码:

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


来源和更多答案在这里


查看完整回答
反对 回复 2022-07-14
  • 1 回答
  • 0 关注
  • 96 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信