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