1. 程式人生 > >Android學習------關於Android9.0的相容

Android學習------關於Android9.0的相容

#Android9.0適配須知

1.前臺服務許可權宣告

需要請求前臺服務(比如通知欄中的通知,音樂播放器通知欄)許可權,(FOREGROUND_SERVICE),這是一個普通許可權,所以只需要在mainfest中新增即可,使用 Service.startForeground

android.permission.FOREGROUND_SERVICE

2 .獲取 READ_PHONE_STATE

1.構建序列號棄用 在 Android 9 中,Build.SERIAL 始終設定為 "UNKNOWN" 以保護使用者的隱私。

2.如果您的應用需要訪問裝置的硬體序列號,您應改為請求 READ_PHONE_STATE 許可權,然後呼叫 getSerial()

3.安全性變更

Android 9 包含可提升您的應用安全性的多個行為變更,但這些變更僅在您的應用以 API 級別 28 或更高級別為目標平臺時才會生效

預設情況下啟用網路傳輸層安全協議 (TLS)

意思就是如果在9.0系統機型上,使用非Https請求會發生崩潰異常,但是如果您的應用需要為特定域名啟用明文,您必須在應用的網路安全性配置中針對這些域名將 cleartextTrafficPermitted 顯式設定為 true。怎麼做呢

3.1 manifest 配置

<?xml version="1.0" encoding="utf-8"?>
<manifest ... >
 <application android:networkSecurityConfig="@xml/network_security_config"
                ... >
	    ...
 </application>
</manifest>

3.2 xml檔案加下新增 network_security_config.xml 配置

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
	<base-config cleartextTrafficPermitted="true"/>
</network-security-config>

4.Apache HTTP 客戶端棄用

在 Android 6.0 中,我們取消了對 Apache HTTP 客戶端的支援。 從 Android 9 開始,預設情況下該內容庫已從 bootclasspath 中移除且不可用於應用。
要繼續使用 Apache HTTP 客戶端,以 Android 9 及更高版本為目標的應用可以向其 AndroidManifest.xml 新增以下內容:

<uses-library android:name="org.apache.http.legacy" android:required="false"/>

5.介面變更

5.1檢視焦點

0 面積的檢視(即寬度或高度為 0)再也不能被聚焦。

此外,Activity 不再隱式分配觸控模式下的初始焦點。 而是由您顯式請求初始焦點(如若需要的話)。

之前的做法是如果要防止獲取EditText標籤會在之前新增一個0畫素的View獲取焦點,防止開啟介面就彈出鍵盤,9.0上應該是不行了。

相關推薦

Android學習------關於Android9.0相容

#Android9.0適配須知 1.前臺服務許可權宣告 需要請求前臺服務(比如通知欄中的通知,音樂播放器通知欄)許可權,(FOREGROUND_SERVICE),這是一個普通許可權,所以只需要在mainfest中新增即可,使用 Service.startFor

Android學習-相容Android7.0,8.0版本升級更新(程式碼片段記錄)(Kotlin)

Android7.0需要fileprovider宣告, Android8.0需要新增 申明許可權 <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" /&g

[Android FrameWork 6.0源碼學習] ViewGroup的addView函數分析

getparent without cap work direct down lstat sig ecif Android中整個的View的組裝是采用組合模式。 ViewGroup就相當與樹根,各種Layout就相當於枝幹,各種子View,就相當於樹葉。 至於View類。我

[Android FrameWork 6.0源碼學習] View的重繪過程

nds 源碼學習 most leg shift isp window round ces View繪制的三部曲, 測量,布局,繪畫今天我們分析測量過程 view的測量是從ViewRootImpl發起的,View需要重繪,都是發送請求給ViewRootImpl,然後他組織重

[Android FrameWork 6.0源碼學習] View的重繪過程之Layout

種子 noop cond req cor ide boolean 需要 bound View繪制的三部曲,測量,布局,繪畫現在我們分析布局部分測量部分在上篇文章中已經分析過了。不了解的可以去我的博客裏找一下View的布局和測量一樣,都是從ViewRootImpl中發起,Vi

[Android FrameWork 6.0源碼學習] View的重繪過程之Draw

鐘表 store 傳遞 lan play deb kill gre 學習 View繪制的三部曲,測量,布局,繪畫現在我們分析繪畫部分測量和布局 在前兩篇文章中已經分析過了。不了解的可以去我的博客裏找一下 下面進入正題,開始分析調用以及函數原理 private void

萬樹IT:Android軟件開發必學習0基礎內容

