首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >android中其他应用使用的权限

android中其他应用使用的权限
EN

Stack Overflow用户
提问于 2014-03-28 13:18:02
回答 1查看 167关注 0票数 1

我想在我的Android应用程序中添加一项功能,可以检查其他已安装的应用程序使用的权限。例如:-我的应用程序检查其他已经安装的应用程序的权限,它们被使用了吗?

代码语言:javascript
复制
 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();
}}} 

}

这是工作代码,它给出了所有应用程序使用的所有权限的完整列表。但我的问题是,如何具体知道哪个应用程序使用哪个权限?

请帮助我&给我一些关于这方面的想法。

EN

Stack Overflow用户

发布于 2014-03-29 18:28:43

这是工作代码:

代码语言:javascript
复制
PackageManager mPm = getPackageManager();   
List <PackageInfo> appList=mPm.getInstalledPackages(PackageManager.GET_PERMISSIONS|PackageManager.GET_RECEIVERS|
          PackageManager.GET_SERVICES|PackageManager.GET_PROVIDERS);

for (PackageInfo pi : appList) {
    System.out.println("Process Name: "+pi);
    // Do not add System Packages
    if ((pi.requestedPermissions == null || pi.packageName.equals("android")) || 
            (pi.applicationInfo != null && (pi.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 0)) 
        continue;

    for (String permission : pi.requestedPermissions) {
        //Map<String, String> curChildMap = new HashMap<String, String>();
        //System.out.println("############     "+permission);

        try {
            PermissionInfo pinfo = mPm.getPermissionInfo(permission, PackageManager.GET_META_DATA);
            CharSequence label = pinfo.loadLabel(mPm);
            CharSequence desc = pinfo.loadDescription(mPm);
            System.out.println("$$$$$ "+label+"!!!!!! "+desc);

        } catch (NameNotFoundException e) {
            Log.i(TAG, "Ignoring unknown permission " + permission);
            continue;
       }
    }
票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22704763

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档