Android 10 功能與 API

Android 10 為使用者和開發人員推出了強大的功能。本文件將重點說明開發人員可使用哪些功能,

如要瞭解 API,請參閱 API 差異比較表或參閱 Android API 參考資料,找出已「新增至 API 級別 29」的 API。此外,請務必查看 Android 10 的行為變更 (適用於指定 API 級別 29 的應用程式所有應用程式) 以及隱私權相關異動,瞭解平台變更可能對應用程式造成的影響。

安全性增強項目

Android 10 導入了多項安全性功能,以下各節概略說明。

改良的生物特徵辨識驗證對話方塊

Android 10 針對生物特徵辨識驗證支援功能做出以下改善:

  • 檢查生物特徵辨識驗證功能。
  • 備用機制,可讓使用者在無法使用其生物特徵辨識輸入內容進行驗證的情況下,使用裝置 PIN 碼、解鎖圖案或密碼進行驗證。
  • 提示系統在使用隱含生物特徵辨識技術進行驗證後,不必要求使用者確認。例如,您可以指示系統在使用者已使用臉孔驗證完成驗證後,不需要進一步確認。

直接從 APK 執行嵌入式 DEX 程式碼

自 Android 10 起,您可以指示平台直接從應用程式的 APK 檔案執行嵌入式 DEX 程式碼。如果攻擊者利用裝置上的本機編譯程式碼執行竄改攻擊,這種做法可協助防範。

詳情請參閱「直接從 APK 執行嵌入式 DEX 程式碼」。

TLS 1.3 支援

Android 10 開始支援 TLS 1.3。TLS 1.3 是傳輸層安全標準 (TLS) 標準的主要修訂版本,可提升效能和安全性。我們的基準顯示,採用 TLS 1.3 時,建立安全連線的速度比 TLS 1.2 快 40%。

如要進一步瞭解我們的傳輸層安全標準 (TLS) 1.3 實作項目,請參閱「所有應用程式行為變更中的傳輸層安全標準 (TLS) 部分」。

公用 Conscrypt API

自 Android 10 起,Conscrypt 安全性提供者提供了用於傳輸層安全標準 (TLS) 功能的公用 API。

android.net.ssl 底下的類別包含靜態方法,可用於存取一般 javax.net.ssl API 無法使用的功能。這些類別的名稱可以推測為對應 javax.net.ssl 類別的複數。舉例來說,在 javax.net.ssl.SSLSocket 例項中運作的程式碼可以改用 SSLSockets 的方法。

連線功能

Android 10 包含幾項與網路和連線相關的改善項目。

Wi-Fi 網路連線 API

Android 10 開始支援點對點連線。這項功能可讓應用程式使用 WifiNetworkSpecifier 描述要求網路的屬性,提示使用者變更裝置連接的存取點。點對點連線是用於非網路提供用途,例如 Chromecast 和 Google Home 硬體等次要裝置的開機設定。

詳情請參閱適用於點對點連線的 Wi-Fi Network Request API

Wi-Fi 網路建議 API

Android 10 新增了對應用程式的支援,可提示使用者連線至 Wi-Fi 存取點。您可以提供建議要連線的網路。平台最終會根據您和其他應用程式的輸入內容,選擇要接受的存取點。

如要進一步瞭解這項功能,請參閱 Wi-Fi 建議

改善 Wi-Fi 高效能模式和低延遲模式

Android 10 可讓您向基礎數據機提供提示,盡量縮短延遲時間。

Android 10 擴充了 Wi-Fi Lock API,可有效支援高效能模式和低延遲模式。高效能和低延遲模式的 Wi-Fi 省電模式會停用,低延遲模式則可啟用進一步的延遲時間最佳化功能,具體情況視數據機支援而定。

只有在取得鎖定的應用程式於前景執行且螢幕開啟時,才能啟用低延遲模式。低延遲模式特別適合用於即時手遊應用程式。

