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)文章
OpenGL Shader實(shí)例分析(8)彩色光圈效果
這篇文章主要為大家詳細(xì)介紹了OpenGL Shader實(shí)例分析第8篇,彩色光圈效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-02-02
Android獲取手機(jī)配置信息具體實(shí)現(xiàn)代碼
下面為大家介紹下使用android獲取手機(jī)配置信息的具體過程,感興趣的朋友可以參考下哈,希望對你有所幫助2013-06-06
Android中使用TextView實(shí)現(xiàn)高仿京東淘寶各種倒計時效果
今天給大家?guī)淼氖莾H僅使用一個TextView實(shí)現(xiàn)一個高仿京東、淘寶、唯品會等各種電商APP的活動倒計時。今天小編把實(shí)現(xiàn)代碼分享到腳本之家平臺,對android textclock 倒計時效果感興趣的朋友參考下吧2016-10-10
Android 三級NestedScroll嵌套滾動實(shí)踐
這篇文章主要介紹了Android 三級NestedScroll嵌套滾動實(shí)踐,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-02-02
android:descendantFocusability方法介紹
開發(fā)中很常見的一個問題,項目中的listview不僅僅是簡單的文字,常常需要自己定義listview,問題就出現(xiàn)了,可能會發(fā)生點(diǎn)擊每一個item的時候沒有反應(yīng),無法獲取的焦點(diǎn)2012-11-11
Android中SharedPreference詳解及簡單實(shí)例
這篇文章主要介紹了 Android中SharedPreference詳解及簡單實(shí)例的相關(guān)資料,希望通過本文能幫助到大家,需要的朋友可以參考下2017-09-09

