照片选择器

照片选择器对话框中会显示设备上的媒体文件。您可选择要与应用分享的照片。
图 1. 照片选择器提供了一个直观的界面,便于与您的应用分享照片。

照片选择器的界面可供浏览,并按日期降序向用户显示其媒体库中的文件。如隐私保护最佳实践 Codelab 中所示,照片选择器为用户提供了一种安全的内置授权方式,让用户可以仅向应用授予对所选图片和视频的访问权限,而不是对整个媒体库的访问权限。

如果用户在设备上拥有符合条件的云媒体服务提供商,还可以选择远程存储的照片和视频。详细了解云媒体提供商

该工具会自动更新,让应用用户能够长期使用扩展的功能,而无需更改任何代码。

使用 Jetpack activity 协定

为了简化照片选择器的集成,请添加 1.7.0 版或更高版本的 androidx.activity 库。

您可以使用以下 activity 结果协定来启动照片选择器:

如果照片选择器在设备上不可用,该库会自动调用 ACTION_OPEN_DOCUMENT intent 操作。搭载 Android 4.4(API 级别 19)或更高版本的设备支持此 intent。您可以通过调用 isPhotoPickerAvailable() 来验证照片选择器在给定设备上是否可用。

选择单个媒体文件

如需选择单个媒体项,请使用 PickVisualMedia activity 结果协定,如以下代码段所示:

观看次数

// Registers a photo picker activity launcher in single-select mode.
val pickMedia = registerForActivityResult(PickVisualMedia()) { uri ->
    // Callback is invoked after the user selects a media item or closes the
    // photo picker.
    if (uri != null) {
        Log.d("PhotoPicker", "Selected URI: $uri")
    } else {
        Log.d("PhotoPicker",