android studio Sdk31如何打开相册
时间: 2024-09-26 14:00:45 浏览: 6
在Android Studio SDK 31及以上版本中,你可以使用全新的MediaStore API以及ACTION_OPEN_DOCUMENT_PERMISSIONS权限来打开系统的相册应用并选择图片或视频。以下是步骤:
1. **添加权限**:
首先,在AndroidManifest.xml文件中添加`<uses-permission>`标签,请求READ_EXTERNAL_STORAGE权限:
```xml
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
```
2. **获取选择文件的任务**:
使用`Intent`创建一个意图,并指定ACTION_OPEN_DOCUMENT:
```java
Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
intent.addCategory(Intent.CATEGORY_OPENABLE);
intent.setType("image/*"); // 或者 "video/*" 根据需求选择媒体类型
```
3. **处理结果**:
在Activity或Fragment的`onActivityResult()`方法中,检查请求的结果:
```java
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == YOUR_REQUEST_CODE && resultCode == RESULT_OK) {
Uri selectedMedia = data.getData();
// ... 对Uri进行操作,如显示媒体内容或存储路径
}
}
private static final int YOUR_REQUEST_CODE = 100;
```
4. **启动相机或相册**:
调用`startActivityForResult()`启动选择媒体的流程:
```java
startActivityForResult(intent, YOUR_REQUEST_CODE);
```
记得在运行应用程序之前,确保用户已经授予了所需的权限,因为从API 31开始,系统不再自动授予此权限。