android9.0系統適配遇到的問題


 

一、apk在9.0以下的系統上安裝運行,沒有問題。但是在9.0系統上運行會彈出一個框

  解決辦法:

private void closeAndroidPDialog() {
        try {
            Class aClass = Class.forName("android.content.pm.PackageParser$Package");
            Constructor declaredConstructor = aClass.getDeclaredConstructor(String.class);
            declaredConstructor.setAccessible(true);
        } catch (Exception e) {
            e.printStackTrace();
        }
        try {
            Class cls = Class.forName("android.app.ActivityThread");
            Method declaredMethod = cls.getDeclaredMethod("currentActivityThread");
            declaredMethod.setAccessible(true);
            Object activityThread = declaredMethod.invoke(null);
            Field mHiddenApiWarningShown = cls.getDeclaredField("mHiddenApiWarningShown");
            mHiddenApiWarningShown.setAccessible(true);
            mHiddenApiWarningShown.setBoolean(activityThread, true);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

  

二、9.0系統apk自動更新,下載下來apk后無法自動安裝,安裝界面一閃而逝

  解決辦法:在AndroidManifest.xml加入權限,並在程序運行的時候動態申請位置來源權限

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

三、9.0系統webview加載問題

解決方法:在AndroidManifest.xml文件中的Application標簽添加android:usesCleartextTraffic="true"。

四、需要在AndroidManifest.xml中加入以下普通權限,不然在9.0系統中通知沒法顯示或者直接報錯。

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

五、兼容8.0以上的notification
8.0之前比較常規,按照老方法來就行。8.0以后必須要創建並設置NotificationChannel

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM