安卓13适配-谷歌官方照片视频选择器
作者:小教学发布时间:2023-09-18分类:程序开发学习浏览:101
官方照片选择器
图1.我是照片选择器提供了一个直观的界面,便于与您的应用分享照片。
照片选择器的界面可供浏览和搜索,并按日期降序向用户显示其媒体库中的文件.如隐私保护最佳实践Codelab和中所示,照片选择器为用户提供了一种安全的内置授权方式,让用户可以仅向应用授予对所选图片和视频的访问权限,而不是对整个媒体库的访问权限。
该工具会自动更新,让应用用户能够长期使用扩展的功能,而无需更改任何代码.
使用JetPack活动协定
为了简化照片选择器的集成,请添加1.7.0版或更高版本的:androidx.活动:库。
您可以使用以下活动结果协定来启动照片选择器:
- PickVisualMedia,用于选择单张图片或单个视频。
- PickMultipleVisualMedia,用于选择多张图片或多个视频。
如果照片选择器在设备上不可用,该库会自动调用ACTION_OPEN_DOCUMENT和Intent操作。搭载安卓4.4(级别19接口)或更高版本的设备支持此Intent。您可以通过调用是来验证照片选择器在给定设备上是否可用的PhotoPickerAvailable()。
选择单个媒体项
如需选择单个媒体项,请使用:PickVisualMedia
活动结果协定,如以下代码段所示:
// Registers a photo picker activity launcher in single-select mode.
ActivityResultLauncher<PickVisualMediaRequest> pickMedia =
registerForActivityResult(new 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", "No media selected");
}
});
// Include only one of the following calls to launch(), depending on the types
// of media that you want to let the user choose from.
// Launch the photo picker and let the user choose images and videos.
pickMedia.launch(new PickVisualMediaRequest.Builder()
.setMediaType(PickVisualMedia.ImageAndVideo.INSTANCE)
.build());
// Launch the photo picker and let the user choose only images.
pickMedia.launch(new PickVisualMediaRequest.Builder()
.setMediaType(PickVisualMedia.ImageOnly.INSTANCE)
.build());
// Launch the photo picker and let the user choose only videos.
pickMedia.launch(new PickVisualMediaRequest.Builder()
.setMediaType(PickVisualMedia.VideoOnly.INSTANCE)
.build());
// Launch the photo picker and let the user choose only images/videos of a
// specific MIME type, such as GIFs.
String mimeType = "image/gif";
pickMedia.launch(new PickVisualMediaRequest.Builder()
.setMediaType(new PickVisualMedia.SingleMimeType(mimeType))
.build());
注意:使用:PickVisualMedia
我是时,照片选择器会以半屏模式打开。
选择多个媒体项
如需选择多个媒体项,请设置可选媒体文件数量上限,如以下代码段所示.
// Registers a photo picker activity launcher in multi-select mode.
// In this example, the app lets the user select up to 5 media files.
ActivityResultLauncher<PickVisualMediaRequest> pickMultipleMedia =
registerForActivityResult(new PickMultipleVisualMedia(5), uris -> {
// Callback is invoked after the user selects media items or closes the
// photo picker.
if (!uris.isEmpty()) {
Log.d("PhotoPicker", "Number of items selected: " + uris.size());
} else {
Log.d("PhotoPicker", "No media selected");
}
});
// For this example, launch the photo picker and let the user choose images
// and videos. If you want the user to select a specific type of media file,
// use the overloaded versions of launch(), as shown in the section about how
// to select a single media item.
pickMultipleMedia.launch(new PickVisualMediaRequest.Builder()
.setMediaType(PickVisualMedia.ImageAndVideo.INSTANCE)
.build());
平台会限制您可以让用户在照片选择器中选择的文件数量上限.如需访问此限制,请调用将获取PickImagesMaxLimit()。在不支持照片选择器的设备上,系统会忽略此上限.
注意:如果照片选择器不可用,且支持库调用:ACTION_OPEN_DOCUMENT
The Intent操作,则系统会忽略指定的可选媒体文件数量上限。
适用的设备
照片选择器适用于符合以下条件的设备:
- 搭载安卓11(级别30接口)或更高版本
- 谷歌:通过系统更新接收对模块化系统组件的更改
搭载安卓4.4(级别19接口)到安卓10(级别29接口)的旧款设备,以及搭载安卓11或12且支持谷歌Play服务的安卓Go设备,都可以安装向后移植的照片选择器版本。谷歌Play如需通过服务自动安装向后移植的照片选择器模块,请将以下条目添加到应用清单文件的。<application>
*标记中:
<!-- Trigger Google Play services to install the backported photo picker module. -->
<service android:name="com.google.android.gms.metadata.ModuleDependencies"
android:enabled="false"
android:exported="false"
tools:ignore="MissingClass">
<intent-filter>
<action android:name="com.google.android.gms.metadata.MODULE_DEPENDENCIES" />
</intent-filter>
<meta-data android:name="photopicker_activity:0:required" android:value="" />
</service>
保留媒体文件访问权限
默认情况下,系统会授予应用对媒体文件的访问权限,直到设备重启或应用停止运行.如果您的应用执行长时间运行的工作(例如在后台上传大型文件),您可能需要将此访问权限保留更长时间.为此,请调用:TakePersistableUriPermission():方法:
int flag = Intent.FLAG_GRANT_READ_URI_PERMISSION;
context.contentResolver.takePersistableUriPermission(uri, flag);
- 程序开发学习排行
-
- 1鸿蒙HarmonyOS:Web组件网页白屏检测
- 2HTTPS协议是安全传输,为啥还要再加密?
- 3HarmonyOS鸿蒙应用开发——数据持久化Preferences
- 4记解决MaterialButton背景颜色与设置值不同
- 5鸿蒙HarmonyOS实战-ArkUI组件(RelativeContainer)
- 6鸿蒙HarmonyOS实战-ArkUI组件(Stack)
- 7鸿蒙HarmonyOS实战-ArkUI组件(GridRow/GridCol)
- 8[Android][NDK][Cmake]一文搞懂Android项目中的Cmake
- 9鸿蒙HarmonyOS实战-ArkUI组件(mediaquery)
- 最近发表
-
- WooCommerce最好的WordPress常用插件下载博客插件模块的相关产品
- 羊驼机器人最好的WordPress常用插件下载博客插件模块
- IP信息记录器最好的WordPress常用插件下载博客插件模块
- Linkly for WooCommerce最好的WordPress常用插件下载博客插件模块
- 元素聚合器Forms最好的WordPress常用插件下载博客插件模块
- Promaker Chat 最好的WordPress通用插件下载 博客插件模块
- 自动更新发布日期最好的WordPress常用插件下载博客插件模块
- WordPress官方最好的获取回复WordPress常用插件下载博客插件模块
- Img to rss最好的wordpress常用插件下载博客插件模块
- WPMozo为Elementor最好的WordPress常用插件下载博客插件模块添加精简版