Android 11 在權限隐私、行為變更、非SDK接口等方面做了比較大的調整,如分區存儲,單次權限,背景位置權限限制,這些都可能導緻您的應用出現相容性問題,請開發者務必重視,盡快完成适配工作! OPPO系統相容性團隊已完成對Android 11 最新版本行為變更解讀,就其中與應用相容性相關的變更進行了詳細梳理,形成了Android11應用相容性适配指導,後續将陸續為開發者提供開發适配過程中的常見問題及解決方案,請開發者們關注, 本期重點:Android 11 中的前台服務類型 。 在Android 11,為了限制應用通過前台服務(Foreground Service)通路攝像頭和麥克風資料,有如下變更: ● 新增foregroundServiceType類型:攝像頭和麥克風 ● 僅當應用在前台啟動聲明了對應類型的前台服務時,才能通過前台服務通路資料。 1.使用場景 從 Android 9 開始,應用就受到限制,隻允許在前台通路攝像頭和麥克風。Android 11上,當你請求攝像頭、麥克風或地理位置權限時,系統權限彈框提供了三種選擇“僅在使用該應用時允許”、“僅限這一次”、“拒絕”。 當選擇了“僅在使用該應用時允許”後,應用可在目前互動狀态通路對應權限保護的敏感資料,或者通過啟動對應foregroundServiceType類型的前台服務來通路。否則,如果應用到了背景,将不再獲得對應的資料。 2.應用如何适配 為了友善應用适配,該行為變更僅對target SDK為Android 11的應用生效。 應用必須要在 Manifest 中聲明對應的foregroundServiceType: ● 在AndroidManifest中聲明
<service android:name="ExampleForegroundService" android:foregroundServiceType="microphone|camera|...">service>
并在實際用到的時候,可以通過 startForeground 再次聲明需要用到的服務類型。 ● 動态聲明
// Optional (defaults to manifest entry)Service.startForeground(int id,Notification notification, int foregroundServiceType);// foregroundServiceTypeNotification must be a subset of types specified in the manifest entry
3.總結
Android 11上新增“攝像頭”和“麥克風”的foregroundServiceType,target SDK為Android 11的應用必須适配該行為變更,否則即使使用前台服務,也無法在其中擷取到對應權限保護的敏感資料。
4.詳細參考資料
Android 11 中的前台服務類型:
https://developer.android.google.cn/preview/privacy/foreground-service-types
使用OPPO遠端真機進行Android 11相容測試
OPPO開放平台遠端真機現已上線了搭載有Android 11 開發者預覽版的測試機型——OPPO Find X2,歡迎開發者前來使用。
OPPO遠端真機官網連結:
https://open.oppomobile.com/newservice/capability?pagename=cloudmachine
An droid 11 開發者測試版适配指引