android 获取文件uri
时间: 2023-09-03 15:15:03 浏览: 172
获取文件 URI 的方法取决于文件的来源和您的应用程序的运行环境。以下是几种获取文件 URI 的常见方法:
1. 从本地存储器获取文件 URI:
```java
File file = new File(Environment.getExternalStorageDirectory(), "example.txt");
Uri uri = Uri.fromFile(file);
```
2. 从应用程序资源获取文件 URI:
```java
Uri uri = Uri.parse("android.resource://com.example.myapp/raw/example");
```
3. 从 ContentProvider 获取文件 URI:
```java
Uri uri = getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, new ContentValues());
```
上述方法仅适用于 Android 7.0 及以下版本。从 Android 7.0 开始,您需要使用 FileProvider 来安全地共享文件 URI。使用 FileProvider 可以确保您的应用程序只能访问您明确授权的文件。
以下是使用 FileProvider 获取文件 URI 的示例代码:
```xml
<provider
android:name="androidx.core.content.FileProvider"
android:authorities="com.example.myapp.fileprovider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths" />
</provider>
```
```java
File file = new File(getExternalFilesDir(Environment.DIRECTORY_PICTURES), "example.jpg");
Uri uri = FileProvider.getUriForFile(this, "com.example.myapp.fileprovider", file);
```
请注意,您需要在 AndroidManifest.xml 文件中注册 FileProvider,并在 res/xml 文件夹中创建 file_paths.xml 文件来指定要共享的文件路径。
阅读全文