0

インターネット許可を使用するすべてのアプリケーションを取得するためのこのコードがありますが、何か問題があります。助けてください:)

public String[] getAppsWithNet() {

    int flag = 0;
    String[] appsNet = new String[50];
    PackageManager p = c.getPackageManager();
    final List<PackageInfo> apps = p.getInstalledPackages(PackageManager.GET_PERMISSIONS);
    for (PackageInfo pkg : apps) {
        for (String permission : pkg.requestedPermissions) {
            if (p.PERMISSION_GRANTED == p.checkPermission(Manifest.permission.INTERNET, pkg.packageName)) {
                appsNet[flag] = pkg.packageName;
                flag++;
            }
        }
    }
    return appsNet;
}

少し早いですがお礼を...

4

1 に答える 1

0

PackageInfo.requestedPermissionsは String ではなく String 型の配列を返すため、コードを次のように変更する必要があります。

List<PackageInfo> packages = getPackageManager().getInstalledPackages(0);
for(PackageInfo pack : packages)
{
   PackageInfo permissionInfo = null;  
    permissionInfo = getPackageManager().getPackageInfo(pack.packageName, PackageManager.GET_PERMISSIONS);
    if(permissionInfo != null){  
         String[] permissions = permissionInfo.requestedPermissions;
          //YOUR CODE HERE
      }
}
于 2012-11-08T13:38:41.707 に答える