当前位置: 首页 > 知识库问答 >
问题:

按应用程序名称获取另一个应用程序的程序包名称

夏侯阳
2023-03-14

我想知道一个应用程序的包名,我只知道那个应用程序的应用程序名。假设我想知道一个电子邮件应用程序的包名,只是它的名字,然后如何得到它
我只知道应用程序名。

final PackageManager pm = getPackageManager();
//get a list of installed apps.
List<ApplicationInfo> packages = pm.getInstalledApplications(PackageManager.GET_META_DATA);

for (ApplicationInfo packageInfo : packages) {
     Log.d(TAG, "Installed package :" + packageInfo.packageName);
     Log.d(TAG, "Launch Activity :" + pm.getLaunchIntentForPackage(packageInfo.packageName));
}

这是代码,以获得所有的应用程序的包名称,但我需要知道特定的应用程序。

共有2个答案

濮阳默
2023-03-14

下面是有助于获取所有已安装应用程序包名的代码

final PackageManager pkgmanager = getPackageManager();
String TAG = "Application Info";

//Return a list of installed apps.
List<ApplicationInfo> packages =  pkgmanager.getInstalledApplications(PackageManager.GET_META_DATA);

for (ApplicationInfo pkgInfo : packages) {
    Log.d(TAG, "Installed package :" + pkgInfo .packageName);
    Log.d(TAG, "Source dir : " + pkgInfo .sourceDir); 
}

希望这能有所帮助

总结

裘禄
2023-03-14

应该是这样的,因为应用名称不是唯一的,您可以有多个包名称与您请求的应用名称相匹配。

请记住,我的函数将只返回匹配的第一个包名(您可以非常轻松地更改此逻辑):

public String getPackNameByAppName(String name) {
    PackageManager pm = context.getPackageManager();
    List<ApplicationInfo> l = pm.getInstalledApplications(PackageManager.GET_META_DATA);
    String packName = "";
    for (ApplicationInfo ai : l) {
        String n = (String)pm.getApplicationLabel(ai);
        if (n.contains(name) || name.contains(n)){
            packName = ai.packageName;
        }
    }
    
    return packName;    
}

你可以使用TextUtils。isEmpty方法检查是否得到结果。

 类似资料:
  • 我正在构建一个模块,将数据保存到数据库中。完成模块后,我将把它做成一个JAR,这是常见的,任何人都会调用静态方法。有一个参数,它的名称是application name,我不想传递这个值,我想在向任何spring boot应用程序添加jar后动态获取这个值,然后任何人调用这个静态方法检索name application dynamic,所以spring boot包含应用程序属性have value

  • 我目前正在开发一个weblogic 10应用服务器,它安装了几个EAR。我收到一个请求,要求更改某些AP的应用程序名称,因为它们出现在 家 我去了合适的计划。xml并使用适当的名称更改,重新启动了域,但名称没有更改。 有什么想法吗?

  • 问题内容: 这个问题可能很基本,但是我很难破解。我认为我必须在中使用某些内容。请记住,我几乎没有使用这些库甚至整个库的经验。 我已经使用此代码列出了所有窗口标题,但是我不知道如何更改此代码以获取具有进程名称的窗口标题: 这段代码来自https://sjohannes.wordpress.com/2012/03/23/win32-python-getting-all- window-titles/

  • 我刚刚完成了我的第一个android应用程序,并生成了一个apk文件在我的手机上测试。然后我意识到我在制作项目时留下了默认的“My Application”名称。所以安装的应用程序名为“我的应用程序”。如何更改应用程序的名称?

  • 在图片中,我想更改应用程序名称仅"应用程序"强文本 我可以更改或更新部署的应用程序名称而不停止托管服务器? 一段时间后的其他信息。如果您想在weblogic wlst控制台中更改应用程序名称,它会接收错误消息。 这表明weblogic Application ationName属性是只读属性。

  • 问题内容: 我确信你们中有人注意到,如果您有Acrobat Reader(或其他PDF阅读器),并在Firefox中打开一个PDF,您会看到它嵌入在您的标签中。有什么方法可以将应用程序嵌入JFrame中? 问题答案: 这是一个相当棘手的问题。通常,诸如Adobe Reader之类的本机应用程序不提供可以嵌入到swing应用程序中的组件。但是在Windows中,有COM / OLE方法可以将应用程序