java.lang.SecurityException不允许从另一个Android应用程序

时间:2015-07-22 09:13:01

标签: java android

我正在开发一个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());
    }   }

1 个答案:

答案 0 :(得分:1)

首先,您必须将其添加到清单

<uses-permission android:name="android.permission.INSTALL_PACKAGES" />

但现在艰难的来了。如果要从应用程序安装软件包,则必须将应用程序安装到/ system / app。仅在这种情况下,INSTALL_PACKAGES权限才有效。其他简单的方法,只需调用apk的url并让系统默认的包管理器来处理这个工作:)