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

相关推荐
极光代码工作室1 分钟前
基于SpringBoot的宿舍管理系统
java·springboot·web开发·后端开发
特立独行的猫a2 分钟前
鸿蒙 PC 命令行工具迁移实战 · 直播PPT
android·华为·harmonyos·vcpkg·三方库移植·鸿蒙pc
Ting-yu5 分钟前
SpringCloud快速入门(8)---- OpenFeign(远程调用)
java·spring·spring cloud
两年半的个人练习生^_^8 分钟前
什么是内存泄漏?什么是内存溢出?
java·开发语言
曦夜日长11 分钟前
C++ STL容器string(二):删除与插入、数据查找、自定义输入
java·开发语言·c++
jimy113 分钟前
C语言中的inline function specifier(函数说明符、关键字)
c语言·开发语言
赏金术士13 分钟前
Kotlin 协程底层原理(Continuation)详解
java·开发语言·kotlin
手揽回忆怎么睡14 分钟前
springboot3使用ProGuard混淆jar
java·jar
dadaobusi31 分钟前
PCIe的ATS和PRS
java·网络·数据库
南境十里·墨染春水38 分钟前
线程池学习(二)线程池理解
java·jvm·学习