您的位置:首页 > IT热点资讯

Android13适配如何做?每日互动(个推)为你详细解读!

发布时间:2022-09-02 15:14:31  来源:互联网     背景:

前言

8 月 16 日,谷歌宣布Android13 新系统的源代码已经上传到Android开源项目(AOSP)中,Android13 正式发布。自从 2022 年 2 月Android13 第 一个预览版上线以来,历经 7 个月的测试和优化,正式版本的Android13 终于来了!Android13 仍然聚焦个人隐私保护和安全,并提供了万物互联时代下大小屏适配、电池利用率优化等相关的技术开发能力。感兴趣的开发者可以登录官网下载源码测试学习:https://developer.android.google.cn/about/versions/13

每日互动(个推)服务开发者多年,一直密切关注和跟进行业发展趋势。Android13 正式版发布后,我们使用模拟器进行了研究和适配测试。本文将从权限变更、系统优化、功能更新等方面来谈谈Android13 新特性,以帮助开发者快速上手完成Android新系统的适配。

权限变更

一、通知权限

通知栏消息一直是App和用户沟通的有效渠道。在Android13 之前,App只需要使用NotificationManager即可向终端用户推送通知栏消息。Android13 则引入了新的运行时通知权限:POST_NOTIFICATIONS。对此,App开发者需要予以重点关注。

个推对该权限进行了测试,总结如下:

图片

1.首先看TargetSdk<33 的情况。

如下图,当App使用通知栏功能时,系统将自动弹出授权弹窗:

图片

用户点击"允许",App可正常给用户推送消息:

图片

2.再看TargetSdk ==33 的情况。

开发者需要在AndroidManifest.xml中声明POST_NOTIFICATIONS权限,还需要在使用通知栏推送功能时在代码中申请运行时权限:

极米投影仪 天花板

requestPermissions(new String[]{"android.permission.POST_NOTIFICATIONS"})

以上是用户点击"允许"App推送的情况。当然,用户也有可能点击"不允许"。值得注意的是,一旦被用户拒绝授权,下次系统将不会再出现权限申请的弹窗。

如果App仍然要推送重要消息(比如重大版本更新)给用户,则需要引导用户前往设置界面打开通知权限。代码如下:

privatevoidjumpNotificationSetting() { final ApplicationInfo applicationInfo = getApplicationInfo(); 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); }}

温馨提示:

如果App要确认用户是否已启用通知,可以调用NotificationManager.areNotificationsEnabled()进行判断。

另外,除了"允许"和"不允许"两种选择外,用户还可以划走权限申请对话框(User swipes away from dialog),即用户未选择授权(也未选择不授权)。那么下次App进行通知栏消息推送时,系统将再次弹出用户授权弹窗。

贾跃亭怎么了,乐视发生了什么

图片

Android13 的通知权限变更将使终端用户的体验得到极大改善。用户能够自主选择是否接受App推送的通知栏消息,减少被无效信息频繁打扰的情况。

个推以消息推送服务起家,也一直倡导绿色推送,强调在合适的时间、合适的地点、合适的场景把合适的内容推送给合适的人群,给终端用户更好的体验。

二、WiFi权限变更

Android13 对WiFi权限的变更也是一大重点。在万物互联的当下,不同的智能家居/智能穿戴设备多是通过WiFi互通互联,因此这些类型的App开发者更要着重关注该部分内容。

在以往版本的Android系统下,如果App要使用WiFi相关功能,需要申请ACCESS_FINE_LOCATION,即位置权限,如下图:

图片

▲图片来源于Android13 官网

为了避免App过度索权,更好地保护终端用户隐私,Android13 将WiFi权限从位置权限中分离了出来,引入了新的运行时权限:NEARBY_WIFI_DEVICES。

如果App仅需要使用WiFi相关的API,并不需要使用getScanResults()、startScan()等与位置相关的API,那么建议App开发者切换到新的NEARBY_WIFI_DEVICES权限。

新的WiFi权限运行机制:

图片

▲图片来源于Android13 官网

权限使用和适配:

开发者需要注意的是,如果你的应用(targetSdk == 33)已经声明不会根据 WiFi信息推导设备的物理位置信息,那就不再需要声明 ACCESS_FINE_LOCATION 权限。

另外,如果应用在Android13 上只使用WiFi API而不使用位置信息,那开发者可以在AndroidManifest.xml中增加NEARBY_WIFI_DEVICES权限,并将usesPermissionFlags属性设为neverForLocation,给ACCESS_FINE_LOCATION权限增加maxSdkVersion="32"的限制,代码如下:

