Permissions android中其他应用程序使用的权限

Permissions android中其他应用程序使用的权限,permissions,Permissions,我想在我的Android应用程序中添加一个功能,可以检查其他已安装应用程序使用的权限。例如:-我的应用程序检查其他已安装的应用程序使用权限 StringBuffer appNameAndPermissions=new StringBuffer(); PackageManager pm = getPackageManager(); List <ApplicationInfo>packages = pm.getInstalledApplications(PackageManager.G

我想在我的Android应用程序中添加一个功能,可以检查其他已安装应用程序使用的权限。例如:-我的应用程序检查其他已安装的应用程序使用权限

 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();
}}} 
StringBuffer appNameAndPermissions=new StringBuffer();
PackageManager pm=getPackageManager();
List packages=pm.getinstalledApplication(PackageManager.GET_元数据);
{
适用于(ApplicationInfo ApplicationInfo:packages){
Log.d(“测试”,“应用程序:+applicationInfo.name+”包:+applicationInfo.packageName);
试一试{
PackageInfo PackageInfo=pm.getPackageInfo(applicationInfo.packageName,PackageManager.GET_权限);
appNameAndPermissions.append(packageInfo.packageName+“*:\n”);
//获取权限
字符串[]requestedPermissions=packageInfo.requestedPermissions;
if(requestedPermissions!=null){
for(int i=0;i
}

这是工作代码,它提供了所有应用程序使用的所有权限的完整列表。 但我的问题是如何特别知道哪个应用程序使用哪个权限

请帮助我并给我一些想法。

这是工作代码:

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;
       }
    }
PackageManager mPm=getPackageManager();
List appList=mPm.getInstalledPackages(PackageManager.GET|u PERMISSIONS | PackageManager.GET|u)|
PackageManager.GET_SERVICES(PackageManager.GET_PROVIDERS);
for(PackageInfo pi:appList){
System.out.println(“进程名称:”+pi);
//不要添加系统包
如果((pi.requestedPermissions==null | | pi.packageName.equals(“android”))|
(pi.applicationInfo!=null&(pi.applicationInfo.flags&applicationInfo.FLAG_SYSTEM)!=0))
持续
for(字符串权限:pi.requestedPermissions){
//Map curChildMap=newhashmap();
//System.out.println(“权限”);
试一试{
PermissionInfo pinfo=mPm.getPermissionInfo(permission,PackageManager.GET_META_DATA);
CharSequence标签=pinfo.loadLabel(mPm);
CharSequence desc=pinfo.loadDescription(mPm);
System.out.println(“$$$$”+标签+”!!!!!“+描述);
}catch(nameNotFounde异常){
Log.i(标记“忽略未知权限”+权限);
持续
}
}

这将授予所有已安装应用程序使用的权限,但现在我想获得在后台运行的应用程序使用的权限??如何实现?嘿,有人能告诉我如何知道仅运行的应用程序使用的权限吗?因为上面的答案是正确的,但它会授予所有已安装应用程序的权限。因为我只想t在后台运行的应用的权限??