1. BluetoothAdapter 改动:
在 BluetoothAdapter 中必须加入 BLUETOOTH_CONNECT 权限
Android 14(API 级别 34)或更高版本为目标的App,在调用函数 BluetoothAdapter
getProfileConnectionState() 时,需要 BLUETOOTH_CONNECT
权限,
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
在 AndroidManifest.xml
文件中声明 BLUETOOTH_CONNECT
,并在调用 getProfileConnectionState
函数时,检查用户是否已授予权限检查用户是否已授予权限检查用户是否已授予权限。
2. JobScheduler 的改动
在Android14之前,obScheduler 会预计算您的应用在几秒内从 onStartJob 或 onStopJob 返回,如果运行时间太长,系统则会停止其运行,以失败结束。在Android 14之后的版本,若在主线程上超出了授权的时间,App会被触发 ANR,并显示"onStartJob
"没有响应或"onStopJob
" 没有响应之类。替代方案,使用 WorkManager 异步处理,或者将复杂耗时操作移到后台线程执行。
在Android 14上,JobScheduler
调用 setRequiredNetworkType 或 setRequiredNetwork 方法,需声明 ACCESS_NETWORK_STATE 权限;若未声明, 以Android 14 或更高版本为目标的App上,会产生 SecurityException 崩溃。
3. TileService#startActivityAndCollapse(Intent)
Android 14之后,以上方法,已废弃,调用时会抛出异常。若App从功能块启动 activity,使用TileService#startActivityAndCollapse(PendingIntent) 方法