1. 程式人生 > >關於Android8.0安裝apk不自動安裝問題

關於Android8.0安裝apk不自動安裝問題

每次android推出新系統,就不可避免的帶出來一些坑!造成此問題的因素有多種:

1.android本身開源,國內手機開發廠商眾多,深度定製系統的不是一家兩家,導致碎片化嚴重。

2.app競爭日趨白熱化,公司要求的是速度,以至於996型別的公司隨處可見,對質量卻沒有很好的把關

3.公司產品經理並不會考慮你app的健壯性和可持續性,他們要的是功能,美觀,流程。

4.經常拿android和ios做對比,例如為什麼你們的彈框不如ios好看,為什麼沒有側滑效果,為什麼關閉app收不到推送等等,所以導致android強加了一些效果,增加了程式不穩定的風險

5.android自身的原因,導致程式很吃記憶體,例如卡頓,ANR,記憶體洩漏實在令人反感


好了,廢話不多說,先看看我遇到的問題,版本更新使用者反饋無限下載並不更新。剛剛聽到這訊息我第一反應這不是我們開發的事,因為我的app每天線上人數有上萬人,有統計,也基本都能更新成功,那塊程式碼一直沒動過,為什麼會出問題,一定是手機記憶體不足,或者允許位置程式安裝的選項未開,或者刷機導致,或者操作問題等等!直到我看到了真機顯示效果,才吃了一驚,沒有任何提示手機閃了一下就完了。這我才意識到,應該是機型適配的問題,所以我就把不能安裝app的手機做了機型和型號統計,發現基本都是華為手機,而系統版本基本都是8.0系統,這下就能大概確定問題所在。苦於沒有手機,怎麼辦?找真機測試平臺。

在說說真機測試平臺,我用的是騰訊優測,騰訊質量開放平臺,testin。為什麼用3家,因為收費,1元1分鐘,新賬號能贈送250分鐘左右,所以我就註冊哈!輕易不用的。怕用光了!但是今天我已申請公司給予購買了,買不買是它的事,反正我申請了,如果公司有心應該不會拒絕,在等訊息中。這三家平臺,機型最全的應該是騰訊優測,tsetin次之。

執行最快的應該是tsetin,騰訊優測次之。騰訊質量開放平臺最差勁。騰訊優測和騰訊質量開放平臺不能開啟設定頁面,被限制了。testin可以的。好了區別說到這。

問題產生和解決辦法

Android 8.0 Oreo 中,Google 移除掉了容易被濫用的“允許位置來源”應用的開關,在安裝 Play Store 之外的第三方來源的 Android 應用的時候,竟然沒有了“允許未知來源”的檢查框,如果你還是想要安裝某個被自己所信任的開發者的 app,則需要在每一次都手動授予“安裝未知應用”的許可。谷歌的原生系統在應用管理,開啟相應的app,選擇高階,安裝位置應用點進去選擇允許,就可以安裝了


可是在國產手機的應用管理中居然沒有。找了半天才發現,它在安全與隱私中,選擇安裝位置應用,進到了應用列表,但是卻發現應用列表中並沒有自己的應用,而且目前來說好多應用也沒有。



這下就尷尬了,就是說站在使用者角度,他們不知道如何設定成允許

所以只有咱們這端改程式碼了。

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

增加申請許可權,有這一句足矣,如果想寫的更好的話,加上許可權判斷唄

  1. /** 
  2.  * 判斷是否是8.0系統,是的話需要獲取此許可權,判斷開沒開,沒開的話處理未知應用來源許可權問題,否則直接安裝 
  3.  */
  4. privatevoid checkIsAndroidO() {  
  5.     if (Build.VERSION.SDK_INT >= 26) {  
  6.         boolean b = getPackageManager().canRequestPackageInstalls();  
  7.         if (b) {  
  8.             publicApk();//安裝應用的邏輯(寫自己的就可以)
  9.         } else {  
  10.             //請求安裝未知應用來源的許可權
  11.             ActivityCompat.requestPermissions(thisnew String[]{Manifest.permission.REQUEST_INSTALL_PACKAGES}, INSTALL_PACKAGES_REQUESTCODE);  
  12.         }  
  13.     } else {  
  14.         publicApk();  
  15.     }  
  16. }  
然後在許可權回撥結果中去判斷,申請成功就安裝,否則就提示到設定中開啟

好了,說到這。

相關推薦

關於Android8.0安裝apk自動安裝問題

每次android推出新系統,就不可避免的帶出來一些坑!造成此問題的因素有多種: 1.android本身開源,國內手機開發廠商眾多,深度定製系統的不是一家兩家,導致碎片化嚴重。 2.app競爭日趨白熱化,公司要求的是速度,以至於996型別的公司隨處可見,對質量卻沒有很好的把

Android 7.0 下載APK自動安裝

mime 顯示 sse cast works 入口 新的 限制 itl 隨著Android版本越來越高,Android對隱私的保護力度也越來越大。這些隱私權限的更改在為用戶帶來更加安全的操作系統的同時也為開發者帶來了一些新的任務。如何讓你的APP能夠適應這些

android apk 實現自動安裝

<uses-permission android:name="android.permission.INSTALL_PACKAGES" tools:ignore="ProtectedPermissions" /> 前提:apk已經取得系統簽名,並且內建了 //

華為手機更新安裝apk沒有自動開啟問題

