国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android 8.0版本更新無法自動安裝問題的解決方法

2019-12-12 00:48:08
字體:
來源:轉載
供稿:網友

前言

前幾天APP上線了個新版本,有部分用戶反應在下載完安裝包以后點擊安裝無反應。查了下這部分用戶手機的系統的版本都是8.0+版本。因為太久沒關注新版本特性,所以導致了這個問題的發生。

Android 8.0 (Android O)為了針對一些流氓軟件引導用戶安裝其他無關應用。在應用權限設置的“特殊訪問權限”中,加入了“安裝其他應用”的設置。

實現

1.清單文件權限聲明

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

2.點擊安裝判斷是否有權限

 if (Build.VERSION.SDK_INT >= 26) {     //來判斷應用是否有權限安裝apk    boolean installAllowed= getPackageManager().canRequestPackageInstalls();     //有權限    if (installAllowed) {       //安裝apk      install(apkPath);    } else {       //無權限 申請權限      ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.REQUEST_INSTALL_PACKAGES}, INSTALL_APK_REQUESTCODE);     }   } else {     install(apkPath); } 

權限申請回調

@Override public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {   super.onRequestPermissionsResult(requestCode, permissions, grantResults);   switch (requestCode) {     case INSTALL_APK_REQUESTCODE:       //有注冊權限且用戶允許安裝      if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {         install(apkPath);       } else {         //將用戶引導至安裝未知應用界面。        Intent intent = new Intent(Settings.ACTION_MANAGE_UNKNOWN_APP_SOURCES);         startActivityForResult(intent, GET_UNKNOWN_APP_SOURCES);       }       break;   } } 

安裝APK

private void install(String apkPath) {    //7.0以上通過FileProvider    if (Environment.SYSTEM_VERSION_CODE >= 24) {      Uri uri = FileProvider.getUriForFile(context, Environment.FILE_PROVIDER_AUTHORITY, new File(apkPath));      Intent intent = new Intent(Intent.ACTION_VIEW).setDataAndType(uri, "application/vnd.android.package-archive");      intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);      intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);      context.startActivity(intent);    } else {      Intent intent = new Intent(Intent.ACTION_VIEW);      intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);      intent.setDataAndType(Uri.parse("file://" + apkPath), "application/vnd.android.package-archive");      context.startActivity(intent);    }}

更新圖示

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 建始县| 龙州县| 宝丰县| 沛县| 开江县| 商丘市| 乃东县| 合江县| 鲁山县| 铜山县| 德令哈市| 扎囊县| 蕉岭县| 洛宁县| 湘乡市| 旬邑县| 松江区| 林周县| 安新县| 资源县| 高邮市| 宁南县| 南京市| 宣威市| 博客| 溆浦县| 个旧市| 黄陵县| 马公市| 安国市| 麟游县| 鹤壁市| 扬州市| 武山县| 闸北区| 老河口市| 昌宁县| 大英县| 大英县| 茌平县| 招远市|