首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Android -如何获取应用程序名称?(不是包名)

Android -如何获取应用程序名称?(不是包名)
EN

Stack Overflow用户
提问于 2012-06-27 23:00:57
回答 15查看 127.8K关注 0票数 127

在我的清单中,我有:

代码语言:javascript
复制
  <application
    android:name=".MyApp"
    android:icon="@drawable/ic_launcher_icon"
    android:label="@string/app_name"
    android:debuggable="true">

如何获取label元素?

注意:我的代码在别人的代码中运行,所以我没有访问@string/app_name的权限

EN

回答 15

Stack Overflow用户

发布于 2013-02-27 22:23:03

有一种比其他答案更简单的方法,它不需要您显式地命名资源,也不需要担心包名的异常。如果您直接使用字符串而不是资源,它也可以工作。

只需这样做:

代码语言:javascript
复制
public static String getApplicationName(Context context) {
    ApplicationInfo applicationInfo = context.getApplicationInfo();
    int stringId = applicationInfo.labelRes;
    return stringId == 0 ? applicationInfo.nonLocalizedLabel.toString() : context.getString(stringId);
}

希望这能有所帮助。

编辑

根据Snicolas的评论,我已经修改了上面的代码,这样如果id为0,它就不会尝试解析它。相反,它使用nonLocalizedLabel作为退避。不需要在try/catch中包装。

票数 189
EN

Stack Overflow用户

发布于 2013-05-08 23:09:18

如果没有在字符串中提到/由于任何原因硬编码在AndroidManifest.xml中,就像android:label="MyApp"

代码语言:javascript
复制
public String getAppLable(Context context) {
    PackageManager packageManager = context.getPackageManager();
    ApplicationInfo applicationInfo = null;
    try {
        applicationInfo = packageManager.getApplicationInfo(context.getApplicationInfo().packageName, 0);
    } catch (final NameNotFoundException e) {
    }
    return (String) (applicationInfo != null ? packageManager.getApplicationLabel(applicationInfo) : "Unknown");
}

或者,如果您知道字符串资源ID,则可以直接通过

代码语言:javascript
复制
getString(R.string.appNameID);
票数 61
EN

Stack Overflow用户

发布于 2013-05-11 00:17:51

Java

代码语言:javascript
复制
public static String getApplicationName(Context context) {
    return context.getApplicationInfo().loadLabel(context.getPackageManager()).toString();
}

Kotlin (as扩展)

代码语言:javascript
复制
fun Context.getAppName(): String = applicationInfo.loadLabel(packageManager).toString()
票数 49
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11229219

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档