一、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
