2012-11-08 75 views
0

我有这样的代码来获得使用互联网权限的所有应用程序,但什么是错的所有应用程序,请帮助我:)提前使用Internet权限

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; 
} 

感谢...

+0

什么不对excatly? – Nermeen

+0

在日志猫我有java.lang.NullPointerException,我不明白为什么... – HCarrasko

+0

在哪一行?你可以发布日志猫吗? – Nermeen

回答

0

PackageInfo.requestedPermissions回报,你字符串类型不是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 
     } 
} 
+0

请参阅我的编辑答案可能对您有所帮助 –

+0

pkg.requestedPermissions返回一个字符串,而不是String [] – HCarrasko

+0

这是我的logcat https://www.dropbox的.com/S/nyemvenuuhg558y/capture.png – HCarrasko

相关问题