我的程序使用用户文件(照片和音乐)。要选择它们,我使用 Intent。
Intent intent;
intent = new Intent();
intent.setAction(Intent.ACTION_GET_CONTENT);
intent.setType("audio/mpeg");
startActivityForResult(Intent.createChooser(intent, "mp3"), GET_MP3);
我保存文件的路径以便进一步使用它们。我得到他们这样。
Cursor cursor = context.getContentResolver().query(contentURI, null, null, null, null);
if(cursor == null){
result = contentURI.getPath();
} else{
cursor.moveToFirst();
//int count = cursor.getCount();
for(int i = 0; i < cursor.getColumnCount(); i++){
Log.d("m1", cursor.getColumnName(i) + " - " + cursor.getString(i));
}
int idx = cursor.getColumnIndex(MediaStore.Images.ImageColumns.DATA);
if(idx > -1)
result = cursor.getString(idx);
else
Toast.makeText(context, "file not found", Toast.LENGTH_LONG);
cursor.close();
}
但在 android 10 中,我无法再获得绝对路径。将文件复制到本地程序会大大增加大小。
是否有另一种方法可以保存文件链接以供以后使用?
在 Android 10 中,您无法再直接访问设备上的文件。谷歌正在放弃这种方法。它不安全。
如果你想处理文件,那么你有几种方法: