1.相機拍照崩潰(Android7.0引入“私有目錄被限制訪問”,“StrictModeAPI政策”)
解決方法 :首先在manifast中創(chuàng)建一個provider
然后在打開相機的地方根據(jù)設備版本處理:

2.MODE_WORLD_READABLE模式廢棄(SharedPreferences模式)
解決方法:使用MODE_PRIVATE模式。
3.獲取以content開頭的文件拿不到正確路徑。
? 目前并沒有出現(xiàn)此問題。
4.Api8.0以上版本升級無法跳轉安裝頁面
? 解決方法:首先在manifast中增加一個權限
在安裝apk的地方把?? Intent intent = newIntent(Intent.ACTION_VIEW)
改為:Intent intent = newIntent(Intent.ACTION_INSTALL_PACKAGE);
5.解析包安裝失敗
?解決方法:安裝時把
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK)這句話放在
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION)下面
6.通知欄不顯示
?解決方法:

7.隱式廣播限制
??安卓8.0對廣播進行了限制 接收廣播消耗資源 如果多個應用注冊了系統(tǒng)廣播 會持續(xù)消耗資源。
? 解決方案
? 如果是注冊系統(tǒng)廣播 不要在清單文件中注冊了 要根據(jù)自己的需要在代碼中注冊 比如少兒項目 清單文件中注冊了個像 監(jiān)聽網(wǎng)絡變化 和 投屏監(jiān)聽網(wǎng)絡的廣播 這些都可以在項目開啟時動態(tài)注冊
? 如果是自定義廣播 盡量也要動態(tài)注冊 如果實在需要靜態(tài)注冊 可以嘗試在發(fā)送的時候攜帶 intent.addFlags(0x01000000);
8.低電耗模式和應用待機模式限制
? 8.0系統(tǒng)待機一段時間后會進入低電量模式 低電量模式下鬧鐘類AlarmManager功能會受到影響 如果用到了這個類 解決方案如下
? 設置鬧鐘時使用setInexactRepeating這個方法也是設置重復鬧鐘 他會把幾個時間差不多的鬧鐘合并成一個執(zhí)行 相對來說更省電 如果還是不行的話就要申請電池白名單
PowerManager powerManager = (PowerManager) activity.getSystemService(Context.POWER_SERVICE);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
//判斷應用是否在去除低電耗的白名單中
??? if (!powerManager.isIgnoringBatteryOptimizations(activity.getPackageName())) {
//申請白名單 啟動一個ACTION_IGNORE_BATTERY_OPTIMIZATION_SETTINGS 意圖intent
??????? Intent intent = new Intent(Settings.ACTION_IGNORE_BATTERY_OPTIMIZATION_SETTINGS);
??????? activity.startActivity(intent);
??? }
}
9.關閉分屏功能
在清單文件的 <activity>或 <application>節(jié)點中設置該屬性,啟用或禁用多窗口顯示
android:resizeableActivity="false"? //關閉分屏功能
android:resizeableActivity="true"? //開啟分屏功能
10.權限的動態(tài)申請(具體文檔請參照文案文檔)
??使用easyPermission動態(tài)申請權限。
? 需要申請的權限:
? 相機權限,讀、寫內存權限和獲取手機信息權限。
拍攝照片和錄制視頻的權限,
權限名字位置拒絕后的影響
相機權限掃一掃不能使用掃一掃功能
相機權限和讀寫手機內存權限更換頭像不能更換頭像
獲取手機信息請求頭、公共參數(shù)、搜索列表參數(shù)、關于頁面的排查日志無影響
讀寫手機內存權限下載視頻不能下載
讀寫手機內存權限下載圖片不能下載
定位權限投屏無影響
相機權限和讀寫手機內存權限H5上傳圖片或視頻不能上傳
11.Api9.0以上org.apache.http.legacy 庫被移除
從Android P開始,org.apache.http.legacy庫將從 bootclasspath 中刪除
若要繼續(xù)使用在清單文件application節(jié)點里添加如下代碼:
<uses-library
android:name="org.apache.http.legacy"
android:required="false" />
12.Api9.0以上禁止 App 使用所有未加密的連接
在Android P系統(tǒng)的設備上,如果應用使用的是非加密的明文流量的http網(wǎng)絡請求,則會導致該應用無法進行網(wǎng)絡請求,https則不會受影響,同樣地,如果應用嵌套了webview,webview也只能使用https請求。
解決方法:
在res文件夾下創(chuàng)建一個xml文件夾,然后創(chuàng)建一個network_security_config.xml文件,文件內容如下
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<base-config cleartextTrafficPermitted="true" />
<network-security-config>
接著,在AndroidManifest.xml文件下的application標簽增加以下屬性:
android:networkSecurityConfig="@xml/network_security_config"