剛開始寫的apk安裝程式碼,結果在華為mate8中更新apk,安裝完之後並沒有重新啟動。 Intent intent = new Intent(); intent.setA

批量安裝(pxe自動安裝系統)

一、PXE(預啟動環境) 1.PXE是Preboot Execution Environment的縮寫,預啟動執行環境 2.PXE使用需要以下幾點: 客戶端的網絡卡必須要支援PXE功能,並且開機選擇從網絡卡啟動,進入PXE程式 PXE伺服器必須要提供至少含有DHCP以及TFTP的服務!

Android安裝APK時提示安裝包異常導致安裝失敗

今天本屌在簽名打包APK的時候遇到了一個問題 那就是 這個問題很奇葩,百度了居然沒有任何答案,我在OPPO論壇百度到了相關問題,管理員回覆這是OPPO為看保障使用者權益XXX的,嚇死寶寶了 百度無果,只能去群裡問了,在群裡好心朋友的提醒下 我察覺到簽名的問題(簽名:這個鍋我不背)

Linux安裝gitlab (自動安裝失敗,手動安裝

·下載gitlab映象檔案、並安裝(國內映象地址) sudo yum localinstall –nogpgcheck https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-10.6.5-ce.0.e

如何禁止adb命令安裝apk及手動安裝apk

1.禁止adb命令安裝apk 修改位置:frameworks/base/cmds/pm/src/com/android/commands/pm/Pm.java private int runInstall() { int installFlags

META-INF方式多渠道打包提示安裝安裝證書

在Android 7.0系統 引入一項新的應用簽名方案 APK Signature Scheme v2,它能提供更快的應用安裝時間和更多針對未授權 APK 檔案更改的保護。在預設情況下,Android Studio 2.2 和 Android Plugin fo

xcode-select –install安裝失敗安裝該軟體 因為當前無法從軟體更新伺服器獲得

如果你現在在觀看這篇文章相信有很大的一部分原因是因為你也遇到了跟我一樣的問題“不能安裝該軟體 因為當前無法從軟體更新伺服器獲得“這是xcode的命令列工具無法安裝 這時候我在網上找了很多教程有些說是路徑的問題,而我試了很多都沒有找到一個好的解決辦法,最終在國外的一個網站下面的

sublime安裝外掛安裝上的一些解決方法

This error is happened with IPv6 problem. If yourInternet Service Provider (ISP) does not support for IPv6 you got this error. (adsbygoogle =

Android模擬器安裝apk顯示無法安裝

我在Android模擬器上安裝apk時後出現上面的錯誤提示: 但是安裝有些apk卻可以正常安裝,這是由於安裝的APP中使用了與當前CPU架構不一致的native libraries,所以導致報錯,因為現在絕大多數的智慧手機還都是採用ARM架構的,雖然and

Android 8.0 解決自動安裝APK問題

Android8.0之前 未知應用安裝許可權預設開啟,如下圖所示 8.0以下手機未知應用安裝許可權.png Android8.0之後 未知應用安裝許可權預設關閉,且許可權入口隱藏。 如何開啟未知應用安裝許可權的入口,並設定允許安裝? 在清單檔案中新增許

Android7.0+安裝apk檔案之後彈出安裝完成的介面解決辦法

在Android7.0+手上,版本升級完成,發現手機安裝完成,不啟動安裝完成頁面,而是直接關閉了,小編也是一頭霧水。琢磨了很久,下面小編把解決辦法show出來。 第一步:在資原始檔下面新建 xml資料夾,新建file_paths.xml檔案,程式碼如下: <?xml version="

Android7.0以上自動更新安裝apk

Android7.0以上加了很多特性,也對系統做了很多的優化和升級,而在對Uri的訪問上也做了改變,以下用安裝apk的例子來說明 對於程式,我們要實現程式能夠自動檢查更新安裝,我們需要給程式賦予許可權 <uses-permission android:name="an

Android8.0+應用內更新安裝apk失敗

描述 應用內更新,下載apk呼叫系統api進行安裝,在android8.0+手機上無法安裝,在android8.0以下可以安裝成功,看了看google for android 官網得知android8.0許可權控制的更嚴格,安裝應用需要應用本身具有“安裝未知來

Android8.0 安裝apk

/** * 判斷是否是8.0,8.0需要處理未知應用來源許可權問題,否則直接安裝 */ private void checkIsAndroidO() { LogUtil.d("getPackageManager:"+filePath); if (Bui

關於android8.0.0以上系統,安裝檔案成功的問題 解決

今天遇到bug, 1.專案生成的二維碼連結是https的,我用微信掃一掃一步步執行下去。 下載不下來,頁面空白。 解決: 用手機自帶的掃一掃軟體直接掃描 可以下載成功 2.在華為榮耀V8,小米8等機型上出現“程式未檢測到可以開啟此檔案的應用“, 原因: Androi

Android7.0安裝apk檔案之後彈出安裝介面的問題

Android7.0以下的版本,別忘了加上: intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);   Android7.0以上的版本,還需要加上許可權: <uses-permission android:name="an

解決Android7.0 更新安裝包時自動安裝問題

專案中發現在自動更新功能的時候,下載好了apk的檔案後在android7.0系統中不能自動跳到安裝介面,後來搜尋了一番解決了問題,但感覺沒有描述清楚,所以補充一下。 每個Android版本的釋出,對於安全性問題的要求越來越高,也為Android程式設計師增加了額外的工作量。Android6.0引入動態許可權控