Android的13需要适配的内容
Android 13即将发布,对于这个版本的发版内容,记录一下Android开发者需要做的工作内容。
通知权限的适配
上一次的通知大改动是Android 8.0,增夹的内容是App的Channel。即每个App需要申请自己的通知通道,防止通知混乱。到了2022年的时候,现在增加了一个大的版本内容修改,通知权限的申请。再Android的Manifest配置文件中,增加权限申请。
<uses-permission android:name="android.permission.POST_NOTIFICATIONS"/>
不同的是Android 13之前是系统提示授权弹窗,Android 13之后是需要申请运行时权限才行。如果用户未打开需要让用户去申请。
try {
Intent intent = new Intent();
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setAction("android.settings.APP_NOTIFICATION_SETTINGS");
intent.putExtra("app_package", applicationInfo.packageName);
intent.putExtra("android.provider.extra.APP_PACKAGE", applicationInfo.packageName);
intent.putExtra("app_uid", applicationInfo.uid);
startActivity(intent);
} catch (Throwable t) {
t.printStackTrace();
Intent intent = new Intent();
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setAction("android.settings.APPLICATION_DETAILS_SETTINGS");
intent.setData(Uri.fromParts("package", applicationInfo.packageName, null));
startActivity(intent);
}
读取媒体文件适配
读取READ_EXTERNAL_STORAGE
和 WRITE_EXTERNAL_STORAGE
权限细分为: READ_MEDIA_IMAGES
、READ_MEDIA_VIDEO
和READ_MEDIA_AUDIO
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
<uses-permission android:name="android.permission.READ_MEDIA_AUDIO" />
<uses-permission android:name="android.permission.READ_MEDIA_VIDEO" />
再Android 13上申明同时有了写权限的话就不需要申请WRITE_EXTERNAL_STORAGE
,但是当前来说,还是要都写上权限内容,只有再具体使用的时候进行细分,比如读取照片或视频的时候在进行具体的权限适配。Android再13上也提供了照片选择器来给开发者使用。
对于检测类的WiFi相关的也需要进行适配
Android 13中对于附件WiFi的权限新增了NEARBY_WIFI_DEVICES
,将WIFI权限从位置权限剥离出来。如果在Android 13之前你想通过NEARBY_WIFI_DEVICES
来使用位置信息的话要注意啦,估计会报错的。实际操作过程是两个都要申请下来才行。
增加了后台传感器权限,对于需要心率、体温和血氧的数据应用,需要申请 BODY_SENSORS
和BODY_SENSORS_BACKGROUND
权限才行。
前台服务增和App扩展启动场景有了新变化
App的intent-filter
增加了判断逻辑,在 Android 13之前,跨应用显式启动Activity和Service,只需要将android:exported 设为true就可以,即使intent-filter 中 action 或者 type不匹配的情况下,也可以正常启动。只要intent-filter匹配中了,不管发送方的targetSdk版本,intent都会的生效。
前台服务的增加了用户停止的允许的操作,即可以从下拉的通知栏中停止前台服务。长时间(在 24 小时的时间段内至少运行 20 小时)的运行前台服务会主动触发信息提示给用户。APP is running in the background for a long time. Tap to review.
这个提示的消除规则是:已经发送过前台服务相关的通知,即用户未关闭之前的提醒通知。;前台服务的类型为 FOREGROUND_SERVICE_TYPE_MEDIA_PLAYBACK 或 FOREGROUND_SERVICE_TYPE_LOCATION。
存储分区增加受限
该功能会根据应用的使用时间和频率,动态地将应用分配到五个不同优先级的存储分区,对这些存储分区的应用施加不同级别的应用资源限制;
- 活跃:应用目前正在使用中,或者最近刚刚使用过
- 工作集:应用会定期使用
- 常用:应用会经常使用,但不会每天使用
- 极少使用:应用不经常使用
- 受限:应用会消耗大量的系统资源,或表现出不良行为。(Android 11引入)受限的应用无法启动前台服务;不会触发闹钟;现有的前台服务背会移除;不会执行Jobs
对受限存储分区的应用追加了以下限制措施:应用将不收受到BOOT_COMPLETED、LOCKED_BOOT_COMPLETED广播
新增功能
剪切板管理和照片选择器
标签:13,Android13,适配,内容,应用,intent,Android,权限 From: https://www.cnblogs.com/alasola/p/16707254.html