在Android 14版本中,進行了多項強制性的要求,如果沒有遵守,就會直接跳錯閃退。
以下記錄幾個已經遇到必須要修改的功能:
1.廣播接收
現在註冊廣播時,一定要加上第三個參數RECEIVER_EXPORTED
或RECEIVER_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
-其他遇到待補-
發佈留言