DNS 解析器中的特殊查詢

針對使用明文查詢和 DNS-over-TLS 模式,Android 10 針對特殊 DNS 查詢新增了原生支援。先前,平台 DNS 解析器僅支援 A 和 AAAA 記錄,這類記錄只能查詢與名稱相關聯的 IP 位址,但不支援任何其他記錄類型。藉由 DnsResolver API 提供的一般非同步解析,您可以查詢 SRVNAPTR 和其他記錄類型。請注意,剖析回應會留在應用程式中執行。

如需以 NDK 為基礎的應用程式,請參閱 android_res_nsend 的說明。

Wi-Fi 輕鬆連線

Android 10 可讓您使用 Easy Connect 佈建 Wi-Fi 憑證至對等互連裝置,取代已淘汰的 WPS。應用程式可以使用 ACTION_PROCESS_WIFI_EASY_CONNECT_URI 意圖,將 Easy Connect 整合至設定和佈建流程。

如要進一步瞭解這項功能,請參閱 Wi-Fi 輕鬆連線

Wi-Fi Direct 連線 API

Android 10 中的 WifiP2pConfigWifiP2pManager API 類別會更新,以便使用預先定義的資訊,支援透過 Wi-Fi Direct 快速建立連線功能。這項資訊會透過藍牙或 NFC 等側邊管道分享。

以下程式碼範例顯示如何使用預先定義的資訊建立群組:

Kotlin

val manager = getSystemService(Context.WIFI_P2P_SERVICE) as WifiP2pManager
val channel = manager.initialize(this, mainLooper, null)

// prefer 5G band for this group
val config = WifiP2pConfig.Builder()
    .setNetworkName("networkName")
    .setPassphrase("passphrase")
    .enablePersistentMode(false)
    .setGroupOperatingBand(WifiP2pConfig.GROUP_OWNER_BAND_5GHZ)
    .build()

// create a non-persistent group on 5GHz
manager.createGroup(channel, config, null)

Java

WifiP2pManager manager = (WifiP2pManager) getSystemService(Context.WIFI_P2P_SERVICE);
Channel channel = manager.initialize(this, getMainLooper(), null);

// prefer 5G band for this group
WifiP2pConfig config = new WifiP2pConfig.Builder()
.setNetworkName("networkName")
.setPassphrase("passphrase")
.enablePersistentMode(false)
.setGroupOperatingBand(WifiP2pConfig.GROUP_OWNER_BAND_5GHZ)
.build();

// create a non-persistent group on 5GHz
manager.createGroup(channel, config, null);

如要使用憑證加入群組,請將 manager.createGroup() 替換成以下內容:

Kotlin

manager.connect(channel, config, null)

Java

manager.connect(channel, config, null);

藍牙 LE 連線方向頻道 (CoC)

Android 10 可讓應用程式使用 BLE CoC 連線在兩部 BLE 裝置之間傳輸較大的資料串流。此介面簡化了藍牙和連線機制,以簡化實作。

電話功能

Android 10 包含多項與電話相關的改善項目。

改善通話品質

Android 10 新增了一項功能,可在支援此功能的裝置上收集進行中的 IP 多媒體子系統 (IMS) 通話品質資訊,包括收發網路品質的資訊。

來電過濾和來電顯示

Android 10 可讓應用程式將不在使用者通訊錄中的來電視為可能的騷擾電話,並代表使用者拒絕騷擾電話。系統會將這些已封鎖呼叫的資訊記錄為已封鎖的呼叫,並在使用者缺少通話時,提供更公開透明的資訊。使用這個 API 不需要向使用者取得 READ_CALL_LOG 權限,就能提供來電過濾和來電顯示功能。

呼叫重新導向服務 API

Android 10 變更呼叫意圖的處理方式。NEW_OUTGOING_CALL 廣播訊息已淘汰,並由 CallRedirectionService API 取代。CallRedirectionService API 提供的介面可用於修改 Android 平台發出的外送呼叫。舉例來說,第三方應用程式可能會取消通話,並透過 IP 網路語音傳遞技術重新轉送。

改善在外部儲存空間建立檔案的功能

除了推出限定範圍儲存空間外,Android 10 也新增下列與外部儲存空間相關的功能:

媒體和圖形

Android 10 推出了下列新的媒體和圖形功能和 API:

分享音訊輸入內容

Android 10 新增了讓兩個應用程式同時共用音訊輸入的功能。詳情請參閱「分享音訊輸入」。

音訊播放擷取

Android 10 可讓應用程式擷取其他應用程式的音訊播放。 詳情請參閱「播放擷取內容」。

MediaStyle 通知中的跳轉滑桿

從 Android 10 開始,MediaStyle 通知會顯示跳轉列。跳轉列會顯示 PlaybackState.getPosition() 的播放進度,在某些情況下,你可以使用跳轉滑桿搜尋到正在播放節目的位置。搜尋列的外觀和行為是由以下規則控管:

  • 如果有使用中的 MediaSession,且時間長度 (由 MediaMetadata.METADATA_KEY_DURATION 指定) 大於零,就會顯示跳轉列。因此,在不明確的串流 (例如直播和電台廣播) 中,系統不會顯示長條。
  • 如果工作階段實作 ACTION_SEEK_TO,使用者可以拖曳搜尋列來控製播放位置。

原生 MIDI API

Android Native MIDI API (AMidi) 可讓應用程式開發人員透過 C/C++ 程式碼傳送及接收 MIDI 資料,更緊密地與 C/C++ 音訊/控制邏輯整合,盡可能減少 JNI 的需求。

詳情請參閱「Android 原生 MIDI API」。

MediaCodecInfo 改善項目

Android 10 會為 MediaCodecInfo 新增方法,藉此進一步瞭解轉碼器。

詳情請參閱「媒體轉碼器」一文。

熱能 API

當裝置過熱時,裝置可能會對 CPU 和/或 GPU 進行節流措施,進而以非預期方式影響應用程式和遊戲。如果應用程式使用複雜的圖形、大量計算或持續的網路活動,就更有可能引發問題,並且可能因晶片組和核心頻率、整合程度,以及裝置包裝和板型規格等因素而有所不同。

在 Android 10 中,應用程式和遊戲可利用熱力 API 監控裝置的變更,並採取行動以維持較低的耗電量,恢復正常溫度。應用程式在 PowerManager註冊事件監聽器,此方法會回報進行中的熱力狀態,範圍從輕度到嚴重、嚴重、緊急及關閉。

裝置回報熱力壓力時,應用程式和遊戲可透過多種方式減少持續性活動來減少耗電量。舉例來說,串流應用程式可降低解析度/位元率或網路流量、相機應用程式可停用閃光燈或密集圖片強化功能、遊戲可以降低影格速率或多邊形傾斜度、媒體應用程式可以降低喇叭音量,地圖應用程式也可能會關閉 GPS。

Thermal API 需要新的裝置 HAL 層,目前支援搭載 Android 10 的 Pixel 裝置。我們正與裝置製造商的合作夥伴合作,盡快為生態系統提供廣泛的支援。

相機和圖片

Android 10 推出了下列新的相機和圖片相關功能:

單色相機支援

Android 9 (API 級別 28) 最初導入了單色相機功能。Android 10 針對單色相機的支援功能新增以下幾項強化功能:

  • 支援 Y8 串流格式,以提升記憶體效率。
  • 支援單色原始 DNG 擷取。
  • 推出 MONO 和 NIR CFA 列舉,以區分一般單色相機和附近的紅外線相機。

您可以使用這項功能擷取原生單色圖片。多鏡頭邏輯裝置可使用單色相機做為實體子相機,在低光源環境下拍出畫質更好的影像。

