Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/205.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么查询Androids MediaStore返回空游标?_Java_Android_Api_Video_Mediastore - Fatal编程技术网

Java 为什么查询Androids MediaStore返回空游标?

Java 为什么查询Androids MediaStore返回空游标?,java,android,api,video,mediastore,Java,Android,Api,Video,Mediastore,我正在使用Android的MediaStore检索我用我的应用程序录制的视频文件的持续时间/拍摄日期。它适用于旧文件,但我记录的最新文件返回空(非空)游标。我不明白为什么会发生这种情况,是MediaStore没有立即更新,还是我下面使用的代码有问题?谢谢你的帮助 Uri uri = MediaStore.Video.Media.EXTERNAL_CONTENT_URI; String selection = MediaStore.MediaColumns.DISPLAY_NAME + " LIK

我正在使用Android的MediaStore检索我用我的应用程序录制的视频文件的持续时间/拍摄日期。它适用于旧文件,但我记录的最新文件返回空(非空)游标。我不明白为什么会发生这种情况,是MediaStore没有立即更新,还是我下面使用的代码有问题?谢谢你的帮助

Uri uri = MediaStore.Video.Media.EXTERNAL_CONTENT_URI;
String selection = MediaStore.MediaColumns.DISPLAY_NAME + " LIKE '"+file.getName()+"'";
Cursor cursor = getContentResolver().query(uri, new String[]{MediaStore.Video.VideoColumns.DATE_TAKEN,MediaStore.Video.VideoColumns.DURATION}, selection, null, null);

似乎MediaScanner尚未将最新文件扫描到MediaStore。如果外部存储器中有新文件,则必须触发

sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://"
                            + Environment.getExternalStorageDirectory())));

检查并确保您的安卓设备没有干扰外部存储。如果您的手机安装为USB存储,则无法直接访问外部存储中的文件。您可以在手机连接到计算机时打开多媒体资料进行检查


我刚刚开发了一个应用程序,它必须访问手机上的所有图片,但当手机插上电源时,它无法工作。但是,如果我拔下插头,它就可以正常工作。

我也面临着同样的问题。打印stacktrace修改了问题。 请在清单中添加此权限:

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>


触发媒体扫描没有帮助。这个问题还有其他解决方案吗?有人知道这个问题的根本原因吗?你解决了这个问题吗?