Кажется, проблема в Nougat (7.1.1) nexus (проверено!)
Обходной путь
из вашего кода вызова getFilePathFromUri (this, uri)
public static String getFilePathFromUri(Context context, Uri _uri) {
String filePath = "";
if (_uri != null && "content".equals(_uri.getScheme())) {
//Cursor cursor = context.getContentResolver().query(contentURI, null, null, null, null);
//context.revokeUriPermission(_uri, Intent.FLAG_GRANT_WRITE_URI_PERMISSION | Intent.FLAG_GRANT_READ_URI_PERMISSION);
Cursor cursor = null;
try {
cursor = context.getContentResolver().query(_uri,
new String[]
{
MediaStore.Images.ImageColumns.DATA,
MediaStore.Images.Media.DATA,
MediaStore.Images.Media.MIME_TYPE,
MediaStore.Video.VideoColumns.DATA,
}, null, null, null);
cursor.moveToFirst();
filePath = cursor.getString(0);
} catch (SecurityException e) {
//if file open with third party application
if (_uri.toString().contains("/storage/emulated/0")) {
filePath = "/storage/emulated/0" + _uri.toString().split("/storage/emulated/0")[1];
}
} finally {
if (cursor != null)
cursor.close();
}
} else {
filePath = _uri.getPath();
}
return filePath;
}