Get application names with specific permission

后端 未结 2 1816
没有蜡笔的小新
没有蜡笔的小新 2020-12-11 09:19

I want list of all applications installed on the device which use a specific permission like INTERNET.

i am using this code , but not able to retrieve results , plea

2条回答
  •  半阙折子戏
    2020-12-11 09:47

    I tried the code on android 2.2 emulator and it was working fine. Following is the working code:

    private ArrayList getInstalledApps(Context context) {
            ArrayList results = new ArrayList();
            PackageManager packageManager = context.getPackageManager();
            List applist = packageManager.getInstalledPackages(0);
            Iterator it = applist.iterator();
            while (it.hasNext()) {
                PackageInfo pk = (PackageInfo) it.next();
                if ((pk.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 0) {
                    Log.v("system app using internet = ", ""+pk.applicationInfo.loadLabel(packageManager));
                    continue;
                }
                if (PackageManager.PERMISSION_GRANTED == packageManager
                        .checkPermission(Manifest.permission.INTERNET,
                                pk.packageName))
                    results.add("" + pk.applicationInfo.loadLabel(packageManager));
            }
    
            Log.v("app using internet = ", results.toString());
    
            return results;
        }
    

提交回复
热议问题