0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Android 13带来了哪些新功能?需要哪些适配工作?

谷歌开发者 来源:BennuCTech 作者:BennuC 2022-11-04 10:07 次阅读

前言

目前 Google 已经发布了 Android 13 的正式版,虽然国内的手机能用上 Android 13 还有一段时间,不过开发者们可以通过模拟器来体验,那么我们来看看 Android 13 都有哪些重要的改变,我们适配的话需要做哪些工作?

新功能和 API

先来看看 Android 13 带来了哪些新的改变,这里我挑了一些对我们比较重要的来说。具体可以参考:

https://developer.android.google.cn/about/versions/13/features

带主题的应用图标

让应用图标随着主题换色。

首先应用要提供自适应图标和单色应用图标,并通过清单中的 元素指向该单色应用图标。

然后需要用户在系统设置中启用带主题的应用图标。

这样系统会根据壁纸和主题来确定色调颜色,然后该颜色将应用于单色应用图标。

剪贴板预览

从 Android 13 开始,将内容添加到剪贴板时,我们可以预览复制的内容。如下:0d9bebec-5be3-11ed-a3b6-dac502259ad0.gifAndroid 13 也加入了对剪贴板敏感内容的脱敏处理,后面会详细说。

提高了启动画面效率 Android 12 引入了 Splash Screen API,可以帮助开发者更好的开发启动页面,果不其然 Android 13 就进行了完善,包括下面两项改动:
  • 系统会直接从 AnimatedVectorDrawable 推断动画时长。在 Android 13 之前,必须直接设置 windowSplashScreenAnimationDuration

  • 使用新的 windowSplashScreenBehavior 属性可以更好地控制应用是否始终在 Android 13 及更高版本中的启动画面上显示该图标。

广播接收

在以前任何应用都可以向动态注册的接收器发送不受保护的广播,除非该接收器受签名权限的保护。Android 13 允许用户指定是否接受外部应用的广播,前提是启用了DYNAMIC_RECEIVER_EXPLICIT_EXPORT_REQUIRED 兼容性框架 (默认是关闭的)。

在注册广播的时候设置一个 Flag,如下:

context.registerReceiver(sharedBroadcastReceiver, intentFilter,
    RECEIVER_EXPORTED)


context.registerReceiver(privateBroadcastReceiver, intentFilter,
    RECEIVER_NOT_EXPORTED)

注意: 如果启用了 DYNAMIC_RECEIVER_EXPLICIT_EXPORT_REQUIRED,在注册广播的时候就必须设置 RECEIVER_EXPORTED 或 RECEIVER_NOT_EXPORTED。

照片选择器

Android 13 提供了照片选择器,这样无需向应用授予整个媒体库的访问权限。

使用照片选择器需要 1.6.0-alpha05 或更高版本的 androidx.activity 库,主要 API:
  • PickVisualMedia,用于选择单张图片或单个视频

  • PickMultipleVisualMedia,用于选择多张图片或多个视频。

示例代码如下:

val pickMedia = registerForActivityResult(PickVisualMedia()) { uri ->
    if (uri != null) {
        Log.d("PhotoPicker", "Selected URI: $uri")
    } else {
        Log.d("PhotoPicker", "No media selected")
    }
}


pickMedia.launch(PickVisualMediaRequest(PickVisualMedia.ImageAndVideo))


pickMedia.launch(PickVisualMediaRequest(PickVisualMedia.ImageOnly))


pickMedia.launch(PickVisualMediaRequest(PickVisualMedia.VideoOnly))


val mimeType = "image/gif"
pickMedia.launch(PickVisualMediaRequest(PickVisualMedia.SingleMimeType(mimeType)))
附近 WIFI 设备新权限 Android 13 之前针对 WIFI 的权限是 ACCESS_FINE_LOCATION,即使我们不想定位只想查询一下附近的 WIFI。Android 13 提供了一个新的运行时权限 NEARBY_WIFI_DEVICES 来专门针对这种情况,这个权限影响的 API 如下:
  • WifiManager

    • startLocalOnlyHotspot()

  • WifiAwareManager

    • attach()

  • WifiAwareSession

    • publish()

    • subscribe()

  • WifiP2pManager

    • addLocalService()

    • connect()

    • createGroup()

    • discoverPeers()

    • discoverServices()

    • requestDeviceInfo()

    • requestGroupInfo()

    • requestPeers()

  • WifiRttManager

    • startRanging()

使用以上 API 需要申请 NEARBY_WIFI_DEVICES 权限。

精确闹钟权限

Android 13 提供了一个新的闹钟权限 USE_EXACT_ALARM,它类似于 SCHEDULE_EXACT_ALARM 不过是自动授权的,不需要用户手动授权。

Google 对这个权限的要求是必须是闹钟、计时器或提供活动通知的日历应用才可以使用,Google Play 会对使用这个权限的应用进行审核。不过目前国内还没有限制,后续各大应用市场应该也会跟进限制。

适配 Android 13