gta5让直播吗

三、更细分的媒体权限

除了通知权限和WiFi权限的更新外,Android13 对本地数据访问权限也做了进一步细化。

Android13 将READ_EXTERNAL_STORAGE和 WRITE_EXTERNAL_STORAGE权限细分为:READ_MEDIA_IMAGES、 READ_MEDIA_VIDEO和 READ_MEDIA_AUDIO,如下图:

图片

▲图片来源于Android13 官网

个推使用android.permission.READ.MEDIA_IMAGES,对新权限进行了测试:

图片

我们发现,单独请求READ_MEDIA_IMAGES、单独请求 READ_MEDIA_VIDEO和同时请求READ_MEDIA_IMAGES& READ_MEDIA_VIDEO,系统均将只显示一个授权弹窗

另外,如果App(targetSdk == 33)已经申请了读的权限,那App同时也就有了写的权限,无需再额外声明 WRITE_EXTERNAL_STORAGE权限,代码如下:

四、精确的闹钟权限

为了节省系统资源,Android12 引入了SCHEDULE_EXACT_ALARM权限进行"闹钟和提醒"功能的授权管理。Android13 则又引入了新的闹钟权限USE_EXACT_ALARM。

和Android12 的SCHEDULE_EXACT_ALARM权限不同,如果App已经申请使用了USE_EXACT_ALARM新权限,那么用户是不能在设置页面里关闭授权的。

对于日程管理、时间管理等类型的App来讲,Android13 引入的USE_EXACT_ALARM权限能够带来一定便利。相比Android12 的SCHEDULE_EXACT_ALARM权限,使用新权限的应用将不再需要频繁打扰用户进行授权,能够更高效地为用户提供闹钟、日程提醒等服务。

不过,为了防止新权限被滥用,GooglePlay设置了严格的上架审核机制。开发者要注意,一旦使用了USE_EXACT_ALARM权限,App在上架GooglePlay时将会被平台严格审查。除非App属于闹钟、计时器、日历等类型的应用或者在已被列入到应用市场的白名单里,否则GooglePlay将不会允许使用该权限的应用上架。

随着我国对App用户个人权益保护力度的不断加大,相信后续国内的手机厂商和应用市场也将跟进建立相应的审查机制,增强对用户权益的保护。建议App开发者持续关注相关动态,及时做好适配工作。

五、后台的传感器权限

如今生物信息安全也是大众关注的焦点。为了更好地保护终端用户的个人生物信息,Android13 增加了新的后台传感器权限。

App在后台运行时,如果需要获取心率、体温、血氧饱和度等传感器信息,将不仅需要向用户申请现有的BODY_SENSORS权限,还必须声明新的BODY_SENSORS_BACKGROUND权限。

综上可以看到,Android13 对个人隐私保护的重视和加强。除了权限变更方面,Android13 还进行了系统优化、组件更新,以进一步提升系统的安全性和友好性。

系统优化

一、更安全的系统组件

IntentFilter

在之前版本的Android系统中,开发者只需将android:exported设为true就可以跨应用显式启动Activity和Service,即使intent-filter中的action或者type不匹配,也能够启动。

为避免上述漏洞,Android13 增强了intent-filter的匹配过滤逻辑。在接收方的targetSdk ==33 的情况下,如果intent-filter匹配命中,无论发送方的targetSdk版本如何,intent都将生效。

温馨提示:

以下几种情况不需要遵循intent-filter的匹配过滤逻辑:

  • 组件没有声明

  • 同一个App里的intent

  • 系统或Root进程发出的intent

BroadcastReceiver

以往的Android系统下,应用动态注册的BroadcastReceiver广播接收器会接收到任何应用发送的广播(除非该接收器使用了应用签名权限保护),这会使动态注册的广播接收器存在安全风险。

Android13 要求,应用动态注册的广播接收器必须以显著的方式指出是否允许其他应用访问,即其他应用是否可以向其发送广播。否则,在动态注册时系统将抛出安全异常(SecurityException)。

目前该增强措施并非默认生效,开发者需启用 DYNAMIC_RECEIVER_EXPLICIT_EXPORT_REQUIRED兼容性框架,并在动态注册广播时指定是否接受其他应用的广播:

context.registerReceiver(receiver, intentFilter, RECEIVER_EXPORTED)context.registerReceiver(receiver, intentFilter, RECEIVER_NOT_EXPORTED)

温馨提示:

系统广播不受RECEIVER_NOT_EXPORTED影响。

