Android 14 适配之— BluetoothAdapter、JobScheduler、 Tiles

  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 函数时,检查用户是否已授予权限检查用户是否已授予权限检查用户是否已授予权限

  1. JobScheduler 的改动

在Android14之前,obScheduler 会预计算您的应用在几秒内从 onStartJobonStopJob 返回,如果运行时间太长,系统则会停止其运行,以失败结束。在Android 14之后的版本,若在主线程上超出了授权的时间,App会被触发 ANR,并显示"onStartJob"没有响应或"onStopJob" 没有响应之类。替代方案,使用 WorkManager 异步处理,或者将复杂耗时操作移到后台线程执行。

在Android 14上,JobScheduler 调用 setRequiredNetworkTypesetRequiredNetwork 方法,需声明 ACCESS_NETWORK_STATE 权限;若未声明, 以Android 14 或更高版本为目标的App上,会产生 ​​​​​​​SecurityException 崩溃。

  1. TileService#startActivityAndCollapse(Intent)

Android 14之后,以上方法,已废弃,调用时会抛出异常。若App从功能块启动 activity,使用TileService#startActivityAndCollapse(PendingIntent) 方法

相关推荐
独隅几秒前
PyTorch模型转换为TensorFlow Lite实现 iOS 部署的全面指南
pytorch·ios·tensorflow
下地种菜小叶2 分钟前
接口幂等怎么设计?一次讲清重复提交、支付回调、幂等键与防重落地方案
java·spring boot·spring·kafka·maven
YDS8292 分钟前
大营销平台 —— 模板方法串联前中置抽奖规则
java·spring boot·ddd
.柒宇.3 分钟前
Java八股之== 与 equals 区别
java·开发语言
时间静止不是简史3 分钟前
当MyBatis-Plus的like遇上SQL通配符:下划线翻车记
java·sql·mybatis
浪客川4 分钟前
【百例RUST - 011】简单键值对
开发语言·后端·rust
书中有颜如玉6 分钟前
Kotlin Coroutines 异步编程实战:从原理到生产级应用
android·开发语言·kotlin
两年半的个人练习生^_^7 分钟前
每日一学:设计模式之建造者模式
java·开发语言·设计模式
我登哥MVP8 分钟前
【SpringMVC笔记】 - 6 - RESTFul编程风格
java·spring boot·spring·servlet·tomcat·maven·restful
yhole12 分钟前
spring security 超详细使用教程(接入springboot、前后端分离)
java·spring boot·spring