Xamarin,如何在Android中检测安装源

6rvt4ljy  于 2023-06-20  发布在  Android
关注(0)|答案(2)|浏览(153)

我需要检测我的应用程序的安装来源是否是从下载的APK或从商店。有些设备还没有安装Play商店,我需要发送不同的API请求的基础上.
哪种方式最好?
1.使用预处理器指令来区分apk / aab的构建?但我什么都没找到。
1.通过从已安装的列表中搜索软件包名称来检查Play商店是否已安装?
1.一个c#代码来检查安装的起源是从商店或Apk?
我已经尝试了2解决方案,通过在安装的包中搜索包“com.android.vending”,但在模拟器中的Play商店没有安装,尽管这一切,包出现在列表中!
谢谢!

pcww981p

pcww981p1#

参考Is there a way to get the installer source of android app in the native android的案例。您可以将以下代码放入MainActivity的OnCreate方法中:

string installpackage;
PackageManager package = this.PackageManager;
if(Build.VERSION.SdkInt > BuildVersionCodes.R)
{
      installpackage = package.GetInstallSourceInfo(this.PackageName).InitiatingPackageName;
}
else
{
      installpackage = package.GetInstallerPackageName(this.PackageName);
}
if (installpackage == "com.android.vending") // install from the google play
s8vozzvw

s8vozzvw2#

如果设备上未安装Play商店,我们可以检查Google Play服务包是否存在,该服务包安装在大多数Android设备上。我们可以使用PackageInfo类获取有关Google Play服务包的信息并检查是否已安装。[1][2][3]

try 
{ 
PackageInfo info = getPackageManager().getPackageInfo("com.google.android.gms", 0); 
// Google Play services is installed 
} 
catch (PackageManager.NameNotFoundException e)
{ 
// Google Play services is not installed 
}

相关问题