猛禽洛的程式筆記庫

Android 14 相容性調整紀錄

在Android 14版本中,進行了多項強制性的要求,如果沒有遵守,就會直接跳錯閃退。

以下記錄幾個已經遇到必須要修改的功能:

 

1.廣播接收

現在註冊廣播時,一定要加上第三個參數RECEIVER_EXPORTEDRECEIVER_NOT_EXPORTED

registerReceiver(usbReceiver, filter, RECEIVER_EXPORTED)

RECEIVER_EXPORTED: 可接收系統(全部APP)廣播

RECEIVER_NOT_EXPORTED: 只能接收APP自己發出的廣播(增加安全性,例如防止第三方APP知道廣播指令而被別人控制)

 

2.前景服務

前景服務在AndroidManifest.xml中須要標示清楚用途

<service
  android:name=".services.RxBleService"
  android:exported="false"
  android:foregroundServiceType="connectedDevice"
  android:persistent="true" />

在service中增加foregroundServiceType參數,選項請見官方文件:

例如這邊是設為connectedDevice,每種Type還要另外設相對應的權限,例如這邊的會使用到

<uses-permission android:name="android.permission.FOREGROUND_SERVICE_CONNECTED_DEVICE" />

至少必須要宣告foregroundServiceType中會用到的其中一種以上的權限才行,不然一樣會被系統判死XD

 

-其他遇到待補-

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *