我已经制作了一个小方法来在android中显示已安装的应用程序名称。但是当我给“name”属性显示异常错误时。当我给“packageName”时,该方法执行完美,并在列表中显示包名称
private void getInstalledApps() {
// TODO Auto-generated method stub
PackageManager packageManager=this.getPackageManager();
List<ApplicationInfo applist=packageManager.getInstalledApplications(0);
Iterator<ApplicationInfo> it=applist.iterator();
while(it.hasNext()){
ApplicationInfo pk=(ApplicationInfo)it.next();
String appname=pk.name.toString();
installedapplist.add(appname);
}
}
在上面的代码中,当我给String appname=pk.packageName.toString()
它工作正常但是当我给String appname=pk.name.toString()
时,程序抛出异常错误。请帮我解决问题。
答案 0 :(得分:22)
我的猜测是你的代码抛出了NullPointerException,因为name
字段为空。无论如何,你可能想要的是:
String appname = packageManager.getApplicationLabel(pk).toString()
答案 1 :(得分:0)
通过使用此功能,您可以获得已安装的应用包名称和应用名称
List<PackageInfo> packageInfos=getPackageManager().getInstalledPackages(0);
for (PackageInfo packageInfo:packageInfos)
{
Log.d(TAG,"packageName "+packageInfo.packageName);
Log.d(TAG,"appname "+getPackageManager().getApplicationLabel(packageInfo.applicationInfo));
}