Android 检索权限描述时出错

Android 检索权限描述时出错,android,android-permissions,Android,Android Permissions,我的ApkInfo活动应显示权限以及权限说明。但在运行时,它以未知格式显示权限描述。在以下代码中,AppData类用于初始化packageInfo,其中用户选择的应用程序从已安装应用程序列表中填充 public class ApkInfo extends Activity { PackageInfo packageInfo; PermissionInfo pi; PackageManager pm; @Override public void onCreate(Bundle sav

我的ApkInfo活动应显示权限以及权限说明。但在运行时,它以未知格式显示权限描述。在以下代码中,AppData类用于初始化packageInfo,其中用户选择的应用程序从已安装应用程序列表中填充

public class ApkInfo extends Activity { 

PackageInfo packageInfo;
PermissionInfo pi;
PackageManager pm;    

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.apkinfo);
PermissionInfo pi = new PermissionInfo();
AppData appData = (AppData) getApplicationContext();
packageInfo = appData.getPackageInfo(); 
if (packageInfo.requestedPermissions != null){
String[] permissions = getPermissions(packageInfo.requestedPermissions, pi);
}
private String[] getPermissions(String[] requestedPermissions, PermissionInfo pinfo) {
pm = getPackageManager();
String permission = "";
for (int i = 0; i < requestedPermissions.length; i++) {
try {
pinfo = pm.getPermissionInfo(requestedPermissions[i], PackageManager.GET_META_DATA);

try {

pinfo.loadDescription(pm).toString();

}catch(NullPointerException ex){

              ex.printStackTrace();

}finally{

Log.d("Permissions description", "Null");
}
} catch (NameNotFoundException e) { 
  e.printStackTrace();  
}
permission = permission + requestedPermissions[i] + "    " + pinfo + "\n";    
Log.d("PERMISSIONS" , pm.toString());
}
String lines[] = permission.split("\\n");
return lines;
}
}

为什么我的ApkInfo活动以这种方式显示权限描述?对于某些应用程序,它显示了NullPointerException

PermissionInfo的loadDescription方法返回一个charSequence。在我的代码中,我试图使用toString方法将从语句pinfo.loadDescription(pm)返回的描述信息转换为string,该方法无法给出确切的字符串。使用stringBuilder解决了这个问题

CharSequence c = pinfo.loadDescription(pm);
StringsBuilder sb = new StringBuilder(c.length());
sb.append(c);
sb.toString();
这是部分答案。我还没有回答空指针异常。仍在试图找出背后的原因

CharSequence c = pinfo.loadDescription(pm);
StringsBuilder sb = new StringBuilder(c.length());
sb.append(c);
sb.toString();