不可見 ont 系統軟件 多行 roi aci 數據存儲 編程語言 準則 如今安卓系統中國的前景市場是非常廣闊的,它主要針對的是移動設備市場,而如今智能手機已經占據人們生活不能缺少的一部分。所以,很多行業投入到安卓軟件開發,進入到安卓開發的人才也越來越多。 安卓應用軟件開

Android Build names/Tags/Numbers Update 201810/Android9.0-Pie

https://source.android.com/setup/start/build-numbers Codenames, Tags, and Build Numbers Android development happens around families of releases th

Android 學習之那些年我們遇到的BUG2:Android 8.0 自定義廣播接收失敗

自學安卓的過程中遇到的一個問題,在嘗試實現郭霖大佬的《第一行程式碼》第二版中的第五章的傳送自定義廣播時,發現自定義的廣播接收失敗! 按照要求完成相應的程式碼編寫後,發現點選按鈕,Toast未顯示,表明廣播接收器沒能接收到自定義的廣播。 解決方法: 高版本的Android對於廣播的

Android獲取WIFI 的ssid 方法適配Android9.0

Android獲取WIFI 的ssid 方法適配Android9.0 本文首次發表於: 蝸牛魔方-Android獲取WIFI SSID方法,適配9.0 demo 地址:JavaExtensionUtilsForAndroid 廢話不多說了直接上程式碼 首先在Androidmani

萬樹IT:Android軟體開發必學習0基礎內容

  如今安卓系統中國的前景市場是非常廣闊的,它主要針對的是移動裝置市場,而如今智慧手機已經佔據人們生活不能缺少的一部分。所以,很多行業投入到安卓軟體開發,進入到安卓開發的人才也越來越多。  安卓應用軟體開發必學習的5大基礎內容: 1、程式語言 2、基礎應用開

解決方案之Android 國際化資源完美相容6.0,7.0,8.0

在Android世界中,一般App應用的語言是根據Android系統顯示的語言變化的,但是有時候有些應用需要單獨設定App的顯示語言。 Android 國際化實現 國際化一般最常用的是支援簡體中文和美式英文。 思路: 切換Project檢視 建立多個國家的資原始

Android高階進階--插曲-從Android5.0Android9.0各版本變化

                            從Android5.0到Android9.0 自從公司提出了一些出其不意的需求之後我就下定了決心去了解安卓各版本系統的差異。這些出其不意的需求要麼屬於黑客行為,要麼還不成熟,很難順利的實現,例如做一個殺不死的APP,又

Android9.0 P 電源管理(android電量優化功能改進)

Android 9(API 28)電源管理 在最近幾個android版本中已存在的電量優化功能基礎上,Android 9 引入了一些新功能來持續改進裝置電源管理,以確保將系統資源提供給最需要它們的應用

android學習——控制硬加速 hardwareAccelerated 在3.0才有的。

從Android3.0 (API level11)開始,Android的2D顯示管道被被設計得更加支援硬加速了.硬加速使用GPU承擔了所有在View的canvas上執行的繪製操作.   啟用硬加速最簡單的的方法是對整個應用啟用硬體速.如果你的應用只使用標準的view和D

Android學習筆記-Android6.0執行時許可權

Android許可權機制,在Android6.0之前,其實一直很簡單,在AndroidManifest.xml中進行許可權宣告,通過一個Intent呼叫即可。 以打電話為例: <uses-permission android:name="andro

Android信版本-----Android9.0

一、Android err_cleartext_not_permitted 由於 Android P 限制了明文流量的網路請求,非加密的流量請求都會被系統禁止掉。解決方案參考這個 https://blog.csdn.net/qq_18620851/article/details/80617549

Android學習記錄(十三) http之digest鑑權之填坑6.0

背景: android 6.0.1 的手機發現使用webdav下載檔案實效,httpclient.execute get的時候出現: CrashHandler: java.lang.ArrayInde

Android學習Android 5.0分享動畫實現微信點選全屏效果

Android5.0過渡動畫,請看 今天用分享動畫實現微信點選全屏效果 本文原始碼下載地址 peizhi 配置 build.gradle: compile 'com.android.support:recyclerview-v7:23.

Android截圖,相容android 5.0和大圖片

Android中選擇一張圖片然後擷取部分作為頭像是一個非常常見的需求。當然很多個性化的應用中都會有自己專門定製的選擇圖片和裁剪圖片。但本文現在主要討論的是一些系統的東西,包括開啟系統圖片的選擇、呼叫系統的截圖功能。        以前在呼叫系統的截圖的時候我都是這樣使用的。