動態景深格式

從 Android 10 開始,相機可以使用名為動態深度格式 (DDF) 的新結構定義,將圖像的深度資料儲存在個別檔案中。應用程式可以要求 JPG 圖片及其深度中繼資料,然後使用該資訊進行後續處理,而不修改原始圖片資料。

如要閱讀此格式的規格,請參閱動態深度格式

高效率圖片檔案格式

高效率圖片檔案 (HEIF) 格式是標準的圖片和影片格式,比起其他檔案格式,編碼品質更出色,檔案大小也更小。

如要進一步瞭解檔案格式,請參閱 HEIC

改善多鏡頭功能

Android 10 改善了多個相機的融合成單一邏輯相機,這是 Android 9 (API 級別 28) 推出的功能。以下內容已新增至 Camera2 API

Accessibility Services API

Android 10 推出了下列新的無障礙服務功能和 API:

AccessibilityNodeInfo 項目鍵標記

自 Android 10 起,您可以呼叫 isTextEntryKey(),以判斷指定的 AccessibilityNodeInfo 是否代表屬於鍵盤或撥號鍵盤的文字輸入鍵。

無障礙工具對話方塊互動朗讀

萬一使用者需要執行無障礙捷徑才能啟動無障礙服務,Android 10 會在服務要求時,允許對話方塊搭配文字轉語音提示。

啟用手勢操作時,使用無障礙捷徑

在 Android 10 中啟用手勢操作功能後,就無法顯示或選取無障礙工具按鈕。如要存取無障礙服務選單,使用者必須執行下列其中一種手勢:

  • 以兩指向上滑動。
  • 以兩指向上滑動並按住,

實體鍵盤的無障礙工具捷徑

在 Android 10 中,使用者可以按下 Control + Alt + Z 鍵觸發實體鍵盤上的無障礙捷徑。

強化螢幕鍵盤控制器功能

在 Android 10 中,即使裝置偵測到連接硬鍵盤,無障礙服務仍可要求顯示螢幕鍵盤。使用者可以覆寫這個行為。

使用者定義的無障礙功能逾時

Android 10 導入了 getRecommendedTimeoutMillis() API。這個方法支援使用者定義的互動式和非互動式 UI 元素逾時。傳回值會受到使用者偏好設定和無障礙服務 API 的影響。

改善自動填入功能

Android 10 針對自動填入服務進行下列改善。

相容性相關自動填入要求

您可以使用 FillRequest.FLAG_COMPATIBILITY_MODE_REQUEST 旗標,判斷是否透過相容性模式產生自動填入要求。

同時儲存使用者名稱和密碼

您可以使用 SaveInfo.FLAG_DELAY_SAVE 標記,支援應用程式使用多項活動顯示使用者名稱、密碼和其他欄位的情況。

使用者與「儲存 UI」的互動

您可以在對話方塊設定動作事件監聽器,並變更對應密碼遠端檢視畫面的顯示設定,即可在儲存對話方塊中顯示或隱藏密碼欄位。

支援更新資料集

自動填入功能可更新現有密碼。例如,如果使用者已儲存密碼,然後儲存新密碼,自動填入功能會提示使用者更新現有密碼,而不會儲存新密碼。

改善欄位分類功能

Android 10 對 Field Classification API 進行下列改善。

使用者資料.Builder 建構函式

UserData.Builder 建構函式已變更,以便更符合 Builder 模式。

允許將某個值對應至多種類別 ID

在 Android 10 中使用 UserData.Builder 時,您現在可以將值對應至多種類別 ID。在先前版本中,如果重複加入某個值,就會擲回例外狀況。

進一步支援信用卡號

欄位分類現在可偵測信用卡末四碼為四位數。

支援應用程式專屬的欄位分類

Android 10 新增了 FillResponse.setUserData(),可讓您設定工作階段期間的應用程式特定使用者資料。這有助於自動填入服務偵測含有應用程式特定內容的欄位類型。

