java - 从包名中获取应用程序名

标签 java android xml

我正在尝试插入应用程序的名称作为偏好摘要。我编写了这段代码,但它不起作用,因为当我运行应用程序时,此行中出现 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/

相关文章:

Java 泛型类的方法不适用于传递的参数

android - 手动填充一个 ListView

android - 如何通过宽度自动设置 View 的高度?

xml - 读取XPath值时出错

java - 在折叠栏布局android中向上滚动时淡化整个布局

java - 在多个 Spark Executor 上共享 Zookeeper 配置

java.lang.NoSuchFieldError : IBM_JAVA for a simple hbase java client in Eclipse 错误

java - Java 中的 XML 转义字符

java - Struts 和 Swing 集成

android - 如何使用 Sugar ORM?