private static final int INSTALL_PERMISSION_CODE = 1;public void setInstallPermission(Context context) {boolean haveInstallPermission;// android 8.0以上安装未知应用需要开启权限if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {// 先判断是否有安装未知应用权限haveInstallPermission = getPackageManager().canRequestPackageInstalls();if (!haveInstallPermission) {// 弹框提示用户手动打开new Thread(new Runnable() {@Overridepublic void run() {Looper.prepare();AlertDialog.Builder builder = new AlertDialog.Builder(context);builder.setTitle("安装权限");builder.setMessage("需要打开此应用允许安装未知应用的权限");builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {// 此方法需要API >= 26才能使用toInstallPermissionSettingIntent();}}});builder.setCancelable(false);AlertDialog dialog = builder.create();dialog.show();Looper.loop();}}).start();} else {Toast.makeText(MainActivity.this, "安装应用", Toast.LENGTH_LONG).show();}} else {Toast.makeText(MainActivity.this, "安装应用", Toast.LENGTH_LONG).show();}}private void toInstallPermissionSettingIntent() {Uri packageURI = Uri.parse("package:" + getPackageName());Intent intent = new Intent(Settings.ACTION_MANAGE_UNKNOWN_APP_SOURCES, packageURI);startActivityForResult(intent, INSTALL_PERMISSION_CODE);}@Overrideprotected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {super.onActivityResult(requestCode, resultCode, data);if (resultCode == RESULT_OK && requestCode == INSTALL_PERMISSION_CODE) {Toast.makeText(MainActivity.this, "安装应用", Toast.LENGTH_LONG).show();}}
详细解决方案
申请安装未知应用权限(android8.0以上)
热度:43 发布时间:2023-12-15 15:09:24.0
相关解决方案
- GMS认证-Android8.x新增cts测试(VTS下测试GSI版本)
- GMS认证-Android8.1认证新特性与要求
- Android8.0及以上通知适配和自定义通知声音
- rk3328 Android8.1 usb otg host和device切换
- Android8.0通知 Notification
- Android8.0 适配ContentResolver解决java.lang.SecurityException: Failed to find provider null for user 0;
- Android8.1开机后铃声,闹铃,媒体的声音设置为0,休眠后声音也为0
- px30-android8.1-USB摄像头录制视频异常
- android8.1- Show virtual keyboard 默认打开
- Android8.1_ADB调整安卓旋转屏的方向
- PX30-ANDROID8.1-接USB摄像头音频没有输出问题
- PX30 Android8.1 gtxx TP触摸屏调试
- PX30 Android8.1添加root权限
- PX30 Android8.1 echo和cat 背光
- PX30 Android8.1系统Uboot没有打印信息
- Android8.1去掉 Launcher3 默认给 icon 增加的APK图标白边
- Android8.1在misc设备上添加一个控制led的驱动
- PX30 android8.1 时区更改
- PX30 Android8.1 红外遥控实现
- PX30 Android8.1 RK809噪声问题
- PX30 android8.1 APK 安装
- 申请安装未知应用权限(android8.0以上)
- Android8.0中将静态注册改为动态注册(自定义标准广播)
- android8.0源码目录
- 华为手机 android8.0APP更新时出现安装包解析异常的提示及安装闪退(无反应)问题
- 原 Android8.0 Audio系统之AudioPolicy
- Android8 自启daemon 实例(包含selinux权限)
- [RK3399][Android8.1] 调试记录 --- CW2015电量计+GPIO DC检测
- PX30-Android8.1-gpio控制
- Qt5.12.1 for RK3399 Android8.1配置