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) 方法

相关推荐
MediaTea2 小时前
Python 的设计哲学P08:可读性与人类语言
开发语言·python
qq_251533592 小时前
如何使用 Python 正则表达式去除空格/制表符/换行符?
开发语言·python·正则表达式
RollingPin2 小时前
React Native与Flutter的对比
android·flutter·react native·ios·js·移动端·跨平台开发
刘大浪2 小时前
Android studio 开发将gradle 从c盘迁移至自定义盘
android·ide·android studio
Azxcc02 小时前
c++ core guidelines解析--让接口易于使用
开发语言·c++
狂奔小菜鸡2 小时前
Day27 | Java集合框架之List接口详解
java·后端·java ee
a程序小傲2 小时前
美团二面:KAFKA能保证顺序读顺序写吗?
java·分布式·后端·kafka
墨笔之风2 小时前
数据库文档生成工具(PostgreSQL 适配版 - Java 8 兼容)
java·数据库·postgresql
a努力。2 小时前
网易Java面试被问:fail-safe和fail-fast
java·windows·后端·面试·架构
亭上秋和景清2 小时前
指针进阶: 回调函数
开发语言·前端·javascript