在使用 PhotoPicker 时,可能会遇到返回 NULL URI 的情况。这通常是由于权限问题或 startActivityForResult() 方法使用不正确导致的。以下是解决该问题的几种方法:
示例代码:
// AndroidManifest.xml
// 申请权限 if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) { ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, REQUEST_PERMISSION_READ_STORAGE); }
示例代码:
// 启动 PhotoPicker PhotoPicker.builder() .setPhotoCount(1) .setShowCamera(true) .setShowGif(true) .setPreviewEnabled(false) .start(this);
// 处理返回结果
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == PhotoPicker.REQUEST_CODE && resultCode == RESULT_OK) {
ArrayList
示例代码:
// AndroidManifest.xml
// xml/file_paths.xml
// 创建临时文件 File tempFile = createImageFile();
// 获取 URI Uri tempUri = FileProvider.getUriForFile(this, getPackageName() + ".provider", tempFile); intent.putExtra(MediaStore.EXTRA_OUTPUT, tempUri);
注意:需要在创建 Intent 时,设置输出的 URI。如果需要将所拍摄的照片保存到相册中,还需要通过 ContentResolver 来更新媒体库。
通过以上方法,可以解决 Android PhotoPicker 返回 NULL URI 的问题。
上一篇:AndroidPhoneStateListener.LISTEN_SIGNAL_STRENGTHS和TelephonyManager#requestCellInfoUpdate返回的信号强度不同