gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 23:18:04 24 4
gpt4 key购买 nike

早上好

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

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但它无法找到一种方法来了解某个应用程序是否真的在请求特定权限以及是否已被授予。

提前致谢

问候

最佳答案

在您的 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

关于java - 如果应用程序请求权限,如何获取?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54956673/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com