确定供应商预装了android包

Rom*_*zur 3 android

我想知道是否有办法知道我的应用程序是由供应商预装的(而不是从Android Market安装).应用程序也可在Android Market中使用,并可从那里更新.

一种解决方案是在本地文件系统中创建一个文件(我们可以为供应商构建一个特殊的应用程序版本).但是有一种情况是应用程序可以在第一次运行之前从市场更新,并且不会创建文件.

还有其他方法吗?可能是安装路径?

同样有趣的是,Android Market应用程序是否会自动检查此预安装的应用程序以获取更新,就像它为Google地图执行的更新一样.

小智 5

您必须获取包的ApplicationInfo(使用PackageManager),然后检查其标志.

import android.content.pm.ApplicationInfo;

if ((ApplicationInfo.FLAG_SYSTEM & myApplicationInfo.flags) != 0)
   // It is a pre embedded application on the device.
Run Code Online (Sandbox Code Playgroud)