二、前台服务(FGS)任务管理器

Android13 还新增了前台服务(FGS)任务管理器功能。

如下图,用户可以在下拉的通知栏中直接关闭前台服务和应用程序:

image.png

此外,如果系统检测到应用长时间运行某项前台服务(在 24 小时的时间段内至少运行 20 小时),便会向用户发送提醒通知,通知内容如下:

APP is running in the background for a long time. Tap to review.

值得注意的是,满足以下任一条件的情况下,系统均将不会显示该通知:

  • 已经发送过前台服务相关的通知,也就是说,用户未关闭之前的提醒通知

  • 前台服务的类型为 FOREGROUND_SERVICE_TYPE_MEDIA_PLAYBACK 或 FOREGROUND_SERVICE_TYPE_LOCATION

温馨提示:

如果系统针对某应用已经显示过此通知,那至少在 30 天后系统才会再次显示该通知。另外,系统级应用、安全应用(比如具有android.app.role.EMERGENCY 角色的应用)等运行的前台服务,将不会显示在FGS任务管理器中。

三、通知权限

Android9 引入了应用待机存储分区功能,根据应用的使用时间和频率,将应用动态分配到五个不同优先级的存储分区,然后对不同存储分区的应用施加不同级别的应用资源限制。

如下,存储分区按照优先级从高到低排序,优先级越低对该分区内的App限制越多

  • 活跃:应用目前正在使用中,或者最近刚刚使用过。

  • 工作集:应用会定期使用。

  • 常用:应用会经常使用,但不会每天使用。

  • 极少使用:应用不经常使用。

  • 受限:应用会消耗大量的系统资源,或表现出不良行为(Android11 引入)。

其中"受限"状态的应用,将受到以下限制:

  • 无法启动前台服务。

  • 现有的前台服务会从前台移除。

  • 不会触发闹钟。

  • 不会执行Jobs。

在Android9 应用待机存储分区功能的基础上,Android13 对电池资源策略进行了优化,以延长设备的电池续航时间,提升终端用户的体验。

首先,Android13 新增了以下规则,符合相应规则的应用将进入到"受限"存储分区(设备处于关闭状态的时间不会计入互动限制):

  • 用户已经 8 天没有与应用互动。

  • 应用在 1 天内调用过多的广播或者绑定服务。

  • 应用在 1 天内消耗了大量的电池电量,阈值取决于设备。

其次,Android13 还对"受限"存储分区的应用增加了限制措施:

  • 应用将不收受到BOOT_COMPLETED、LOCKED_BOOT_COMPLETED广播

四、对non-SDK接口限制的更新

Android13 对一些non-SDK接口进行了限制(并针对部分限制提供了替代方案)。开发者需要明确App在升级时是否使用了受限的non-SDK接口。

Android13 中受限的non-SDK接口参考:

Landroid/app/Activity;->setDisablePreviewScreenshots(Z)V# Use setRecentsScreenshotEnabled() instead.Landroid/os/PowerManager;->isLightDeviceIdleMode()Z# Use isDeviceLightIdleMode() instead.Landroid/os/Process;->setArgV0(Ljava/lang/String;)V# In general, do not try to change the process name. If you must change the process name (for instance, for debugging), you can use pthread_setname_np() instead, though be aware that doing this might confuse the system.Landroid/view/accessibility/AccessibilityInteractionClient;->clearCache(I)V# Use android.accessibilityservice.AccessibilityService#clearCache() instead.

功能更新

用户体验的提升也一直是Android系统更新的重点。Android13 主要针对剪切板、大小屏适配、UI展示等进行了功能更新。

一、剪切板

苹果3万亿美元

首先来看剪贴板。相信大家都使用过剪贴板,它能够快速复制页面上的内容,方便我们进行内容编辑和修改。

但是一直以来,剪切板功能存在这样一个隐患,即剪切板复制的内容中可能存在敏感信息。为了更好地保障剪切板中的隐私内容(比如手机号码、邮箱、账号密码等)不被泄露,Android13 对剪切板功能进行了更新。

如下图,Android13 剪切板功能的使用分 2 步:

image.png

  • 确认内容已成功复制。

  • 提供所复制内容的预览。

此外,Android13 还提供了脱敏功能,使用户能够对剪切板中的敏感信息进行隐藏,实现了便利性和安全性兼得。

image.png

二、更好地支持平板和大屏幕

