Android 10 適配攻略

2021-10-03 10:47:13 字數 1902 閱讀 7965

前幾天收到了公司的郵件,要求下一期版本中公升級targetsdk29,也就是適配android10。

想著這周自己的手機也剛剛公升級到android10系統,趁著趁著興奮就趕緊來研究一下androidq吧!

1.框架遷移步驟

2.更新android工程配置

首先在gradle.properties中開啟支援android 10的支援,示例如下:

android.useandroidx=

true

android.enablejetifier=

true

android ..

.}

3.遷移support包至android x

4.處理公升級android q帶來的行為變更

1.android q中的**資源讀寫

隱私是android 10的核心關注點,更嚴格的許可權,並限制了資料應用程式的使用。針對**資源讀寫,有以下地方需要注意:

//公有目錄只能通過content uri+id的方式訪問,以前的file路徑全部無效,如果是video,記得換成mediastore.videos

if(build.version.sdk_int >= build.version_codes.q)

判斷公有目錄檔案是否存在,自android q開始公有目錄file api都失效,不能直接通過new file(path).exists();判斷公檔案是否存在;

copy或者download檔案到公有目錄也需要注意;

儲存相關,通過mediastore儲存,相容androidq,儲存成功自動新增到相簿資料庫,無需再傳送廣播告訴系統插入相簿;

2.edittext預設不獲取焦點,不自動彈出鍵盤

當sdk版本大於api 28時,且裝置版本為android p以上版本,解決方法在oncreate中加入如下**,可獲得焦點,如需彈出鍵盤可延遲下:

medittext.

post((

)->

);

3.第三方分享等操作,都只能通過mediastore等api

直接使用檔案路徑的,如qq分享,都需要注意,這是不可行的,都只能通過mediastore等api,拿到uri來操作。

4.裝置硬體資訊讀取限制

ssaid的獲取方式為:

string id = android.provider.settings.secure.

getstring

(context.

getcontentresolver()

, android.provider.settings.secure.android_id)

;

5.region.op相關異常

這個問題主要是sdk版本大於api 28上呼叫canvas出現的崩潰「invalid region.op - only intersect and difference are allowed「,當目標版本從android p開始,canvas.clippath(@nonnull path path, @nonnull region.op op) ; 已經被廢棄,而且是包含異常風險的廢棄api,只有 region.op.intersect 和 region.op.difference 得到相容,幾乎所有的部落格解決方案都是如下簡單粗暴:

if

(build.version.sdk_int >= build.version_codes.p)

else

6.限制程式訪問剪貼簿

android q 包含了名為「read_clipboard_in_background」的新許可權。 顧名思義,新的許可權將阻止隨機的後台應用程式訪問剪貼簿內容。

Android10適配裝置ID獲取

解決android10系統版本無法獲取裝置id唯一標識的問題。獲取裝置id方法 private static string getcustomuuid else return fileuuid 定義變數 private static final string uuid file dir androi...

Android10新特性解析

和往年一樣,將於今年5月7日舉辦的谷歌 i o 19大會上,谷歌將發布首版android q 即android 10 系統。按照慣例,android q beta並非首個開發者預覽版,可能是第二或者第三版,beta階段更大意義在於非谷歌系的oem品牌手機加入,便於測試和使用者嘗鮮。至於正式版什麼時候...

android螢幕適配攻略

一 計量單位概念 1.螢幕尺寸 螢幕對角線長度 英吋 2 螢幕解析度 縱向畫素x橫向畫素 單位是px 3 畫素密度 dpi,每英吋畫素點個數,計算方式 畫素密度 對角線畫素個數 對角線英吋長度 對角線畫素點個數等於縱向畫素和橫向畫素開平方根 4 px 構成影象最小單位 dp,dip 密度無關畫素 以...