我正在尝试插入应用程序的名称作为偏好摘要。我编写了这段代码,但它不起作用,因为当我运行应用程序时,此行中出现 NullPointerException 崩溃
name.setSummary(Pm.getApplicationLabel(nameApp));
代码是
value2 = getIntent().getStringExtra("ApplicationName");
PackageManager Pm = getPackageManager();
ApplicationInfo nameApp = Pm.getApplicationInfo(value2, 0);
name.setSummary(Pm.getApplicationLabel(nameApp));
Value2 是一个变量的名称,它采用来自上一个 Activity 的包的名称,并且此步骤效果很好,因为包的名称已正确传递和恢复
最佳答案
试试这个..
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 = packageManager.getApplicationLabel(pk).toString();
System.out.println("Application name : "+appname);
}
或者特定的包名称
final PackageManager pm = getApplicationContext().getPackageManager();
ApplicationInfo ai;
try {
ai = pm.getApplicationInfo(PackageName, 0);
} catch (final NameNotFoundException e) {
ai = null;
}
final String applicationName = (String) (ai != null ? pm.getApplicationLabel(ai) : "(unknown)");
System.out.println("Application name : "+applicationName);
关于java - 从包名中获取应用程序名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20355047/