平板电脑、车载大屏、智能电视屏等的广泛应用,使用户的终端场景越来越多样化。如何给不同终端的用户始终美观和流畅的体验?Android13 对此提供了更好的支持,对大屏上的系统UI以及分屏展示等进行了更新。

如下图,在大屏幕上,Android13 支持不同的功能模块同屏展示,使得大屏幕的优势能够充分被利用。

image.png

▲Android13 系统下,用户可以将"快速设置"版块和"通知栏"版块置于同屏当中。

三、Jetpack WindowManager

另外,Android13 还支持用户在大屏幕中一次显示多个Activity,以充分利用大屏的显示空间。

开发者可通过创建XML配置文件或进行Jetpack WindowManager API调用来确定App实现多个Activity同屏显示(比如并排或堆叠)的具体方式。

image.png

▲比如,以分割任务窗口(splite task window)的形式实现单个屏幕内展示两个Activity。

四、更好的兼容性支持

对于尚未适配大屏幕的App,Android13 也提供了更加友好和稳定的兼容支持,让这些App在默认情况下也能有舒适美观的UI展示,不会影响到终端用户的体验,如下图:

image.png

▲图片来源于Android13 官网

总结

通过近两年的Android系统更新可以看到,Google不再对安卓系统进行大刀阔斧的改动,而是在用户体验、隐私保护、系统安全、组件优化等方面下足了功夫。

更多Android13 的更新要点,开发者可进入Android13 官网做进一步了解:https://developer.android.google.cn/about/versions/13

如果您还想就新系统适配以及安卓开发等内容进行更深入的交流,欢迎添加@个推技术支持,和我们联系。后续,个推还将持续关注安卓系统和行业发展动态,和开发者们一起交流移动开发技术,共建移动互联网新生态。


返回网站首页

本文评论
华为Watch GT 3系列微信手表版上线:支持语音、文字回复_华为gt手表微信提醒怎么弄
9月29日消息,今日,@华为终端 官方宣布,华为Watch GT 3系列智能手表正式上线微信手表版。用户可通过蓝牙连接,不必拿出手机,抬手就能查看微信上的语音和图文信息、语音和视频通话...
日期:09-30
埃隆·马斯克终于找到了能接替他睡在工厂里的CEO_埃隆马斯克做的事情
  作者|王仙客  北京时间2022年12月7日,品玩通过可靠信源获知消息:特斯拉CEO埃隆·马斯克(ElonMusk)已确认了接替他担任特斯拉CEO的人选:特斯拉现任全球副总裁、大中华区CEO...
日期:12-13
网友曝停电致电脑损坏:国家电网上门抱走电脑 修好送回「家电被烧坏了找国家电网」
电网停电导致台式机损坏,国家电网竟然给免费修好了,这样的经历估计不少朋友都没有遇到过。日前,有网友爆料称,其本人是在四川某三线城市,前段时间因为高温限电经常停电,一天网上他...
日期:09-01
为确保能源安全,瑞士或将禁止电动汽车使用:非必要不上路
  IT之家 12 月 5 日消息,为确保能源安全,瑞士可能成为全球首个限制使用电动汽车的国家。根据尚未通过的讨论计划,瑞士可能将禁止除“绝对必要行程”外的电动汽车使用。  ...
日期:12-12
小米摄像头模组专利公布,可实现摄像头无级变焦_小米摄像头技术
10月27日 消息:企查查APP显示,近日,北京小米移动软件有限公司申请的“摄像头模组及其控制方法、电子设备”专利公布。联想z5朱一龙定制版更新专利摘要显示,该摄像头模组包括设...
日期:10-28
TCL举行洗衣机秋季新品发布会:全能双子舱Q10剑指巅峰「tcl q100洗衣机」
分区洗衣机王 者诞生!TCL健康洗护战略新高度9 月 20 日,全球专业的家电品牌TCL举办 2022 年洗衣机秋季新品发布会,重磅发布TCL双子舱复式分区洗衣机Q10。这款好用的分区洗衣机...
日期:09-21
4月手机市场份额_2022年第三季度中国手机市场销售报告 Reno 8系列出货量持续提升
中关村在线消息:今日,知名国际数据公司IDC公布了2022年第三季度中国智能手机市场销售情况。第三季度国内市场出货量约7,113万台,同比下降11.9%,不过三季度国内智能手机市场实现...
日期:10-30
抛弃WiFi 6!一大波Wi-Fi 7产品集中来了:Intel就绪 这网速太给力「wifi 6 设备」
对于Intel来说,其仍然是世界上最大的计算机WiFi模块制造商。据韩媒最新消息称,Intel旗下第一批WiFi 7产品将于2024年推出,大约在第一批WiFi 7路由器和网关预计上市后一年。报道...
日期:08-05
从造电车到机器人:马斯克要让特斯拉转型AI巨头「特斯拉人工智能机器人」
  这是一场以招聘AI人才为目的的发布会。特斯拉用最硬核的发布会方式,展示了自己全面转型AI巨头的雄心。特斯拉不仅要做自动驾驶的电车,还要打造真正普及的人形机器人,并且开...
