【问题标题】:Android get Package name from ActivityAndroid从Activity获取包名
【发布时间】:2019-05-01 16:31:52
【问题描述】:

我有一个来自第三方应用程序的活动名称

"com.example.packagename.MainActivity"

如何以编程方式检索此第三方应用程序的包名称?

PS:我什至不确定这是一个活动。这可能是一个错误的字符串。

【问题讨论】:

  • 检索包名是什么意思?应用的包名还是字符串代表的类?
  • 应用的包名(我编辑我的qyestion)
  • 你可以使用PackageManager 来做这样的事情。 developer.android.com/reference/android/content/pm/…
  • 我实际上是从 xml 中得到一个字符串名称。然后,我想从这个字符串中检查是否可以获得包名(但我不确定应用程序是否存在)
  • 没有这样的方法,你只知道活动名称,但是这个活动可以包含在多个应用程序中,所以你很难识别它。

标签: android android-activity package


【解决方案1】:

您可以从外部应用程序中找到包名称:

private String getExternalPackageName(String appname) {
    PackageManager pm = thisActivity.getPackageManager();
    List<ApplicationInfo> aList = pm.getInstalledApplications(PackageManager.GET_META_DATA);
    String aName = "";
    for (ApplicationInfo appi : aList) {
        String n = (String)pm.getApplicationLabel(appi);

        if (n.toUpperCase().contains(appname)) {
            aName = appi.packageName;
        }
     }
     return aName;
}

请务必使用 appname => 大写来调用此函数

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-06-12
    • 1970-01-01
    • 2018-07-15
    • 1970-01-01
    • 1970-01-01
    • 2013-03-14
    • 1970-01-01
    • 2012-01-28
    相关资源
    最近更新 更多