android 沙箱内文件通过uri获取
在Android中,可以通过ContentProvider提供的URI来访问沙箱内的文件。以下是一些示例代码:
- 获取外部存储器中的图片
Uri uri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
String[] projection = { MediaStore.Images.Media.DATA };
Cursor cursor = getContentResolver().query(uri, projection, null, null, null);
if (cursor != null) {
int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
String path = cursor.getString(column_index);
cursor.close();
}
- 获取应用内部存储器中的文件
File file = new File(getFilesDir(), "test.txt");
Uri uri = FileProvider.getUriForFile(this, "com.example.fileprovider", file);
其中,"com.example.fileprovider"是FileProvider的authority属性,需要在AndroidManifest.xml中进行配置。
- 获取应用外部存储器中的文件
File file = new File(Environment.getExternalStorageDirectory(), "test.txt");
Uri uri = Uri.fromFile(file);
需要注意的是,Android 7.0及以上版本需要使用FileProvider来访问应用外部存储器中的文件,否则会抛出FileUriExposedException异常。
原文地址: https://www.cveoy.top/t/topic/vtB 著作权归作者所有。请勿转载和采集!