无法从Android中的uri获取文件路径M
我能够从通知栏获取uri的文件路径,但是我可以从Android Snackbar收到的uri中获取它。无法从Android中的uri获取文件路径M
用于获取路径的当前函数: 注意:这适用于棉花糖之前版本的Android版本。而从通知栏和从小吃吧是不同的访问 私人字符串extractContentUri(URI URI){
Cursor cursor = null;
try {
cursor = getContentResolver().query(uri, null, null, null, null);
Log.d("CHECK", "COUNT"+cursor.getCount());
if (cursor != null && cursor.moveToFirst()) {
Log.d("CHECK", "CURSOR !NULL");
launchedFile = cursor.getString(cursor.getColumnIndexOrThrow("_data"));
Log.d("CHECK", "=="+launchedFile);
return launchedFile;
}
} catch (IllegalArgumentException e) {
} finally {
Log.d("CHECK", "{finally} =="+launchedFile);
if (cursor != null) {
cursor.close();
cursor = null;
}
}
return null;
}
在版本的Android M得到的URI。从通知栏 URI:内容:内容://下载/ all_downloads/1449 从小吃吧URI。//下载/ my_downloads/1449
光标= getContentResolver()的查询(URI,NULL,NULL,NULL,NULL ); 这里的cursor.getCount()对于零食栏总是为0。
您需要为Android 6及以上版本添加运行时权限。运行时间权限请检查this。
如果是这样的话,那么它不应该从通知栏也工作,对吧? –
雅如果这是这种情况 –
但我能够处理它从通知栏。 也 在Android M中,访问通知栏和快餐栏时获得的URI是不同的。 来自通知栏的URI:content:// downloads/all_downloads/1449 from snackbar:from:downloads/my_downloads/1449 cursor = getContentResolver()。query(uri,null,null,null,null);这里cursor.getCount()对于快餐栏总是为0。 –
一些代码可能? :) – Alqueraf
@Alqueraf:添加代码片段 –