UI 和系統控制項

Android 10 提供了下列使用者介面改善項目:

支援 JVMTI PopFrame 上限

Android 10 開始在 Android JVMTI 實作中支援 can_pop_frames 功能。偵錯時,這項功能可讓您在暫停中斷點後重新執行函式,並調整函式的本機、全域或實作。詳情請參閱 Oracle 的彈出式視窗參考資料頁面

Surface 控制項 API

Android 10 提供 SurfaceControl API,可用於低層級的系統合成器 (SurfaceFlinger)。對大多數使用者而言,SurfaceView 是運用合成器的正確方法。SurfaceControl API 在某些情況下非常實用,例如:

  • 多個介面的同步處理作業
  • 跨程序介面嵌入
  • 低層生命週期管理

SurfaceControl API 適用於 SDK 和 NDK 繫結。NDK 實作包含一個 API,可用於手動與合成器交換緩衝區。這可以為已用盡 BufferQueue 的使用者提供替代方案。

WebView 飢餓轉譯器偵測

Android 10 推出了 WebViewRenderProcessClient 抽象類別,可供應用程式用來偵測 WebView 是否沒有回應。如何使用這個類別:

  1. 定義自己的子類別,並實作其 onRenderProcessResponsive()onRenderProcessUnresponsive() 方法。
  2. WebViewRenderProcessClient 的例項附加至一或多個 WebView 物件。
  3. 如果 WebView 沒有回應,系統會呼叫用戶端的 onRenderProcessUnresponsive() 方法,並傳遞 WebViewWebViewRenderProcess。(如果 WebView 是單一程序,則 WebViewRenderProcess 參數為空值)。應用程式可以採取適當動作,例如向使用者顯示對話方塊,詢問是否要暫停轉譯程序。

如果 WebView 仍未回應,系統會定期呼叫 onRenderProcessUnresponsive() (每五秒不超過一次),但不需採取其他動作。如果 WebView 再次開始回應,系統只會呼叫 onRenderProcessResponsive() 一次。

設定面板

Android 10 導入了設定面板,這個 API 可讓應用程式根據應用程式的使用者顯示設定。因此,使用者不必前往「設定」變更 NFC行動數據等項目,才能使用應用程式。

圖 1. 使用者在裝置未連上網路時嘗試開啟網頁。Chrome 彈出「Internet Connectivity」設定面板...

圖 2. 使用者不必離開 Chrome 應用程式就能開啟 Wi-Fi 並選取網路。

舉例來說,假設使用者在裝置處於飛航模式時開啟網路瀏覽器。在 Android 10 之前,應用程式只能顯示一般訊息,要求使用者開啟「設定」來恢復連線。在 Android 10 中,瀏覽器應用程式可顯示內嵌面板,顯示重要的連線設定,例如飛航模式、Wi-Fi (包括附近的網路) 和行動數據。透過這個面板,使用者不必離開應用程式就能恢復連線。

如要顯示設定面板,請透過下列其中一種 Settings.Panel 動作觸發意圖:

Kotlin

val panelIntent = Intent(Settings.Panel.settings_panel_type)
startActivityForResult(panelIntent)

Java

Intent panelIntent = new Intent(Settings.Panel.settings_panel_type);
startActivityForResult(panelIntent);

settings_panel_type 可以是下列任一值:

ACTION_INTERNET_CONNECTIVITY
顯示與網際網路連線相關的設定,例如飛航模式、Wi-Fi 和行動數據。
ACTION_WIFI
顯示 Wi-Fi 設定,但「不」顯示其他連線設定。這對於需要 Wi-Fi 連線進行大型上傳或下載的應用程式非常實用。
ACTION_NFC
顯示與近距離無線通訊 (NFC) 相關的所有設定。
ACTION_VOLUME
顯示所有音訊串流的音量設定。

改善分享方式

