在 android 中动态检查是否安装了特定的应用程序

Dynamically check whether a particular app is installed or not in android

我想知道用户是否通过我在我的应用程序中提供的链接安装了应用程序..

问题是包名, 首先我必须安装应用程序以了解应用程序包名称,然后编写与我提供的包名称进行比较的代码。

我无法为每个新应用推广都执行此过程。

有没有办法在不安装的情况下知道 android 应用程序的软件包名称?

您可以在 Play 商店查看该应用程序。

包名在URL... 例如:

https://play.google.com/store/apps/details?id=dae.dfnews

重要的部分是id=dae.dfnewsdae.dfnews 是包名。

如果您的用户从 Google Play 商店安装应用程序,那么您的链接应该如下所示

https://play.google.com/store/apps/details?id=com.example.app

或者像这样的 Play 商店应用提示

market://details?id=com.example.app

最后一部分(id)实际上应该是包名

您可以使用这部分代码列出设备上安装的所有应用程序:

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, "Source dir : " + packageInfo.sourceDir);
    Log.d(TAG, "Launch Activity :" + pm.getLaunchIntentForPackage(packageInfo.packageName)); 
}
// the getLaunchIntentForPackage returns an intent that you can use with startActivity() 

比较是否安装了您请求安装的应用程序。