#安卓 查询应用的安装来源
问题背景
最近游戏中接入了统计工具,但是发现安装量远比谷歌商店后台统计的要多。更重要的是,这些安装中,有相当一部分是旧版本的。于是,怀疑是不是有被抓包的情况。
这就需要统计应用的安装来源。
解决方法
通过packageManager可以获取相关信息:
- PackageManager.getInstallerPackageName(String)
- PackageManager.getInstallSourceInfo(String)
代码如下:
// 查询安装来源
public static String checkInstaller(Context context){
final String packageName = context.getPackageName();
final String installer = context.getPackageManager().getInstallerPackageName(context.getPackageName());
Log.d(TAG, "checkInstaller: package = " + packageName + ", installer = " + installer);
if(installer == null){
return "null";
}
return installer;
}
测试
- 1). 如果是从Android Studio中直接安装,则installer为 null
- 2). 如果将apk复制到手机上,然后再安装,则installer为 com.android.packageinstaller
- 3). 如果是从google play商店安装,则installer 可能为 com.android.vending(待上线确认)