Android 10 針對分享功能提供了一些改善項目:

Share Shortcuts API

Sharing Shortcuts API 取代 Direct Share API

Shared Shortcuts API 可讓應用程式預先發布直接分享目標,而不是隨選擷取結果。這是 ShortcutManager 的運作方式。這兩個 API 相似,因此我們已擴充 ShortcutInfo API,以便更輕鬆地使用這兩項功能。只要使用 Shared Shortcuts API,就能直接將類別或使用者指派給共用目標。除非同一個應用程式進行更新或解除安裝應用程式,否則共用目標會保留在系統中。

舊版的直接分享機制仍然有效,但相較於使用 Share Shortcuts API 的應用程式,採用該機制的應用程式優先順序較低。

ShortcutInfo.Builder 會新增並強化方法,提供共用目標的額外資訊。

直接分享目標

您可以將動態捷徑發布為直接分享目標。請參閱「發布直接共用目標」。

ShortcutManagerCompat 是新的 AndroidX API,可提供與舊版 DirectShare API 的回溯相容性。這是發布共用目標的建議做法。

預覽文字

當應用程式共用文字內容時,可在 Sharesheet UI 中顯示內容的選用預覽。

請參閱新增 RTF 格式預覽

瞭解詳情

如要進一步瞭解應用程式如何分享資料,請參閱「傳送簡單資料給其他應用程式」和「從其他應用程式接收簡單的資料」。

深色主題

Android 10 提供深色主題,適用於 Android 系統 UI 和裝置上執行的應用程式。詳情請參閱「深色主題」。

前景服務類型

Android 10 導入了 foregroundServiceType XML 資訊清單屬性,您可以在定義多種特定服務的定義中加入該屬性。您可以將多個前景服務類型指派給特定服務,但這種情況很少見。

下表說明不同前景服務類型,以及在適當的情況下宣告特定類型的服務:

前景服務類型 應宣告此類型的服務用途範例
connectedDevice 監控穿戴式健身智慧手環
dataSync 從網路下載檔案
location 繼續使用者啟動的動作
mediaPlayback 播放有聲書、Podcast 或音樂
mediaProjection 錄製裝置螢幕的一小段影片。
phoneCall 處理進行中的通話

Kotlin

Android 10 包含下列 Kotlin 開發作業更新。

libcore API 的可為空值註解

Android 10 改善了 libcore API SDK 中可為空值註解的涵蓋範圍。這些註解可讓應用程式開發人員在 Android Studio 中使用 Kotlin 或 Java 是否可為空值分析,在與這些 API 互動時取得空值資訊。

一般而言,Kotlin 中的空值合約違反情況會導致編譯錯誤。為了確保與現有程式碼的相容性,只需加入 @RecentlyNullable@RecentlyNonNull 註解。也就是說,如果系統判定是否可為空值違規,就會產生警告,而非發生錯誤。

此外,在 Android 9 中新增的所有 @RecentlyNullable@RecentlyNonNull 註解也會分別變更為 @Nullable@NonNull。也就是說,在 Android 10 以上版本中,是否出現是否可為空值違規事項會導致錯誤,而非警告。

如要進一步瞭解註解變更,請參閱 Android 開發人員網誌的「Android Pie SDK 現在更加支援 Kotlin」。

NDK

Android 10 包含下列 NDK 異動。

改善檔案描述元擁有權的偵錯功能

Android 10 新增了 fdsan,協助您輕鬆找出及修正檔案描述元擁有權問題。

針對錯誤處理檔案描述元擁有權的錯誤 (通常顯示為 use-after-closedouble-close ) 類似記憶體配置 使用釋放後使用重複釋放的錯誤,但通常更難以診斷及修正檔案描述元。fdsan 會嘗試偵測及/或防止檔案描述元管理錯誤。

如要進一步瞭解與這些問題相關的當機問題,請參閱「fdsan 偵測到的錯誤」。如要進一步瞭解 fdsan,請參閱 Fdsan 的 Google 來源頁面

