In my Android app I wanted to check the source of app installation.
I looked at the Android documentation and found the following API as part of the PackageManager class:
abstract String getInstallerPackageName(String packageName)
Retrieve the package name of the application that installed a package.
Then I used the following code in the onCreate
method of MyActivity:
if(Build.VERSION.SDK_INT >= 11)
{
PackageManager myapp= this.getPackageManager();
String installer = myapp.getInstallerPackageName("com.MyPackage");
if(installer == null)
{
Toast.makeText(getApplicationContext(), MyActivity.this.getString(R.string.invalidsource), Toast.LENGTH_SHORT).show();
MyActivity.this.finish();
}
}
But it looks like this API returns null
on a real device.
Please let me know if we have any other means of getting the source of app installation.
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…