下面来看看适配 Android 13 需要注意哪些事项。这里只列举一些比较常用的功能,全部内容可以参考:

https://developer.android.google.cn/about/versions/13/behavior-changes-all 通知的运行时权限

Android 13 (API 级别 33) 引入了运行时通知权限 POST_NOTIFICATIONS,如果应用以 Android 13 为目标平台,当需要发送通知的时候就需要动态请求该权限,否则无法发出通知。

注意:媒体相关的通知不受这个权限的影响,依然可以正常进行通知;前台服务的通知则受本权限影响。

可以通过 NotificationManager 的 areNotificationsEnabled() 来检查应用是否可以发送通知。

剪切板脱敏

上面我们提到 Android 13 提供了剪切板预览功能,但是如果复制的是敏感内容的话,可以在调用 ClipboardManager#setPrimaryClip() 之前向 ClipData 的 ClipDescription 添加一个标志,这样预览的时候就看不到敏感内容了。

代码如下:

// When your app targets API level 33 or higher
clipData.apply {
    description.extras = PersistableBundle().apply {
        putBoolean(ClipDescription.EXTRA_IS_SENSITIVE, true)
    }
}


// If your app targets a lower API level
clipData.apply {
    description.extras = PersistableBundle().apply {
        putBoolean("android.content.extra.IS_SENSITIVE", true)
    }
}

添加标志后的效果如下:

0db5c5ee-5be3-11ed-a3b6-dac502259ad0.png

附近 WIFI 设备新权限

上面提到了,针对附近 WIFI 设备提供了一个新的运行时权限 NEARBY_WIFI_DEVICES

如果应用不会使用 WIFI 相关 API 进行定位,那么可以将 android:usesPermissionFlags 属性设置为 neverForLocation:

<manifest ...>
     <uses-permission android:name="android.permission.NEARBY_WIFI_DEVICES"
                     android:usesPermissionFlags="neverForLocation" /> 
    <application ...>
        ...
    application>
manifest>

因为 NEARBY_WIFI_DEVICES 只在 Android 13 上,所以我们还要保留 ACCESS_FINE_LOCATION 以应对 Android 12 及以下设备,不过可以为其设置最高 SDK 版本,如下:

<manifest ...>
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"
                     android:maxSdkVersion="32" /> 
    <application ...>
        ...
    application>
manifest>

细化媒体权限 如果应用以 Android 13 为目标平台,那么如果要访问媒体文件时就不能像之前那样请求 READ_EXTERNAL_STORAGE 权限,Android 13 提供了更加细化的权限,必须请求以下权限来代替:

媒体类型

请求权限

图片和照片

READ_MEDIA_IMAGES
视频 READ_MEDIA_VIDEO
音频文件 READ_MEDIA_AUDIO

这样可以更加保护用户的隐私。

如果同时请求 READ_MEDIA_IMAGES 权限和 READ_MEDIA_VIDEO 权限,只会显示一个系统权限对话框。

注意: 如果您的应用只需要访问图片、照片和视频,请考虑使用照片选择器,而不是声明 READ_MEDIA_IMAGESREAD_MEDIA_VIDEO 权限。

后台使用身体传感器的新权限

如果应用以 Android 13 为目标平台,并且在后台运行时需要访问身体传感器信息,那么除了现有的 BODY_SENSORS 权限外,还需要声明新的 BODY_SENSORS_BACKGROUND 权限。

总结

以上就是 Android 13 版本中对开发者来说比较关心的新功能和适配方案,如果想了解更全面的信息,可以参考官方网站


审核编辑 :李倩


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Android
    +关注

    关注

    12

    文章

    3927

    浏览量

    127168
  • 模拟器
    +关注

    关注

    2

    文章

    872

    浏览量

    43170

原文标题:Android 13 带来了哪些新功能?需要哪些适配工作?| 开发者说·DTalk

