代码之家  ›  专栏  ›  技术社区  ›  Ragunath Jawahar cephus

PackageManager的applicationInfo.name始终为空

  •  18
  • Ragunath Jawahar cephus  · 技术社区  · 15 年前
    PackageManager pm = this.getPackageManager();
    ActivityManager am = (ActivityManager) this.getSystemService(Context.ACTIVITY_SERVICE);
    
    List<RunningAppProcessInfo> runningAppProcesses = am.getRunningAppProcesses();
    
    for(RunningAppProcessInfo process : runningAppProcesses) {
        try {
            ApplicationInfo ai = pm.getApplicationInfo(process.processName, PackageManager.GET_META_DATA);
            Log.d(TAG, applicationInfo.name + "");
        } catch (NameNotFoundException e) {
            e.printStackTrace();
        }
    }
    

    process.processName 返回有效的包名,但是 applicationInfo.name

    3 回复  |  直到 12 年前
        1
  •  31
  •   Ragunath Jawahar cephus    11 年前

    使用 applicationInfo.loadLabel(packageManagerInstance) applicationInfo.name 不起作用。

    编辑

    applicationInfo.name Application 子类(如果有)。

        2
  •  8
  •   Daniel Szmulewicz    12 年前

    名称为空的原因是它实际上是。。。无效的。

    请参阅Android清单文档:

    android:命名完全限定名 实现的应用程序子类的 应用程序进程已启动,此 应用程序的组件。

    这个 申请不需要。在 没有子类,Android使用 基本应用程序的实例

    您需要的是应用程序的名称,该名称在应用程序标记的label属性中设置,ragunah解释了如何获取该名称。

        3
  •  0
  •   Marco Schmid    15 年前

    试试这个

    Log.d(TAG, ai.processName + "");
    

    或者这个

    Log.d(TAG, ai.packageName + "");