我正在开发一个Android应用程序,我试图从一个位置(一个网站)下载一个apk,将其存储在SD卡上,我想将它安装在我的设备上。
但是,在尝试安装apk时遇到以下错误: java.lang.SecurityException:不允许调用者安装APK
有关异常原因的任何建议吗?
安装时请执行以下操作:
public static void installApk(ContentResolver contentResolver) {
final ContentValues values = new ContentValues();
values.put(APK_KEY, APK_NAME);
values.put(PACKAGE_KEY, PACKAGE_NAME);
values.put(APKS_DIR_PATH_KEY, Environment.getExternalStorageDirectory() + APKS_DIR_PATH + APK_NAME);
try {
contentResolver.insert(INSTALL_SINGLE_URI, values);
} catch (SecurityException e) {
//permission not granted
Log.e(Utils.class.getSimpleName(), e.toString());
} }
答案 0 :(得分:1)
首先,您必须将其添加到清单
<uses-permission android:name="android.permission.INSTALL_PACKAGES" />
但现在艰难的来了。如果要从应用程序安装软件包,则必须将应用程序安装到/ system / app。仅在这种情况下,INSTALL_PACKAGES权限才有效。其他简单的方法,只需调用apk的url并让系统默认的包管理器来处理这个工作:)