在Android 4.4(KitKat)中访问新图库之前,我使用此方法在SD卡上获得了真正的路径:
public String getPath(Uri uri) {
String[] projection = { MediaStore.Images.Media.DATA };
Cursor cursor = managedQuery(uri, projection, null, null, null);
startManagingCursor(cursor);
int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
return cursor.getString(column_index);
}
Run Code Online (Sandbox Code Playgroud)
现在,Intent.ACTION_GET_CONTENT返回不同的数据:
之前:
content://media/external/images/media/62
Run Code Online (Sandbox Code Playgroud)
现在:
content://com.android.providers.media.documents/document/image:62
Run Code Online (Sandbox Code Playgroud)
我怎么能设法获得SD卡上的真实路径?
我正试图从画廊获取图像.
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent, "Select picture"), resultCode );
Run Code Online (Sandbox Code Playgroud)
从这个活动返回后,我有一个包含Uri的数据.看起来像:
content://media/external/images/1
Run Code Online (Sandbox Code Playgroud)
如何将此路径转换为真实路径(就像' /sdcard/image.png')?
谢谢
btnimport.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent fileintent = new Intent(Intent.ACTION_GET_CONTENT);
fileintent.setType("*/*");
try {
startActivityForResult(fileintent, requestcode);
} catch (ActivityNotFoundException e) {
}
}
});`
Run Code Online (Sandbox Code Playgroud)
我正在尝试在我的Android应用程序中导入sky.csv文件.
但是,当我选择文件时,我会得到:
IO例外:打开失败:ENOENT(没有这样的文件或目录)
我将检查路径:
日志>内容://com.android.externalstorage.documents/document/38F0-D5E4%3ADCIM%2Fsky.csv我正在使用这种方法获取路径
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
if (data == null)
return;
switch (requestCode) {
case requestcode:
Uri filepath1 = data.getData();
String filepath = filepath1.toString();
Run Code Online (Sandbox Code Playgroud)
请帮我解决一下这个.我尝试了很多方法.但是,我没有得到任何适当的解决方案.