一.簡介
Android 10 圍繞三個重要主題構建而成。首先,Android 10 以其先進的機器學習和對新興設備(如可摺疊設備和支持 5G 的手機)的支持走在移動創新領域的前沿。其次,Android 10 的主要關注點之一就是隱私權和安全性,其中近 50 項功能可爲用戶提供更好的保護、更高的透明度以及讓用戶更好地控制相關數據。最後,Android 10 可讓用戶更好地控制數字健康,因此個人和家庭都可以更好地利用此項技術。
藉助 Android 10,您可以針對可摺疊設備和其他大屏幕設備優化應用。
可摺疊設備
Android 10 基於強大的多窗口支持構建而成,擴展了跨應用窗口的多任務處理能力,還提供了屏幕連續性,可以在設備摺疊或展開時維持應用狀態。Android 10 在 onResume 和 onPause 中添加了多項改進,用於支持多項恢復,並在應用獲得焦點時通知應用。它還更改了 resizeableActivity 清單屬性的工作方式,以幫助您管理應用在可摺疊設備和大屏幕設備上的顯示方式。爲幫助針對可摺疊設備進行編譯,您可以在 Android Studio 中配置可摺疊模擬器來用作虛擬設備 (AVD)。
5G 網絡
5G 有望在穩定提升速度的同時降低延遲,Android 10 新增了針對 5G 的平臺支持,並擴展了現有 API 來幫助您充分利用這些增強功能。您可以使用連接 API 來檢測設備是否具有高帶寬連接,還可以檢查連接是否按流量計費。藉助這些功能,您的應用和遊戲可以爲使用 5G 的用戶量身打造豐富的沉浸式體驗。
二.變化
Android 10.0上有哪些變化呢,下面一一講解。
<1> 手機相冊
public void startAlbumActivityForResult(Activity activity) {
if (!ActivityUtils.isActivityIsAlive(activity)) {
return;
}
Intent intent = new Intent(Intent.ACTION_PICK);
intent.setDataAndType(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, "image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);//適配Android 10.0
activity.startActivityForResult(intent, REQUEST_CODE_SELECT_PICTURE);
}
<2> 重大隱私權變更
(2.1) 位置權限
爲了讓用戶更好地控制應用對位置信息的訪問權限,Android 10 引入了 ACCESS_BACKGROUND_LOCATION 權限。
與 ACCESS_FINE_LOCATION 和 ACCESS_COARSE_LOCATION 權限不同,ACCESS_BACKGROUND_LOCATION 權限僅會影響應用在後臺運行時對位置信息的訪問權限。除非符合以下條件之一,否則應用將被視爲在後臺訪問位置信息:
屬於該應用的 Activity 可見。
該應用運行的某個前臺設備已聲明前臺服務類型爲 location。
要聲明您的應用中的某個服務的前臺服務類型,請將應用的 targetSdkVersion 或 compileSdkVersion 設置爲 29 或更高版本。詳細瞭解前臺服務如何繼續執行用戶發起的需要訪問位置信息的操作。
以 Android 9 或更低版本爲目標平臺時自動授予訪問權限
如果您的應用在 Android 10 或更高版本上運行,但其目標平臺是 Android 9(API 級別 28)或更低版本,則該平臺具有以下行爲:
如果您的應用爲 ACCESS_FINE_LOCATION 或 ACCESS_COARSE_LOCATION 聲明瞭 <uses-permission> 元素,則系統會在安裝期間自動爲 ACCESS_BACKGROUND_LOCATION 添加 <uses-permission> 元素。
如果您的應用請求了 ACCESS_FINE_LOCATION 或 ACCESS_COARSE_LOCATION,系統會自動將 ACCESS_BACKGROUND_LOCATION 添加到請求中。
在設備升級到 Android 10 後訪問
如果用戶向您的應用授予對設備位置信息的訪問權限(ACCESS_COARSE_LOCATION 或 ACCESS_FINE_LOCATION),然後將其設備從 Android 9 升級到 Android 10,則系統會自動更新應用已獲取的基於位置信息的那組權限。您的應用在設備升級後接收的那組權限取決於應用的目標 SDK 版本及其定義的權限,如下表所示:
(2.2) 分區存儲
外部存儲訪問權限範圍限定爲應用文件和媒體
默認情況下,對於以 Android 10 及更高版本爲目標平臺的應用,其訪問權限範圍限定爲外部存儲,即分區存儲。此類應用可以查看外部存儲設備內以下類型的文件,無需請求任何與存儲相關的用戶權限:
特定於應用的目錄中的文件(使用 getExternalFilesDir() 訪問)。
應用創建的照片、視頻和音頻片段(通過媒體庫訪問)。
要詳細瞭解分區存儲以及如何共享、訪問和修改在外部存儲設備上保存的文件,請參閱有關如何管理外部存儲設備中的文件以及如何訪問和修改媒體文件的指南。
(2.3) 系統執行後臺 Activity
從 Android 10 開始,系統會增加針對從後臺啓動 Activity 的限制。此項行爲變更有助於最大限度地減少對用戶造成的中斷,並且可以讓用戶更好地控制其屏幕上顯示的內容。只要您的應用啓動 Activity 是因用戶互動直接引發的,該應用就極有可能不會受到這些限制的影響。
要詳細瞭解從後臺啓動 Activity 的建議替代方法,請參閱有關如何在應用中提醒用戶注意有時效性的事件的指南。