活动定义为:
<activity android:name="com.tralev.android.UploadFromCameraAppActivity" android:exported="true">
<intent-filter>
<action android:name="android.intent.action.SEND" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="image/*" />
</intent-filter>
</activity>
UploadFromCameraAppActivity 正在尝试获取 URI:
Uri uri = (Uri) extras.getParcelable(Intent.EXTRA_STREAM);
String filename = uri.getPath();
但是当试图打开该文件名时,我得到了异常:
03-12 23:10:30.787:W/System.err(9840):java.io.FileNotFoundException:/external/images/media/2437:打开失败:ENOENT(没有这样的文件或目录)
注意:这发生在我用来测试的 Nexus 7 上。
已解决:此问题已解决
public String getRealPathFromURI(Uri contentUri) {
String[] proj = { MediaStore.Images.Media.DATA };
Cursor cursor = getContentResolver().query(contentUri, proj, null, null, null);
int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
return cursor.getString(column_index);
}