文章出处:【微信号:Google_Developers,微信公众号:谷歌开发者】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    飞凌嵌入式RK3576核心板已适配Android 14系统

    FET3576-C核心板此前已提供了Linux 6.1.57系统,为了满足更多客户的需求,飞凌嵌入式近日又为其成功适配Android 14系统——硬件性能卓越的核心板与Android 14的深度组合,将为用户
    的头像 发表于 11-14 10:59 589次阅读
    飞凌嵌入式RK3576核心板已<b class='flag-5'>适配</b><b class='flag-5'>Android</b> 14系统

    飞凌嵌入式FET527N-C核心板现已适配Android 13

    飞凌嵌入式FET527N-C核心板与Android13系统的结合,为嵌入式设备领域带来了新的发展机遇。这一结合不仅提升了核心板的性能和兼容性,也为用户提供了更为丰富和流畅的使用体验。未来,飞凌嵌入式将继续致力于技术创新和产品研发,为千行百业提供更多高质量的解决方案。
    的头像 发表于 11-08 11:25 278次阅读
    飞凌嵌入式FET527N-C核心板现已<b class='flag-5'>适配</b><b class='flag-5'>Android</b> <b class='flag-5'>13</b>

    浅谈Xpedition 2409版本的新功能

    在《创新不止|Xpedition 2409版本新功能揭秘(上)》一文中,我们了解了Xpedition 2409版本的部分改进部分。今天,我们继续看Xpedition 2409新版本给我们带来了什么样的全新用户体验。
    的头像 发表于 10-31 15:33 418次阅读

    首批Apple Intelligence功能惊艳亮相,12月新功能值得期待

     苹果正式推出了备受瞩目的Apple Intelligence,为iPhone、iPad和Mac用户带来了一系列创新功能,且这些功能均通过免费软件更新即可获得。只要用户的设备和Siri语言设置为美国英文,便可在全球多数地区享受这
    的头像 发表于 10-29 14:11 182次阅读

    Zigbee 3.0的新功能

    电子发烧友网站提供《Zigbee 3.0的新功能.pdf》资料免费下载
    发表于 09-26 10:45 0次下载
    Zigbee 3.0的<b class='flag-5'>新功能</b>

    谷歌Android 15 Beta 3的新功能

    从近期发布的 Beta 3 开始,Android 15 达成了平台稳定性里程碑版本,这意味着开发者 API 和所有面向应用的行为都已是最终版本,您可以查阅它们并将其集成到您的应用中,并且针对
    的头像 发表于 09-09 15:55 478次阅读

    OPPO ColorOS再度领跑,首批适配Android 15

    在备受瞩目的2024年谷歌I/O开发者大会上,Android 15正式亮相。全球领先的智能手机制造商OPPO,凭借其ColorOS系统再次展现了其在软件更新和系统优化方面的卓越实力,连续六年成为首批适配Android新版本的厂商
    的头像 发表于 05-21 11:37 1060次阅读

    vivo首批适配Android 15 Beta版本操作系统

    vivo 日前宣布,其智能手机 X100 和 iQOO 12 将作为首批适配 Android 15 Beta 版本操作系统的机型,于部分国家和地区率先推出。
    的头像 发表于 05-20 14:27 1184次阅读

    谷歌在Android 15中增加存储芯片剩余寿命查检功能

    Android Authority日前揭示,Google正计划为Android 15加入一个新功能,用以协助用户了解硬件寿命,特别是内部存储(ROM)芯片。实际上,在去年底发布的Android
    的头像 发表于 04-19 16:39 773次阅读

    迅为RK3588S边缘计算开发板Android13系统功能

    迅为RK3588S边缘计算开发板Android13系统功能
    的头像 发表于 04-10 15:43 835次阅读
    迅为RK3588S边缘计算开发板<b class='flag-5'>Android13</b>系统<b class='flag-5'>功能</b>

    Testin云测国内首发Android 15开发者预览版云真机

    许多令人期待的新功能和改进。为了帮助企业快速适配新系统, Testin云测 在 国内首发 Android 15开发者预览版云真机,提供 全面、高效、便捷 的测试服务。 Android 
    的头像 发表于 02-24 09:33 870次阅读
    Testin云测国内首发<b class='flag-5'>Android</b> 15开发者预览版云真机

    SOLIDWORKS Simulation 2024的10大新功能

    SOLIDWORKS Simulation是一款强大的工程仿真软件,它能够帮助工程师们对产品进行详尽的分析,以确保产品在实际使用中的性能和可靠性。SOLIDWORKS Simulation 2024作为新版本,带来了一系列令人兴奋的新功能,进一步提升了仿真效率和精度。
    的头像 发表于 01-26 15:12 1064次阅读
    SOLIDWORKS Simulation 2024的10大<b class='flag-5'>新功能</b>

    利用SOLIDWORKS CAD 2024新功能 提高团队工作效率

    不断变化的市场需求。SOLIDWORKS CAD 2024作为新版本,引入了一系列新功能和改进,这些功能可以帮助团队更有效地完成设计工作。本文将探讨如何利用SOLIDWORKS CAD 2024的
    的头像 发表于 01-08 14:43 701次阅读
    利用SOLIDWORKS CAD 2024<b class='flag-5'>新功能</b> 提高团队<b class='flag-5'>工作</b>效率

    SOLIDWORKS 2024产品功能升级

    SOLIDWORKS 2024 新功能来了,快来体验新的用户驱动增强功能,围观一下如何助您更快速、更智能、更协同地工作
    的头像 发表于 12-26 14:42 509次阅读
    SOLIDWORKS 2024产品<b class='flag-5'>功能</b>升级

    PEAK版本升级,看看有没有你关注的新功能

    近期PEAK进行了重要的版本升级,这次升级带来了许多令人兴奋的功能优化,助力您的工作流程更加便捷高效。为了帮助用户更好地了解PEAK新版本,我们提供了详细的说明和指导,快来看看有没有你关注的
    的头像 发表于 12-14 08:04 640次阅读
    PEAK版本升级,看看有没有你关注的<b class='flag-5'>新功能</b>?