【问题标题】:Get more info of installed app获取已安装应用的更多信息
【发布时间】:2013-11-20 10:54:37
【问题描述】:

我知道在 Android 中,我可以调用 getInstalledPackages(0)PackageManager API 来获取设备上所有已安装的应用程序。

我想知道有没有一种方法或解决方法可以通过使用 Android SDK(即没有 3rd 方库)来获取发布者的已安装应用程序的名称?

【问题讨论】:

    标签: android android-intent package-managers


    【解决方案1】:

    包含相关类的包,尤其是ApplicationInfo,没有这个的公共接口(@98​​7654321@)。所以我相信没有办法做到这一点。

    【讨论】:

      【解决方案2】:

      我认为没有直接的方法可以做到这一点。因为该信息在清单或源代码中的任何地方都不可用。

      作为一种解决方法,您可以获取进程名称/包名称,并从 google play store 查找发布者名称:

      伪代码:

      List<ApplicationInfo> appInfos = context.getPackageManager().getInstalledApplications(0);
      
      for (ApplicationInfo appInfo : appInfos) {
          String processName = appInfo.processName; // Example: com.google.android.youtube
          String url = "https://play.google.com/store/apps/details?id=" + processName;
          // Fetch publisher name from web here
          ...
      }
      

      【讨论】:

        【解决方案3】:

        我认为,没有 android API 可以获取应用程序的发布者名称。您可以使用此第 3 方 API 从 Play 商店获取发布者的信息和更多信息。

        https://api.appmonsta.com/v1/stores/android/details/your-package-name.json?country=us

        将 API 中的 'your-package-name' 替换为应用程序包名称。 首先,您必须在 api.appmonsta.com 注册才能运行此 API。

        【讨论】:

        • 询问用户名和密码
        • 是的,您必须将您的应用程序注册到 appmonsta 并获取 API 密钥。此 API 密钥用作用户名,密码是可选的。或者如果你不想使用第三方 api,那么你可以使用下面的链接来获取 HTML 页面 play.google.com/store/apps/details?id=" + package-name 在这种情况下,你必须解析 HTML 标签并从中获取值。
        猜你喜欢
        • 2021-11-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-06-30
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多