我想在没有用户干预的情况下在 Android 上安装应用程序。我正在使用权限INSTALL_PACKAGES
,并且正在“/download/”文件夹中安装应用程序。下载完成后,会出现一个对话框,要求我安装该应用程序。如何隐藏此对话框并在没有用户干预的情况下安装应用程序?
问问题
1057 次
3 回答
4
对不起,你不能。Android 框架不允许您这样做。Android 对安全目的有一些限制,不要试图打破它。
于 2012-06-20T12:28:27.800 回答
0
INSTALL_PACKAGES 权限仅允许安装在 /system/app 中的系统应用程序。
对于其他应用程序,这是不可能的。
于 2013-02-17T10:18:33.593 回答
0
您可以通过反射使用隐藏的 API android.content.pm.IPackageInstallObserver :
public class PackageManagement {
public static final int INSTALL_REPLACE_EXISTING = 0x00000002;
public static final int INSTALL_SUCCEEDED = 1;
private static Method installPackageMethod;
private static Method deletePackageMethod;
static {
try {
installPackageMethod = PackageManager.class.getMethod("installPackage", Uri.class, IPackageInstallObserver.class, Integer.TYPE, String.class);
} catch (NoSuchMethodException e) {
e.printStackTrace();
}
}
public static void installPackage(PackageManager pm, Uri mPackageUri, IPackageInstallObserver observer, int installFlags, String installerPackageName) {
try {
installPackageMethod.invoke(pm, mPackageUri, observer, installFlags, installerPackageName);
} catch (Exception e) {
e.printStackTrace();
}
}
}
将 android.content.pm.IPackageInstallObserver 导入您的项目。您的应用程序必须是系统的。您必须在清单中激活权限 android.permission.INSTALL_PACKAGES
于 2014-11-27T13:26:45.840 回答