作者 / Dave Burke, VP of Engineering四月已至,我们仍在不断稳步推进完善 Android 13 打造,即隐私和安全、开发者生产力,以及支持平板电脑和大屏幕设备。今天,我们进入到发布周期的下一个阶段,为大家带来 Android 13 的第一个 Beta 版。对于开发者来说,Android 13 有很多值得探索的地方,从新的通知权限和照片选择器等隐私功能,到帮助您构建良好体验的 API (如主题应用图标、将磁贴添加至快速设置和单个应用语言偏好),以及蓝牙低功耗 (LE) 音频和通过 USB 连接 MIDI 2.0 硬件等功能。在 Beta 1 中我们也带来了许多改进,比如增加了新的权限,让您可以更精细地访问媒体文件,以及改进了音频路由 API,等等。我们将在 5 月 11 日至 12 日举行的 Google I/O[1] 大会上分享更多信息,届时请务必收看!我们诚邀您来试用今天的 Beta 版本,也欢迎更多的早期体验用户参与进来,为我们提供关于这个版本的 反馈信息[2]。今天您就可以在受支持的 Pixel 设备上开始体验 Android 13 Beta 1,只需 注册参与测试[3],即可通过 OTA 方式获得更新。如果您已经安装了 Android 13 的开发者预览版,您的设备将自动通过 OTA 方式获得本次和后续版本的更新。和以往一样,我们也支持将系统映像 下载并刷入 Pixel 设备[4],以及在 Android 模拟器[5] 中使用。请访问 Android 13 开发者网站[6]了解更多开始开发和测试应用的细节。Beta 1 更新内容一览我们继续聚焦隐私和安全,同时带来了新的 API,帮助您为用户构建良好的体验。Beta 1 包含我们 之前公布[7] 的功能的最新更新,如新的通知权限、照片选择器、主题应用图标、改进的本地化和语言支持等。Beta 1 还引入了一些新功能,欢迎大家试用并和我们分享您的想法!为媒体文件访问提供更细化的权限 – 以前,当一个应用想要读取本地存储中的共享媒体文件时,它需要申请 READ_EXTERNAL_STORAGE[8] 权限,该权限允许访问所有类型的媒体文件。为了给用户带来更多的透明度和控制权,我们将引入一套新的权限,为访问共享媒体文件提供更细化的范围选择。有了新的权限之后,应用现在可以请求访问共享存储中特定类型的文件:READ_MEDIA_IMAGES[9] (适用于图像和照片)READ_MEDIA_VIDEO[10] (适用于视频)READ_MEDIA_AUDIO[11] (适用于音频文件)用户授予该权限后,应用将拥有对相应媒体文件类型的读取权限。为简化用户体验,如果应用同时请求 READ_MEDIA_IMAGES 和 READ_MEDIA_VIDEO 权限,系统会只显示一个对话框来授予这些权限。如果您的应用需要访问共享媒体文件,请在应用以 Android 13 为目标平台时迁移至这些新权限。请访问 官方文档[12] 了解详细信息。改进 Keystore 和 KeyMint 错误报告 – 针对生成密钥的应用,Keystore 和 KeyMint 现在提供更详细准确的错误指示。我们在 java.security.ProviderException[13] 下添加了一个异常类层级,其中包含了 Android 特有的异常,包括 Keystore/KeyMint 错误代码[14],以及错误是否可以重试。您也可以修改密钥生成、签名和加密的方法来抛出新的异常。改进后的错误报告可以向您提供重试密钥生成所需要的相关信息。预见性音频路由 – 为了帮助媒体应用确定其音频的路由方式,我们在 AudioManager[15] 类中增加了新的音频路由 API。新的 getAudioDevicesForAttributes()[16] API 允许您检索可能用于播放指定音频的设备列表,我们还增加了 getDirectProfilesForAttributes()[17] API 来帮助您了解音频流是否可以直接播放。您可以使用这些新的 API 来为您的音轨选用最合适的 AudioFormat[18]。应用兼容性如果您还没有测试应用与 Android 13 的兼容性,现在是时候开始测试了!随着 Android 13 进入 Beta 版本,我们已经开放早期体验用户和开发者进行体验。这意味着,在未来几周您将看到更多用户在 Android 13 上体验您的应用,并提交他们发现的问题。要进行兼容性测试,请在运行 Android 13 Beta 版的设备或模拟器上,通过 Google Play 或其他来源安装您的正式版应用,并测试应用的所有流程。请通过 行为变更[19] 清单来确定测试重点。在解决所有发现的问题后,请尽快发布更新版本。随着 Beta 版的发布,我们越来越接近 2022 年 6 月的 平台稳定性里程碑[20]。届时,面向应用的系统行为、SDK/NDK API 和非 SDK 列表将最终确定。您将可以完成最后的兼容性测试,并发布完全兼容的应用、SDK 或开发库。详见 发布时间表[21]。即刻开始体验 Android 13不论您是想体验 Android 13 的功能、测试应用还是 提交反馈[22],都可以从这次的 Beta 版开始。只需 使用受支持的 Pixel 设备注册参加测试[23],即可通过 OTA 方式获得本次和接下来的 Android 13 以及功能更新的 Beta 版本。如果您已安装过之前的开发者预览版,您将自动获得这些更新。要开始进行开发,请 设置好您的 SDK[24]。为了在更多支持的设备上进行更广泛的测试,请通过 Android GSI 映像来安装和体验 Android 13 Beta。如果您没有设备,也可以在 Android 模拟器上进行测试。只需通过 Android Studio 的 SDK 管理器下载最新的模拟器系统映像即可。请访问 Android 13 开发者网站[25] 了解获取 Beta 版的详细信息。欢迎您 点击这里[26] 向我们提交反馈,或分享您喜欢的内容、发现的问题。您的反馈对我们非常重要,感谢您的支持!参考资料[1] Google I/O: https://io.google/2022/[2] 反馈信息: https://developer.android.google.cn/about/versions/13/feedback[3] 注册参与测试: https://www.google.com/android/beta[4] 下载并刷入 Pixel 设备: https://developer.android.google.cn/about/versions/13/get#on_pixel[5] Android 模拟器: https://developer.android.google.cn/about/versions/13/get#on_emulator[6] Android 13 开发者网站: https://developer.android.google.cn/about/versions/13[7] 之前公布: https://zhuanlan.zhihu.com/p/483042298[8] READ_EXTERNAL_STORAGE: https://developer.android.google.cn/reference/android/Manifest.permission.html#READ_EXTERNAL_STORAGE[9] READ_MEDIA_IMAGES: https://developer.android.google.cn/reference/android/Manifest.permission.html#READ_MEDIA_IMAGES[10] READ_MEDIA_VIDEO: https://developer.android.google.cn/reference/android/Manifest.permission#READ_MEDIA_VIDEO[11] READ_MEDIA_AUDIO: https://developer.android.google.cn/reference/android/Manifest.permission#READ_MEDIA_AUDIO[12] 官方文档: https://developer.android.google.cn/about/versions/13/behavior-changes-13#granular-media-permissions[13] java.security.ProviderException: https://developer.android.google.cn/reference/java/security/ProviderException[14] Keystore/KeyMint 错误代码: https://developer.android.google.cn/reference/android/security/KeyStoreException[15] AudioManager: https://developer.android.google.cn/reference/android/media/AudioManager[16] getAudioDevicesForAttributes(): https://developer.android.google.cn/reference/android/media/AudioManager#getAudioDevicesForAttributes(android.media.AudioAttributes)[17] getDirectProfilesForAttributes(): https://developer.android.google.cn/reference/android/media/AudioManager#getDirectProfilesForAttributes(android.media.AudioAttributes)[18] AudioFormat: https://developer.android.google.cn/reference/android/media/AudioFormat[19] 行为变更: https://developer.android.google.cn/about/versions/13/behavior-changes-all[20] 平台稳定性里程碑: https://developer.android.google.cn/about/versions/13/overview#platform_stability[21] 发布时间表: https://developer.android.google.cn/preview/overview[22] 提交反馈: https://developer.android.google.cn/about/versions/13/feedback[23] 使用受支持的 Pixel 设备注册参加测试: https://www.google.com/android/beta[24] 设置好您的 SDK: https://developer.android.google.cn/about/versions/13/setup-sdk[25] Android 13 开发者网站: https://developer.android.google.cn/13[26] 点击这里: https://go2.gdsub.com/androiddevfb