ActivityResultLauncher<PickVisualMediaRequest>方法无法解析,选图代码签名不存在
解决ActivityResultContracts.PickVisualMedia方法签名不存在问题(activity:1.9.2)
问题原因:在
androidx.activity:activity:1.9.2版本中,PickVisualMedia已移除无参构造函数,原代码使用无参构造会触发方法签名不存在错误。正确实现方式:
- 选取任意图片/视频
ActivityResultLauncher<PickVisualMediaRequest> pickMedia = registerForActivityResult(new ActivityResultContracts.PickVisualMedia.Builder() .setMediaType(PickVisualMedia.ImageAndVideo.INSTANCE) .build(), uri -> { if (uri != null) { // 处理选中的媒体Uri } }); // 启动媒体选择器 pickMedia.launch(new PickVisualMediaRequest.Builder().build());- 仅选取图片
ActivityResultLauncher<PickVisualMediaRequest> pickMedia = registerForActivityResult(new ActivityResultContracts.PickVisualMedia.Builder() .setMediaType(PickVisualMedia.ImageOnly.INSTANCE) .build(), uri -> { if (uri != null) { // 处理选中的图片Uri } }); // 启动图片选择器 pickMedia.launch(new PickVisualMediaRequest.Builder().build());- 简化写法(默认选取任意媒体)
ActivityResultLauncher<PickVisualMediaRequest> pickMedia = registerForActivityResult(ActivityResultContracts.PickVisualMedia.create(), uri -> { if (uri != null) { // 处理选中的媒体Uri } }); // 启动选择器 pickMedia.launch(new PickVisualMediaRequest.Builder().build());注意事项:启动选择器时必须传入
PickVisualMediaRequest实例(即使无额外配置,也要通过Builder构建),否则会导致调用失败。
内容的提问来源于stack exchange,提问作者Style-7
相关产品推荐
相关产品推荐

