Android 8.0不能自動安裝APK問題的解決方法(完美適配)
Android8.0之前
未知應(yīng)用安裝權(quán)限默認(rèn)開啟,如下圖所示
8.0以下手機(jī)未知應(yīng)用安裝權(quán)限.png
Android8.0之后
未知應(yīng)用安裝權(quán)限默認(rèn)關(guān)閉,且權(quán)限入口隱藏。
如何開啟未知應(yīng)用安裝權(quán)限的入口,并設(shè)置允許安裝?
在清單文件中添加權(quán)限
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES"/>
判斷當(dāng)前是否為8.0以上系統(tǒng)(在這之前也可以對7.0系統(tǒng)進(jìn)行判斷,這里代碼沒有貼出)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { boolean hasInstallPermission = isHasInstallPermissionWithO(context); if (!hasInstallPermission) { startInstallPermissionSettingActivity(context); return; } }
如果為8.0以上系統(tǒng),則判斷是否有 未知應(yīng)用安裝權(quán)限
@RequiresApi (api = Build.VERSION_CODES.O) private boolean isHasInstallPermissionWithO(Context context){ if (context == null){ return false; } return context.getPackageManager().canRequestPackageInstalls(); }
如果沒有 未知應(yīng)用安裝權(quán)限 ,則需要手動開啟
/** * 開啟設(shè)置安裝未知來源應(yīng)用權(quán)限界面 * @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回調(diào)(這一步根據(jù)需求來確定)
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() } } } }
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
相關(guān)文章
Kotlin StateFlow單數(shù)據(jù)更新熱流設(shè)計(jì)與使用介紹
StateFlow當(dāng)值發(fā)生變化,就會將值發(fā)送出去,下流就可以接收到新值。在某些場景下,StateFlow比LiveData更適用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧2022-09-09Android實(shí)現(xiàn)笑臉進(jìn)度加載動畫
這篇文章主要介紹了Android實(shí)現(xiàn)笑臉進(jìn)度加載動畫的方法,幫助大家更好的理解和學(xué)習(xí)使用Android,感興趣的朋友可以了解下2021-05-05Android Studio無法改變Button背景顏色解決辦法
今天我來和大家探討一個在Android開發(fā)中常見但可能讓初學(xué)者感到困惑的問題,如何在Android Studio中改變Button的背景顏色,這個問題看似簡單,但實(shí)際操作中可能會遇到一些意想不到的挑戰(zhàn),接下來,我將從多個角度為大家提供解決方案,需要的朋友可以參考下2024-05-05Android中將View的內(nèi)容保存為圖像的簡單實(shí)例
這篇文章主要介紹了Android中將View的內(nèi)容保存為圖像的簡單實(shí)例,有需要的朋友可以參考一下2014-01-01基于Android實(shí)現(xiàn)保存圖片到本地并可以在相冊中顯示出來
App應(yīng)用越來越人性化,不僅界面優(yōu)美而且服務(wù)也很多樣化,操作也非常方便。通過本篇文章給大家介紹基于Android實(shí)現(xiàn)保存圖片到本地并可以在相冊中顯示出來,對android保存圖片相關(guān)知識感興趣的朋友一起學(xué)習(xí)吧2015-12-12Android jni調(diào)試打印char陣列的實(shí)例詳解
這篇文章主要介紹了Android jni調(diào)試打印char陣列的實(shí)例詳解的相關(guān)資料,通過此文希望能幫助到大家實(shí)現(xiàn)這樣的功能,需要的朋友可以參考下2017-08-08