您的位置:首页 > 移动开发 > Android开发

Android MediaStore扫描 & 向MediaStore中插入文件记录

2015-12-09 15:25 579 查看
http://www.cnblogs.com/androidwsjisji/archive/2012/10/24/2737604.html

通知MediaStore扫描某个文件:


[java] view
plaincopy

private void scanSingleFile(String filePath) {  

        if (filePath == null) {  

            return;  

        }  

// broadcast to scan file  

        boolean bmnt = Environment.getExternalStorageDirectory().getPath()  

                .startsWith("/mnt");  

        bmnt = mDownloadDestination  

                .equalsIgnoreCase(UpDownloadUtils.DOWNLOAD_DEST_SDCARD) ? bmnt  

                : false;  

        File file = new File(bmnt ? ("/mnt" + filePath) : filePath);  

  

        MediaScannerConnection.scanFile(mContext,  

                new String[] { file.toString() }, null,  

                new MediaScannerConnection.OnScanCompletedListener() {  

                    @Override  

                    public void onScanCompleted(String path, Uri uri) {  

                      

                        ContentResolver cr = mContext.getContentResolver();  

                        long datemodified = 0;  

                        long dateadded = 0;  

                        Cursor cursor = cr.query(uri, null, null, null, null);  

                        if (cursor != null && cursor.moveToFirst()) {  

                            datemodified = cursor.getLong(cursor  

                                    .getColumnIndex(MediaStore.MediaColumns.DATE_MODIFIED));  

                            dateadded = cursor.getLong(cursor  

                                    .getColumnIndex(MediaStore.MediaColumns.DATE_ADDED));  

                            cursor.close();  

                        }  

  

                        ContentValues values = new ContentValues();  

                        if (datemodified > 0  

                                && String.valueOf(datemodified).length() > 10) {  

                            values.put(MediaStore.MediaColumns.DATE_MODIFIED,  

                                    datemodified / 1000);  

                        }  

                        if (dateadded > 0  

                                && String.valueOf(dateadded).length() > 13) {  

                            values.put(MediaStore.MediaColumns.DATE_ADDED,  

                                    dateadded / 1000);  

                        }  

  

                        if (values.size() > 0) {  

                            cr.update(uri, values, null, null);  

                        }  

                    }  

                });  

    }  

向MediaStore中插入文件记录


[java] view
plaincopy

ContentValues newValues = new ContentValues(6);  

            String title = FileName.substring(0, pointIndex);  

            newValues.put(MediaStore.Images.Media.TITLE,  

                    FileName.substring(0, pointIndex));  

            newValues.put(MediaStore.Images.Media.DISPLAY_NAME,  

                    sourceFile.getName());  

            newValues.put(MediaStore.Images.Media.DATA, sourceFile.getPath());  

            newValues.put(MediaStore.Images.Media.DATE_MODIFIED,  

                    System.currentTimeMillis() / 1000);  

            newValues.put(MediaStore.Images.Media.SIZE, sourceFile.length());  

            newValues.put(MediaStore.Images.Media.MIME_TYPE, "image/jpeg");  

            uri = contentResolver.insert(  

                    MediaStore.Images.Media.EXTERNAL_CONTENT_URI, newValues);  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Android 多媒体