在Android中,可以通过ContentProvider提供的URI来访问沙箱内的文件。以下是一些示例代码:

  1. 获取外部存储器中的图片
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();
}
  1. 获取应用内部存储器中的文件
File file = new File(getFilesDir(), 'test.txt');
Uri uri = FileProvider.getUriForFile(this, 'com.example.fileprovider', file);

其中,'com.example.fileprovider'是FileProvider的authority属性,需要在AndroidManifest.xml中进行配置。

  1. 获取应用外部存储器中的文件
File file = new File(Environment.getExternalStorageDirectory(), 'test.txt');
Uri uri = Uri.fromFile(file);

需要注意的是,Android 7.0及以上版本需要使用FileProvider来访问应用外部存储器中的文件,否则会抛出FileUriExposedException异常。

Android沙箱文件访问:使用URI获取文件内容

原文地址: https://www.cveoy.top/t/topic/lH5b 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录