tto*_*tom 54 android google-play sideloading
我需要检测我的应用程序是从谷歌播放还是其他市场安装的,我怎么能得到这些信息?
Mat*_*ttC 52
本PackageManager
类提供的getInstallerPackageName方法,将告诉你的任何安装指定的软件包的名称.侧载应用程序不包含值.
编辑:注意@mttmllns 关于亚马逊应用商店的回答如下.
mtt*_*lns 25
和FYI 显然亚马逊商店的最新版本终于将PackageManager.getInstallerPackageName()
到"com.amazon.venezia"
,以及与谷歌Play的对比"com.android.vending"
.
Phi*_* E. 18
如果从商店或侧载下载构建,我使用此代码进行检查:
public static boolean isStoreVersion(Context context) {
boolean result = false;
try {
String installer = context.getPackageManager()
.getInstallerPackageName(context.getPackageName());
result = !TextUtils.isEmpty(installer);
} catch (Throwable e) {
}
return result;
}
Run Code Online (Sandbox Code Playgroud)
如果您正在寻找识别和限制侧载应用程序。谷歌已经提出了确定问题的解决方案。
你可以按照以下
项目build.gradle
:
buildscript {
dependencies {
classpath 'com.android.tools.build:bundletool:0.9.0'
}
}
Run Code Online (Sandbox Code Playgroud)
应用模块的build.gradle
:
implementation 'com.google.android.play:core:1.6.1'
Run Code Online (Sandbox Code Playgroud)
扩展应用程序的类:
public void onCreate() {
if (MissingSplitsManagerFactory.create(this).disableAppIfMissingRequiredSplits()) {
// Skip app initialization.
return;
}
super.onCreate();
.....
Run Code Online (Sandbox Code Playgroud)
}
通过这种集成,谷歌将自动识别是否有任何丢失的拆分 apk 并显示一个弹出窗口说“安装失败”,它还会重定向到 Play 商店下载屏幕,用户可以在那里通过 Google Play 商店正确安装应用程序。
查看此链接以获取更多信息。
希望这可以帮助。
归档时间: |
|
查看次数: |
25015 次 |
最近记录: |