【发布时间】:2013-11-20 10:54:37
【问题描述】:
我知道在 Android 中,我可以调用 getInstalledPackages(0) 的 PackageManager API 来获取设备上所有已安装的应用程序。
我想知道有没有一种方法或解决方法可以通过使用 Android SDK(即没有 3rd 方库)来获取发布者的已安装应用程序的名称?
【问题讨论】:
标签: android android-intent package-managers
我知道在 Android 中,我可以调用 getInstalledPackages(0) 的 PackageManager API 来获取设备上所有已安装的应用程序。
我想知道有没有一种方法或解决方法可以通过使用 Android SDK(即没有 3rd 方库)来获取发布者的已安装应用程序的名称?
【问题讨论】:
标签: android android-intent package-managers
包含相关类的包,尤其是ApplicationInfo,没有这个的公共接口(@987654321@)。所以我相信没有办法做到这一点。
【讨论】:
我认为没有直接的方法可以做到这一点。因为该信息在清单或源代码中的任何地方都不可用。
作为一种解决方法,您可以获取进程名称/包名称,并从 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
...
}
【讨论】:
我认为,没有 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。
【讨论】: