在Android中,如何从包名获取应用程序名称

5
我正在开发一个可以列出所有有缓存的应用程序的Android应用程序,我已经成功获取了关于缓存的信息,但现在我想在屏幕上显示那些具有一些缓存的应用程序,我有包名,但问题是如何从包名中获取应用程序名称。
假设包名为com.android.browser,则应用程序名称将为Browser
如何完成此任务?
请不要介意这个问题对你来说是否愚蠢,请帮助我解决这个难题,
谢谢!

可能是从包名获取应用程序名称的重复问题。 - mixel
2个回答

15

你需要使用PackageManager来获取已安装包的详细信息。

PackageManager packageManager = context.getPackageManager();
ApplicationInfo applicationInfo = null;
try {
    applicationInfo = packageManager.getApplicationInfo(packageName, 0);
} catch (final NameNotFoundException e) {}
final String title = (String)((applicationInfo != null) ? packageManager.getApplicationLabel(applicationInfo) : "???");

在第一种方法getApplicationName中,你将Context作为参数传递进来,但实际上我想从我的应用中获取其他应用的名称,这意味着Context会不同,对吧?那么如果我们执行int stringId = context.getApplicationInfo().labelRes;,我们将得到我们当前应用的ID。 - Chethan Shetty
哦,你移除了第一种方法? - Chethan Shetty
我这样做是因为它没有回答你的问题。 - Marcin Orlowski
好的,谢谢@Marcin Orlowski抽出时间来。但不幸的是,这种方法不起作用。 - Chethan Shetty
context 未定义。如果我使用 getApplicationContext(),那也不会起作用。 - Chethan Shetty
显示剩余2条评论

0
尝试使用PackageManager#getActivityInfo();,其中包含应用程序名称的字段。

你如何将PackageManager初始化为你定义的包名,比如说com.android.browser,你将如何将PackageManager初始化为我们自己的包名@adek。 - Chethan Shetty

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接