日期:10-04
东南亚网约车巨头Grab:预计2024年实现盈利
  讯 北京时间9月28日早间消息,据报道,东南亚网约车和快递服务巨头Grab估值为108亿美元。该公司表示,尽管在经济衰退担忧加剧和通胀上升的背景下,增长放缓,但到2024年,这家已有1...
日期:09-28
如何抢购华为mate40_凭实力硬刚iPhone 14 华为Mate 50系列400万台备货全部预定完
华为抢先苹果在9月6日发布了期待已久的Mate 50系列旗舰手机,虽然不支持5G网络,但这并没有影响大家的购买热情。据爆料,华为首期备货的400万台已经基本预定完毕。第二批备货将在...
日期:09-21
打造健康环保新厨房,首选美大变频集成灶_美大集成灶节能吗
现代人的厨房摆满了各种功能的小厨电,但是人们居住的房屋厨房的面积又是有限的,导致大部分人的厨房都是非常杂乱的,活动空间比较小。不仅如此,再加上传统烟机的排烟效果不是很理...
日期:09-02
起身或者蹲下时,膝盖会“咔咔”响?出现这些症状一定要重视_蹲下后起来膝盖咔咔响
起身或者蹲下时,膝盖会“咔咔”响?出现这些症状一定要重视日常生活中相信很多人都有过这样的经历有时起身或者蹲下的时候会听到膝盖“咔”的一声很多人觉得这没什么大不了的但...
日期:07-22
茶颜悦色,为何总在“性”上翻车?_茶颜悦色为啥这么厉害
  文 | 张俊  继今年8月的排队风波后,茶颜悦色在南京又因为 "SexyTea" 的英文名站在了风口浪尖。  有南京市民表示,茶颜悦色门店 "SexyTea" 的英文招牌十分不妥,这样的英...
日期:09-18
焕新色 享新音!舒尔推出新版SE846+SE215隔音耳机,活力听音,尽享精彩
(原标题:焕新色 享新音!舒尔推出新版SE846+SE215隔音耳机,活力听音,尽享精彩) SHURE舒尔的听音体验,可不止是无损音质和超强隔音,耳...
日期:09-16
iPhone 14涨价15% 原因是安卓旗舰也在涨价「iphone11过年会涨价还是降价」
关于iPhone 14涨价的消息已经不止一次传出,而离谱的是,涨价消息一直是起起伏伏,最早的消息是计划涨价15%,而随后苹果认为经济环境不好,对涨价后的销量没信心,选择放弃涨价,而最新的...
日期:08-18
余承东发话了:华为Mate 50紧急补货 让大家能原价买_余承东华为mate40发布会
在本周,华为Mate 50系列正式开始销售,但离谱的是,开售的当天仅仅几分钟,首批大约400万台全系华为Mate 50就已经被抢购一空,最终官方数据表示,3款型号最终在首销不到10秒钟就全部售...
日期:09-26
apple car 中国_Apple Car电动汽车尚未发布 就有26%的消费者考虑购买
  讯 北京时间9月2日晚间消息,据报道,咨询服务公司Strategic Vision最新公布的一项调查报告显示,尽管苹果公司尚未发布传闻中的Apple Car电动汽车,但已经有26%的消费者考虑购...
日期:09-04
ios无法编辑视频_iOS 16又出新Bug:电影模式视频不支持苹果自家编辑器
虽然已经推出两周左右,并且上线了数个更新补丁,但iOS 16却依旧存在一些Bug。今天,有用户在苹果论坛和Reddit上反馈,称iOS 16的一个Bug会影响在电影模式下录制的视频,导致其无法在...
日期:09-28
5000万IMX989主摄!vivo新旗舰X90 Pro+四摄规格曝光:长焦拉满
联发科天玑9200旗舰芯片于本月8日正式发布,vivo随后就官宣将会首发这颗旗舰芯,预计首款天玑9200手机是vivo X90系列。苹果蝶式键盘维修据数码博主WHYLAB”称,这次vivo X90Pro+...
日期:11-11