Android8.0之前
未知應用安裝權限默認開啟,如下圖所示
8.0以下手機未知應用安裝權限.png
Android8.0之后
未知應用安裝權限默認關閉,且權限入口隱藏。
如何開啟未知應用安裝權限的入口,并設置允許安裝?
在清單文件中添加權限
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES"/>
判斷當前是否為8.0以上系統(在這之前也可以對7.0系統進行判斷,這里代碼沒有貼出)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { boolean hasInstallPermission = isHasInstallPermissionWithO(context); if (!hasInstallPermission) { startInstallPermissionSettingActivity(context); return; }}
如果為8.0以上系統,則判斷是否有 未知應用安裝權限
@RequiresApi (api = Build.VERSION_CODES.O)private boolean isHasInstallPermissionWithO(Context context){ if (context == null){ return false; } return context.getPackageManager().canRequestPackageInstalls();}
如果沒有 未知應用安裝權限 ,則需要手動開啟
/** * 開啟設置安裝未知來源應用權限界面 * @param context */@RequiresApi (api = Build.VERSION_CODES.O)private void startInstallPermissionSettingActivity(Context context) { if (context == null){ return; } Intent intent = new Intent(Settings.ACTION_MANAGE_UNKNOWN_APP_SOURCES); ((Activity)context).startActivityForResult(intent,REQUEST_CODE_APP_INSTALL);}
Activity回調(這一步根據需求來確定)
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { super.onActivityResult(requestCode, resultCode, data) if (resultCode== Activity.RESULT_OK ){ when(requestCode){ REQUEST_CODE_APP_INSTALL -> { onSettingCheckUpdate() } } } }
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對VEVB武林網的支持。
新聞熱點
疑難解答