最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android 8.0版本更新無(wú)法自動(dòng)安裝問(wèn)題的解決方法

 更新時(shí)間:2018年06月12日 11:15:33   作者:Ho0229  
這篇文章主要為大家詳細(xì)介紹了Android 8.0版本更新無(wú)法自動(dòng)安裝問(wèn)題的解決方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

前言

前幾天APP上線了個(gè)新版本,有部分用戶反應(yīng)在下載完安裝包以后點(diǎn)擊安裝無(wú)反應(yīng)。查了下這部分用戶手機(jī)的系統(tǒng)的版本都是8.0+版本。因?yàn)樘脹](méi)關(guān)注新版本特性,所以導(dǎo)致了這個(gè)問(wèn)題的發(fā)生。

Android 8.0 (Android O)為了針對(duì)一些流氓軟件引導(dǎo)用戶安裝其他無(wú)關(guān)應(yīng)用。在應(yīng)用權(quán)限設(shè)置的“特殊訪問(wèn)權(quán)限”中,加入了“安裝其他應(yīng)用”的設(shè)置。

實(shí)現(xiàn)

1.清單文件權(quán)限聲明

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

2.點(diǎn)擊安裝判斷是否有權(quán)限

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

權(quán)限申請(qǐng)回調(diào)

@Override 
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { 
  super.onRequestPermissionsResult(requestCode, permissions, grantResults); 
  switch (requestCode) { 
    case INSTALL_APK_REQUESTCODE: 
      //有注冊(cè)權(quán)限且用戶允許安裝
      if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { 
        install(apkPath); 
      } else { 
        //將用戶引導(dǎo)至安裝未知應(yīng)用界面。
        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以上通過(guò)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);
    }
}

更新圖示

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論

朔州市| 元氏县| 南通市| 灵武市| 肃宁县| 独山县| 卢龙县| 阳山县| 西贡区| 临沧市| 新疆| 海淀区| 德昌县| 临潭县| 饶平县| 黎平县| 哈尔滨市| 资源县| 尤溪县| 黔南| 紫阳县| 宁明县| 巴马| 建瓯市| 白山市| 疏勒县| 沂源县| 济南市| 漠河县| 蒙自县| 舟山市| 铜鼓县| 屯门区| 柏乡县| 承德县| 闽侯县| 虹口区| 翁牛特旗| 韩城市| 蒙自县| 溧水县|