ELF TLS

使用 NDK 建構的應用程式搭配最低 API 級別 29 時,可使用 ELF TLS,而非 emutls。新增動態和靜態連結器支援,以支援此處理執行緒本機變數的方法。

針對針對 API 級別 28 及以下版本建構的應用程式,我們已對 libgcc/compiler-rt 實作改善措施,以解決部分 emutls 問題。

詳情請參閱「NDK 開發人員適用的 Android 變更」。

執行階段

Android 10 包含下列執行階段變更。

以 Mallinfo 為基礎的垃圾收集觸發條件

如果小型平台 Java 物件在 C++ 堆積中參照大型物件,通常只有在收集 Java 物件和完成 (例如最終) 時,才能收回 C++ 物件。在先前版本中,平台會估算與 Java 物件相關聯的許多 C++ 物件大小。這項預估結果不一定準確,有時會導致記憶體用量大幅增加,因為平台無法在適當情況下進行垃圾收集。

在 Android 10 中,垃圾收集器 (GC) 會追蹤系統 malloc() 分配的堆積總大小,確保 GC 觸發的計算作業一律納入大型 malloc() 配置。因此,應用程式透過 Java 執行交錯 C++ 配置時,可能會提高垃圾收集頻率。其他應用程式可能會稍微減少。

測試和偵錯

Android 10 包含下列改善測試和偵錯功能。

改善裝置端系統追蹤

自 Android 10 起,您可以在執行裝置端系統追蹤時指定追蹤記錄的大小和時間長度限制。如果您指定這兩個值,系統就會在記錄追蹤記錄時,定期將追蹤記錄緩衝區複製到目的地檔案。達到您指定的大小或持續時間限制時,追蹤記錄就會完成。

您可以使用這些額外參數來測試與標準追蹤記錄不同的用途。舉例來說,您可能想診斷出應用程式長時間執行後才會發生的效能錯誤。在這種情況下,您可以記錄一整天的長期追蹤記錄,然後分析報表中的 CPU 排程器、磁碟活動、應用程式執行緒和其他資料,以協助判斷錯誤原因。

在 Android 10 以上版本中,追蹤檔會以 Perfetto 這項開放原始碼專案開啟,這個開放原始碼專案可用於效能檢測和追蹤。您可以將 Perfetto 追蹤記錄檔案轉換為 Systrace 格式

TextClassifier 改善項目

Android 10 在 TextClassifier 介面中提供了額外的文字分類功能。

語言偵測

detectLanguage() 方法的運作方式與現有的分類方法類似。這會接收 TextLanguage.Request 物件,並傳回 TextLanguage 物件。

TextLanguage 物件包含序對清單。每個組合都有語言代碼以及對應的分類可信度分數。

建議的會話群組動作

suggestConversationActions() 方法的運作方式與現有分類方法類似。這會接收 ConversationActions.Request 物件並傳回 ConversationActions 物件。

ConversationActions 物件是由 ConversationAction 物件清單組成。每個 ConversationAction 物件都包含可能的建議操作及其可信度分數。

通知中的智慧回覆/動作

Android 9 引進了在通知中顯示建議回覆的功能。Android 10 進一步擴充了這項功能,並提供建議的意圖動作。此外,平台可以自動產生這些建議。應用程式仍可自行提供建議,或是停用系統產生的建議。

用來產生這些回覆的 API 屬於 TextClassifier 的一部分,也會直接在 Android 10 中向開發人員公開。詳情請參閱「TextClassifier 改善項目」一節。

如果您的應用程式有自己的建議,平台就不會產生任何自動建議。如果您不希望應用程式的通知顯示任何建議的回覆或動作,可以使用 setAllowGeneratedReplies()setAllowSystemGeneratedContextualActions(),選擇不接收系統產生的回覆和操作。