掃描系統圖片檔案和視訊檔案
阿新 • • 發佈:2019-02-10
圖片掃描
<span style="font-size:18px;">Uri imageUri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;// 外部圖片 ContentResolver contentResolver = MainActivity.this .getContentResolver(); Cursor imagecursor = contentResolver.query(imageUri, null, MediaStore.Images.Media.MIME_TYPE + "=? or " + MediaStore.Images.Media.MIME_TYPE + "=?", new String[] { "image/jpeg", "image/png" }, MediaStore.Images.Media.DATE_MODIFIED); while (imagecursor.moveToNext()) { String path = imagecursor.getString(imagecursor .getColumnIndex(MediaStore.Images.Media.DATA)); Log.i("-----Image----", path + ""); }</span>
//視訊檔案掃描
- publicstatic List<VideoInfo> sysVideoList = null;// 視訊資訊集合
- sysVideoList = new ArrayList<VideoInfo>();
- setVideoList();
- privatevoid setVideoList() {
- // MediaStore.Video.Thumbnails.DATA:視訊縮圖的檔案路徑
- String[] thumbColumns = { MediaStore.Video.Thumbnails.DATA,
-
MediaStore.Video.Thumbnails.VIDEO_ID };
- // MediaStore.Video.Media.DATA:視訊檔案路徑;
- // MediaStore.Video.Media.DISPLAY_NAME : 視訊檔名,如 testVideo.mp4
- // MediaStore.Video.Media.TITLE: 視訊標題 : testVideo
- String[] mediaColumns = { MediaStore.Video.Media._ID,
-
MediaStore.Video.Media.DATA, MediaStore.Video.Media.TITLE,
- MediaStore.Video.Media.MIME_TYPE,
- MediaStore.Video.Media.DISPLAY_NAME };
- cursor = managedQuery(MediaStore.Video.Media.EXTERNAL_CONTENT_URI,
- mediaColumns, null, null, null);
- if(cursor==null){
- Toast.makeText(SystemVideoChooseActivity.this, "沒有找到可播放視訊檔案", 1).show();
- return;
- }
- if (cursor.moveToFirst()) {
- do {
- VideoInfo info = new VideoInfo();
- int id = cursor.getInt(cursor
- .getColumnIndex(MediaStore.Video.Media._ID));
- Cursor thumbCursor = managedQuery(
- MediaStore.Video.Thumbnails.EXTERNAL_CONTENT_URI,
- thumbColumns, MediaStore.Video.Thumbnails.VIDEO_ID
- + "=" + id, null, null);
- if (thumbCursor.moveToFirst()) {
- info.setThumbPath(thumbCursor.getString(thumbCursor
- .getColumnIndex(MediaStore.Video.Thumbnails.DATA)));
- }
- info.setPath(cursor.getString(cursor
- .getColumnIndexOrThrow(MediaStore.Video.Media.DATA)));
- info.setTitle(cursor.getString(cursor
- .getColumnIndexOrThrow(MediaStore.Video.Media.TITLE)));
- info.setDisplayName(cursor.getString(cursor
- .getColumnIndexOrThrow(MediaStore.Video.Media.DISPLAY_NAME)));
- LogUtil.log(TAG, "DisplayName:"+info.getDisplayName());
- info.setMimeType(cursor
- .getString(cursor
- .getColumnIndexOrThrow(MediaStore.Video.Media.MIME_TYPE)));
- sysVideoList.add(info);
- } while (cursor.moveToNext());
- }
- }
有一點需要注意的是:系統的媒體庫並不會在我們新增視訊檔案後自動更新,我們如何去手動掃描媒體庫,或者重啟系統才能從媒體庫中得到更新的視訊檔案:
<span style="font-size:18px;">sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://"
+ Environment.getExternalStorageDirectory()))); </span>