国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Android - Android 8.0升級不跳轉應用安裝頁面的解決方法

Android 8.0升級不跳轉應用安裝頁面的解決方法

2022-03-02 15:20zj_blog Android

這篇文章主要為大家詳細介紹了Android 8.0升級不跳轉應用安裝頁面的解決方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下

最近開發遇到了個問題,app升級的時候,其他手機都能正常升級,下載完安裝包,跳到安裝頁面進行新版本的安裝。但卻有用戶反映,華為P10和華為Mate 9升級時,怎么也無法跳轉到安裝頁面。起初我以為是華為手機自身系統的問題(因為手上的華為測試機都是正常的),還特地對比了幾種配置的華為手機,最后發現,是Android 8.0系統版本的鍋,不是手機的問題。

2017年8月22日,Google發布了Android 8.0的正式版,其正式名稱為:Android Oreo(奧利奧),Android 8.0強化了權限管理,變得更加安全。在Android 8.0以前,所有的未知來源應用都可以被安裝,或者會彈窗給用戶一個提示,如此設計雖然方便,但是若被引誘安裝了惡意軟件,安裝"未知來源"的應用有可能會對手機系統帶來潛在的危害;

而在Android 8.0的系統中,**未知來源應用權限**的開關被移除掉了,取而代之的是未知來源應用的管理列表,如果你想要安裝某個被自己所信任的開發者的app,則需要在每一次都手動授權"安裝未知應用"的許可。設置頁面如下圖:(在華為Android 8.0中,打開該設置頁面:設置列表—>安全與隱私—>更多安全設置—>安裝未知應用)

Android 8.0升級不跳轉應用安裝頁面的解決方法

*如圖所示*,若某個應用選擇的是“不允許”,那么假設app手動升級的時候,就無法成功跳轉到安裝頁面進行正常的App升級流程了,此時需要手動去授權才行,但是很多用戶并不知道需要這么設置。
廢話說了一大堆,解決其實很簡單。

1.在AndroidManifest.xml文件中,添加REQUEST_INSTALL_PACKAGES權限

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

2.在打開安裝包的代碼中添加**兼容Android 8.0**的代碼。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
/**
  * 打開安裝包
  *
  * @param mContext
  * @param fileUri
  */
  public void openAPKFile(Activity mContext, String fileUri) {
    DataEmbeddingUtil.dataEmbeddingAPPUpdate(fileUri);
    // 核心是下面幾句代碼
    if (null != fileUri) {
      try {
        Intent intent = new Intent(Intent.ACTION_VIEW);
        File apkFile = new File(fileUri);
        //兼容7.0
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
          intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
          Uri contentUri = FileProvider.getUriForFile(mContext, mContext.getPackageName() + ".fileProvider", apkFile);
          intent.setDataAndType(contentUri, "application/vnd.android.package-archive");
          //兼容8.0
          if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
            boolean hasInstallPermission = mContext.getPackageManager().canRequestPackageInstalls();
            if (!hasInstallPermission) {
              ToastUtil.makeText(MyApplication.getContext(), MyApplication.getContext().getString(R.string.string_install_unknow_apk_note), false);
              startInstallPermissionSettingActivity();
              return;
            }
          }
        } else {
          intent.setDataAndType(Uri.fromFile(apkFile), "application/vnd.android.package-archive");
          intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        }
        if (mContext.getPackageManager().queryIntentActivities(intent, 0).size() > 0) {
          mContext.startActivity(intent);
        }
      } catch (Throwable e) {
        e.printStackTrace();
        DataEmbeddingUtil.dataEmbeddingAPPUpdate(e.toString());
        CommonUtils.makeEventToast(MyApplication.getContext(), MyApplication.getContext().getString(R.string.download_hint), false);
      }
    }
  }
 
 
  /**
  * 跳轉到設置-允許安裝未知來源-頁面
  */
  @RequiresApi(api = Build.VERSION_CODES.O)
  private void startInstallPermissionSettingActivity() {
    //注意這個是8.0新API
    Intent intent = new Intent(Settings.ACTION_MANAGE_UNKNOWN_APP_SOURCES);
    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    mContext.startActivity(intent);
  }

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

原文鏈接:https://blog.csdn.net/zj_blog/article/details/79897241

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 欧洲成人 | 国产成人a亚洲精品 | 国产亚洲精品久久久久动 | 日韩一日 | 欧美综合久久 | 蜜桃成人 | 久久久人成影片免费观看 | а_天堂中文最新版地址 | 亚洲一区精品在线 | 亚洲国产高清美女在线观看 | 看一级黄色大片 | 国产精品免费在线 | 91在线综合 | 午夜电影 | 日韩一区二区视频 | 国产日韩成人 | 天堂一区二区三区在线 | 美女视频黄色 | 久久久久久网站 | 久久成人国产精品 | 日韩中文视频 | 狠狠操狠狠操 | 中文av在线播放 | 中文字幕一区二区三区四区五区 | 狠狠影院 | 最近的中文字幕在线看视频 | 91婷婷射 | 亚洲 精品 综合 精品 自拍 | 成人三级视频网站 | 国产黄色网址在线观看 | 国产精品2区 | 亚洲精品电影网在线观看 | 黄色在线免费 | 亚洲视频区 | 国精品一区二区三区 | 国产欧美在线观看 | www.中文字幕 | 日韩成人在线播放 | 欧美高清免费 | 成人av视| 国产一区二区在线播放 |