Java 类android.provider.MediaStore.Images.ImageColumns 实例源码

项目:easyfilemanager    文件:StorageProvider.java   
protected int queryOrientationForImage(long id, CancellationSignal signal) {
    final ContentResolver resolver = getContext().getContentResolver();

    Cursor cursor = null;
    try {
        cursor = resolver.query(Images.Media.EXTERNAL_CONTENT_URI,
                ImageOrientationQuery.PROJECTION, ImageColumns._ID + "=" + id, null, null);
        if (cursor.moveToFirst()) {
            return cursor.getInt(ImageOrientationQuery.ORIENTATION);
        } else {
            Log.w(TAG, "Missing orientation data for " + id);
            return 0;
        }
    } finally {
        IoUtils.closeQuietly(cursor);
    }
}
项目:FireFiles    文件:StorageProvider.java   
protected int queryOrientationForImage(long id, CancellationSignal signal) {
    final ContentResolver resolver = getContext().getContentResolver();

    Cursor cursor = null;
    try {
        cursor = resolver.query(Images.Media.EXTERNAL_CONTENT_URI,
                ImageOrientationQuery.PROJECTION, ImageColumns._ID + "=" + id, null, null);
        if (cursor.moveToFirst()) {
            return cursor.getInt(ImageOrientationQuery.ORIENTATION);
        } else {
            Log.w(TAG, "Missing orientation data for " + id);
            return 0;
        }
    } finally {
        IoUtils.closeQuietly(cursor);
    }
}
项目:MontageCam    文件:IOUtils.java   
/**
 * Try to return the absolute file path from the given Uri
 * 
 * @param context
 * @param uri
 * @return the file path or null
 */
public static String getRealFilePath( final Context context, final Uri uri ) {

    if ( null == uri ) return null;

    final String scheme = uri.getScheme();
    String data = null;

    if ( scheme == null )
        data = uri.getPath();
    else if ( ContentResolver.SCHEME_FILE.equals( scheme ) ) {
        data = uri.getPath();
    } else if ( ContentResolver.SCHEME_CONTENT.equals( scheme ) ) {
        Cursor cursor = context.getContentResolver().query( uri, new String[] { ImageColumns.DATA }, null, null, null );
        if ( null != cursor ) {
            if ( cursor.moveToFirst() ) {
                int index = cursor.getColumnIndex( ImageColumns.DATA );
                if ( index > -1 ) {
                    data = cursor.getString( index );
                }
            }
            cursor.close();
        }
    }
    return data;
}
项目:simple-share-android    文件:StorageProvider.java   
protected int queryOrientationForImage(long id, CancellationSignal signal) {
    final ContentResolver resolver = getContext().getContentResolver();

    Cursor cursor = null;
    try {
        cursor = resolver.query(Images.Media.EXTERNAL_CONTENT_URI,
                ImageOrientationQuery.PROJECTION, ImageColumns._ID + "=" + id, null, null);
        if (cursor.moveToFirst()) {
            return cursor.getInt(ImageOrientationQuery.ORIENTATION);
        } else {
            Log.w(TAG, "Missing orientation data for " + id);
            return 0;
        }
    } finally {
        IoUtils.closeQuietly(cursor);
    }
}
项目:android-post    文件:FileUtils.java   
/** 根据Uri获取图片文件的绝对路径 */
public static String getRealFilePath(Context context, Uri uri) {
    if (null == uri) {
        return null;
    }

    final String scheme = uri.getScheme();
    String data = null;
    if (scheme == null) {
        data = uri.getPath();
    } else if (ContentResolver.SCHEME_FILE.equals(scheme)) {
        data = uri.getPath();
    } else if (ContentResolver.SCHEME_CONTENT.equals(scheme)) {
        Cursor cursor = context.getContentResolver().query(uri, new String[] { ImageColumns.DATA }, null, null, null);
        if (null != cursor) {
            if (cursor.moveToFirst()) {
                int index = cursor.getColumnIndex(ImageColumns.DATA);
                if (index > -1) {
                    data = cursor.getString(index);
                }
            }
            cursor.close();
        }
    }
    return data;
}
项目:android-open-project-demo-master    文件:MediaStoreCursorHelper.java   
public static PhotoUpload photosCursorToSelection(Uri contentUri,
        Cursor cursor) {
    PhotoUpload item = null;

    try {
        File file = new File(cursor.getString(cursor
                .getColumnIndexOrThrow(ImageColumns.DATA)));
        if (file.exists()) {
            item = PhotoUpload
                    .getSelection(contentUri, cursor.getInt(cursor
                            .getColumnIndexOrThrow(ImageColumns._ID)));
        }
    } catch (Exception e) {
        e.printStackTrace();
    }

    return item;
}
项目:TheSceneryAlong    文件:IOUtils.java   
/**
 * Try to return the absolute file path from the given Uri
 * 
 * @param context
 * @param uri
 * @return the file path or null
 */
public static String getRealFilePath( final Context context, final Uri uri ) {

    if ( null == uri ) return null;

    final String scheme = uri.getScheme();
    String data = null;

    if ( scheme == null )
        data = uri.getPath();
    else if ( ContentResolver.SCHEME_FILE.equals( scheme ) ) {
        data = uri.getPath();
    } else if ( ContentResolver.SCHEME_CONTENT.equals( scheme ) ) {
        Cursor cursor = context.getContentResolver().query( uri, new String[] { ImageColumns.DATA }, null, null, null );
        if ( null != cursor ) {
            if ( cursor.moveToFirst() ) {
                int index = cursor.getColumnIndex( ImageColumns.DATA );
                if ( index > -1 ) {
                    data = cursor.getString( index );
                }
            }
            cursor.close();
        }
    }
    return data;
}
项目:umeng_community_android    文件:AlbumController.java   
/**
 * 获取最近使用的照片
 * 
 * @return
 */
public List<PhotoModel> getCurrent() {
    Cursor cursor = resolver.query(Media.EXTERNAL_CONTENT_URI, new String[] {
            ImageColumns.DATA,
            ImageColumns.DATE_ADDED, ImageColumns.SIZE
    }, null, null, ImageColumns.DATE_ADDED);
    if (cursor == null || !cursor.moveToNext())
        return new ArrayList<PhotoModel>();
    List<PhotoModel> photos = new ArrayList<PhotoModel>();
    cursor.moveToLast();
    do {
        if (cursor.getLong(cursor.getColumnIndex(ImageColumns.SIZE)) > 1024 * 10) {
            PhotoModel photoModel = new PhotoModel();
            photoModel.setOriginalPath(cursor.getString(cursor
                    .getColumnIndex(ImageColumns.DATA)));
            photos.add(photoModel);
        }
    } while (cursor.moveToPrevious());
    IOUtils.closeQuietly(cursor);
    return photos;
}
项目:umeng_community_android    文件:AlbumController.java   
/**
 * 获取某个相册中的所有图片
 * 
 * @param name
 * @return
 */
public List<PhotoModel> getAlbum(String name) {
    Cursor cursor = resolver.query(Media.EXTERNAL_CONTENT_URI, new String[] {
            ImageColumns.BUCKET_DISPLAY_NAME,
            ImageColumns.DATA, ImageColumns.DATE_ADDED, ImageColumns.SIZE
    }, "bucket_display_name = ?",
            new String[] {
                name
            }, ImageColumns.DATE_ADDED);
    if (cursor == null || !cursor.moveToNext())
        return new ArrayList<PhotoModel>();
    List<PhotoModel> photos = new ArrayList<PhotoModel>();
    cursor.moveToLast();
    do {
        if (cursor.getLong(cursor.getColumnIndex(ImageColumns.SIZE)) > 1024 * 10) {
            PhotoModel photoModel = new PhotoModel();
            photoModel.setOriginalPath(cursor.getString(cursor
                    .getColumnIndex(ImageColumns.DATA)));
            photos.add(photoModel);
        }
    } while (cursor.moveToPrevious());
    IOUtils.closeQuietly(cursor);
    return photos;
}
项目:AndroidGeek    文件:AlbumController.java   
/**
 * 获取最近使用的照片
 * 
 * @return
 */
public List<PhotoModel> getCurrent() {
    Cursor cursor = resolver.query(Media.EXTERNAL_CONTENT_URI, new String[] {
            ImageColumns.DATA,
            ImageColumns.DATE_ADDED, ImageColumns.SIZE
    }, null, null, ImageColumns.DATE_ADDED);
    if (cursor == null || !cursor.moveToNext())
        return new ArrayList<PhotoModel>();
    List<PhotoModel> photos = new ArrayList<PhotoModel>();
    cursor.moveToLast();
    do {
        if (cursor.getLong(cursor.getColumnIndex(ImageColumns.SIZE)) > 1024 * 10) {
            PhotoModel photoModel = new PhotoModel();
            photoModel.setOriginalPath(cursor.getString(cursor
                    .getColumnIndex(ImageColumns.DATA)));
            photos.add(photoModel);
        }
    } while (cursor.moveToPrevious());
    IOUtils.closeQuietly(cursor);
    return photos;
}
项目:AndroidGeek    文件:AlbumController.java   
/**
 * 获取某个相册中的所有图片
 * 
 * @param name
 * @return
 */
public List<PhotoModel> getAlbum(String name) {
    Cursor cursor = resolver.query(Media.EXTERNAL_CONTENT_URI, new String[] {
            ImageColumns.BUCKET_DISPLAY_NAME,
            ImageColumns.DATA, ImageColumns.DATE_ADDED, ImageColumns.SIZE
    }, "bucket_display_name = ?",
            new String[] {
                name
            }, ImageColumns.DATE_ADDED);
    if (cursor == null || !cursor.moveToNext())
        return new ArrayList<PhotoModel>();
    List<PhotoModel> photos = new ArrayList<PhotoModel>();
    cursor.moveToLast();
    do {
        if (cursor.getLong(cursor.getColumnIndex(ImageColumns.SIZE)) > 1024 * 10) {
            PhotoModel photoModel = new PhotoModel();
            photoModel.setOriginalPath(cursor.getString(cursor
                    .getColumnIndex(ImageColumns.DATA)));
            photos.add(photoModel);
        }
    } while (cursor.moveToPrevious());
    IOUtils.closeQuietly(cursor);
    return photos;
}
项目:Camera2    文件:Storage.java   
public static ContentValues getContentValuesForData(String title,
        long date, Location location, int orientation, long jpegLength,
        String path, int width, int height, String mimeType) {

    File file = new File(path);
    long dateModifiedSeconds = TimeUnit.MILLISECONDS.toSeconds(file.lastModified());

    ContentValues values = new ContentValues(11);
    values.put(ImageColumns.TITLE, title);
    values.put(ImageColumns.DISPLAY_NAME, title + JPEG_POSTFIX);
    values.put(ImageColumns.DATE_TAKEN, date);
    values.put(ImageColumns.MIME_TYPE, mimeType);
    values.put(ImageColumns.DATE_MODIFIED, dateModifiedSeconds);
    // Clockwise rotation in degrees. 0, 90, 180, or 270.
    values.put(ImageColumns.ORIENTATION, orientation);
    values.put(ImageColumns.DATA, path);
    values.put(ImageColumns.SIZE, jpegLength);

    setImageSize(values, width, height);

    if (location != null) {
        values.put(ImageColumns.LATITUDE, location.getLatitude());
        values.put(ImageColumns.LONGITUDE, location.getLongitude());
    }
    return values;
}
项目:TinyTravelTracker    文件:Util.java   
public static String getMimeTypeForMedia(ContentResolver cr, int id,
        boolean isImage) {
    Cursor cursor;

    if(isImage)
        cursor = cr.query(
                MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
                new String [] {MediaStore.Images.Media.MIME_TYPE}, ImageColumns._ID+" = ?", 
                new String [] { String.valueOf(id) }, null);
    else
        cursor = cr.query(
                MediaStore.Video.Media.EXTERNAL_CONTENT_URI,
                new String [] {MediaStore.Video.Media.MIME_TYPE}, VideoColumns._ID+" = ?", 
                new String [] { String.valueOf(id) }, null);

    try {
        if(!cursor.moveToFirst())
            return null;

        return cursor.getString(0);
    }
    finally {
        cursor.close();
    }
}
项目:TinyTravelTracker    文件:Util.java   
public static String getDataFilepathForMedia(ContentResolver cr, int id, boolean isImage)
{
    Cursor cursor;

    if(isImage)
        cursor = cr.query(
                MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
                new String [] {MediaStore.Images.Media.DATA}, ImageColumns._ID+" = ?", 
                new String [] { String.valueOf(id) }, null);
    else
        cursor = cr.query(
                MediaStore.Video.Media.EXTERNAL_CONTENT_URI,
                new String [] {MediaStore.Video.Media.DATA}, VideoColumns._ID+" = ?", 
                new String [] { String.valueOf(id) }, null);

    try {
        if(!cursor.moveToFirst())
            return null;

        return cursor.getString(0);
    }
    finally {
        cursor.close();
    }
}
项目:nexus-gallery    文件:LocalAlbum.java   
public LocalAlbum(Path path, GalleryApp application, int bucketId,
        boolean isImage, String name) {
    super(path, nextVersionNumber());
    mApplication = application;
    mResolver = application.getContentResolver();
    mBucketId = bucketId;
    mName = name;
    mIsImage = isImage;

    if (isImage) {
        mWhereClause = ImageColumns.BUCKET_ID + " = ?";
        mOrderClause = ImageColumns.DATE_TAKEN + " DESC, "
                + ImageColumns._ID + " DESC";
        mBaseUri = Images.Media.EXTERNAL_CONTENT_URI;
        mProjection = LocalImage.PROJECTION;
        mItemPath = LocalImage.ITEM_PATH;
    } else {
        mWhereClause = VideoColumns.BUCKET_ID + " = ?";
        mOrderClause = VideoColumns.DATE_TAKEN + " DESC, "
                + VideoColumns._ID + " DESC";
        mBaseUri = Video.Media.EXTERNAL_CONTENT_URI;
        mProjection = LocalVideo.PROJECTION;
        mItemPath = LocalVideo.ITEM_PATH;
    }

    mNotifier = new ChangeNotifier(this, mBaseUri, application);
}
项目:nexus-gallery    文件:SaveImage.java   
/**
 * Gets the actual filename for a Uri from Gallery's ContentProvider.
 */
private static String getTrueFilename(Context context, Uri src) {
    if (context == null || src == null) {
        return null;
    }
    final String[] trueName = new String[1];
    querySource(context, src, new String[] {
            ImageColumns.DATA
    }, new ContentResolverQueryCallback() {
        @Override
        public void onCursorResult(Cursor cursor) {
            trueName[0] = new File(cursor.getString(0)).getName();
        }
    });
    return trueName[0];
}
项目:nexus-gallery    文件:SaveImage.java   
private static ContentValues getContentValues(Context context, Uri sourceUri,
                                              File file, long time) {
    final ContentValues values = new ContentValues();

    time /= 1000;
    values.put(Images.Media.TITLE, file.getName());
    values.put(Images.Media.DISPLAY_NAME, file.getName());
    values.put(Images.Media.MIME_TYPE, "image/jpeg");
    values.put(Images.Media.DATE_TAKEN, time);
    values.put(Images.Media.DATE_MODIFIED, time);
    values.put(Images.Media.DATE_ADDED, time);
    values.put(Images.Media.ORIENTATION, 0);
    values.put(Images.Media.DATA, file.getAbsolutePath());
    values.put(Images.Media.SIZE, file.length());

    final String[] projection = new String[] {
            ImageColumns.DATE_TAKEN,
            ImageColumns.LATITUDE, ImageColumns.LONGITUDE,
    };

    SaveImage.querySource(context, sourceUri, projection,
            new ContentResolverQueryCallback() {

                @Override
                public void onCursorResult(Cursor cursor) {
                    values.put(Images.Media.DATE_TAKEN, cursor.getLong(0));

                    double latitude = cursor.getDouble(1);
                    double longitude = cursor.getDouble(2);
                    // TODO: Change || to && after the default location
                    // issue is fixed.
                    if ((latitude != 0f) || (longitude != 0f)) {
                        values.put(Images.Media.LATITUDE, latitude);
                        values.put(Images.Media.LONGITUDE, longitude);
                    }
                }
            });
    return values;
}
项目:nexus-camera    文件:SaveImage.java   
/**
 * Gets the actual filename for a Uri from Gallery's ContentProvider.
 */
private static String getTrueFilename(Context context, Uri src) {
    if (context == null || src == null) {
        return null;
    }
    final String[] trueName = new String[1];
    querySource(context, src, new String[] {
            ImageColumns.DATA
    }, new ContentResolverQueryCallback() {
        @Override
        public void onCursorResult(Cursor cursor) {
            trueName[0] = new File(cursor.getString(0)).getName();
        }
    });
    return trueName[0];
}
项目:cordova-imagePicker    文件:AlbumController.java   
/** 获取最近照片列表 */
public List<PhotoModel> getCurrent() {
    Cursor cursor = resolver.query(Media.EXTERNAL_CONTENT_URI, new String[] { ImageColumns.DATA,
            ImageColumns.DATE_ADDED, ImageColumns.SIZE }, null, null, ImageColumns.DATE_ADDED);
    if (cursor == null || !cursor.moveToNext())
        return new ArrayList<PhotoModel>();
    List<PhotoModel> photos = new ArrayList<PhotoModel>();
    cursor.moveToLast();
    do {
        if (cursor.getLong(cursor.getColumnIndex(ImageColumns.SIZE)) > 1024 * 10) {
            PhotoModel photoModel = new PhotoModel();
            photoModel.setOriginalPath(cursor.getString(cursor.getColumnIndex(ImageColumns.DATA)));
            photos.add(photoModel);
        }
    } while (cursor.moveToPrevious());
    return photos;
}
项目:cordova-imagePicker    文件:AlbumController.java   
/** 获取对应相册下的照片 */
public List<PhotoModel> getAlbum(String name) {
    Cursor cursor = resolver.query(Media.EXTERNAL_CONTENT_URI, new String[] { ImageColumns.BUCKET_DISPLAY_NAME,
            ImageColumns.DATA, ImageColumns.DATE_ADDED, ImageColumns.SIZE }, "bucket_display_name = ?",
            new String[] { name }, ImageColumns.DATE_ADDED);
    if (cursor == null || !cursor.moveToNext())
        return new ArrayList<PhotoModel>();
    List<PhotoModel> photos = new ArrayList<PhotoModel>();
    cursor.moveToLast();
    do {
        if (cursor.getLong(cursor.getColumnIndex(ImageColumns.SIZE)) > 1024 * 10) {
            PhotoModel photoModel = new PhotoModel();
            photoModel.setOriginalPath(cursor.getString(cursor.getColumnIndex(ImageColumns.DATA)));
            photos.add(photoModel);
        }
    } while (cursor.moveToPrevious());
    return photos;
}
项目:DaXiangLibrary    文件:BitmapUtils.java   
/**
 * 获取图片的存储路径;
 * 
 * @param context
 * @param uri
 * @return
 */
public static String getRealFilePath(Context context, Uri uri) {
    if (null == uri)
        return null;
    String scheme = uri.getScheme();
    String data = null;
    if (scheme == null)
        data = uri.getPath();
    else if (ContentResolver.SCHEME_FILE.equals(scheme)) {
        data = uri.getPath();
    } else if (ContentResolver.SCHEME_CONTENT.equals(scheme)) {
        Cursor cursor = context.getContentResolver().query(uri, new String[] { ImageColumns.DATA }, null, null,
                null);
        if (null != cursor) {
            if (cursor.moveToFirst()) {
                int index = cursor.getColumnIndex(ImageColumns.DATA);
                if (index > -1) {
                    data = cursor.getString(index);
                }
            }
            cursor.close();
        }
    }
    return data;
}
项目:android-screenshot-gallery    文件:PictureFragment.java   
@Override
public void onViewCreated(View view, Bundle savedInstanceState)
{
    super.onViewCreated(view, savedInstanceState);
    mPictureView = (PictureView)view.findViewById(R.id.picture);
    mPictureView.setOnTouchListener(new View.OnTouchListener()
    {
        @Override
        public boolean onTouch(View v, MotionEvent event)
        {
            return mGestureDetector.onTouchEvent(event);
        }
    });
    mPictureView.setOnAsyncCompleted(this);
    mPictureView.setImageAsync(mValues.getAsString(ImageColumns.DATA));
}
项目:silent-text-android    文件:IOUtils.java   
/**
 * Try to return the absolute file path from the given Uri
 * 
 * @param context
 * @param uri
 * @return the file path or null
 */
public static String getRealFilePath( final Context context, final Uri uri ) {

    if ( null == uri ) return null;

    final String scheme = uri.getScheme();
    String data = null;

    if ( scheme == null )
        data = uri.getPath();
    else if ( ContentResolver.SCHEME_FILE.equals( scheme ) ) {
        data = uri.getPath();
    } else if ( ContentResolver.SCHEME_CONTENT.equals( scheme ) ) {
        Cursor cursor = context.getContentResolver().query( uri, new String[] { ImageColumns.DATA }, null, null, null );
        if ( null != cursor ) {
            if ( cursor.moveToFirst() ) {
                int index = cursor.getColumnIndex( ImageColumns.DATA );
                if ( index > -1 ) {
                    data = cursor.getString( index );
                }
            }
            cursor.close();
        }
    }
    return data;
}
项目:helpstack-android    文件:IssueDetailFragment.java   
@Override
public void onActivityResult(int requestCode, int resultCode, Intent intent) {

    if(requestCode == REQUEST_CODE_PHOTO_PICKER && resultCode == Activity.RESULT_OK) {
           Uri selectedImage = Uri.parse(intent.getStringExtra("URI"));

        Cursor cursor = getActivity().getContentResolver().query(selectedImage,
                   new String[] {
                       ImageColumns.DATA,
                       ImageColumns.DISPLAY_NAME,
                       ImageColumns.MIME_TYPE
                   }, null, null, null);

           if (cursor != null) {
               cursor.moveToFirst();
           }

           String display_name = cursor.getString(cursor.getColumnIndex(ImageColumns.DISPLAY_NAME));
        String mime_type = cursor.getString(cursor.getColumnIndex(ImageColumns.MIME_TYPE));

           cursor.close();

        selectedAttachment = HSAttachment.createAttachment(selectedImage.toString(), display_name, mime_type);
        resetAttachmentImage();
       }
}
项目:android-open-project-demo    文件:MediaStoreCursorHelper.java   
public static PhotoUpload photosCursorToSelection(Uri contentUri,
        Cursor cursor) {
    PhotoUpload item = null;

    try {
        File file = new File(cursor.getString(cursor
                .getColumnIndexOrThrow(ImageColumns.DATA)));
        if (file.exists()) {
            item = PhotoUpload
                    .getSelection(contentUri, cursor.getInt(cursor
                            .getColumnIndexOrThrow(ImageColumns._ID)));
        }
    } catch (Exception e) {
        e.printStackTrace();
    }

    return item;
}
项目:ImageViewZoom    文件:IOUtils.java   
/**
 * Try to return the absolute file path from the given Uri
 * 
 * @param context
 * @param uri
 * @return the file path or null
 */
public static String getRealFilePath( final Context context, final Uri uri ) {

    if ( null == uri ) return null;

    final String scheme = uri.getScheme();
    String data = null;

    if ( scheme == null )
        data = uri.getPath();
    else if ( ContentResolver.SCHEME_FILE.equals( scheme ) ) {
        data = uri.getPath();
    } else if ( ContentResolver.SCHEME_CONTENT.equals( scheme ) ) {
        Cursor cursor = context.getContentResolver().query( uri, new String[] { ImageColumns.DATA }, null, null, null );
        if ( null != cursor ) {
            if ( cursor.moveToFirst() ) {
                int index = cursor.getColumnIndex( ImageColumns.DATA );
                if ( index > -1 ) {
                    data = cursor.getString( index );
                }
            }
            cursor.close();
        }
    }
    return data;
}
项目:AndroidLibrary-wada811    文件:MediaUtils.java   
public static void saveBitmapInMediaStore(Context context, Bitmap bitmap, String filePath, int orientation){
    File file = new File(filePath);
    long date = System.currentTimeMillis();
    ContentValues contentValues = new ContentValues();
    String mimeType = MediaUtils.getMimeType(file);
    contentValues.put(MediaColumns.MIME_TYPE, mimeType);
    contentValues.put(MediaColumns.DATA, filePath);
    contentValues.put(MediaColumns.SIZE, file.length());
    contentValues.put(MediaColumns.TITLE, file.getName());
    contentValues.put(ImageColumns.ORIENTATION, orientation);
    contentValues.put(MediaColumns.DATE_ADDED, date);
    contentValues.put(ImageColumns.DATE_TAKEN, date);
    contentValues.put(MediaColumns.DATE_MODIFIED, date);
    ContentResolver contentResolver = context.getContentResolver();
    contentResolver.insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, contentValues);
    MediaStore.Images.Media.insertImage(contentResolver, bitmap, file.getName(), null);
}
项目:fanfouapp-opensource    文件:ImageHelper.java   
/**
 * Store a picture that has just been saved to disk in the MediaStore.
 * 
 * @param imageFile
 *            The File of the picture
 * @return The Uri provided by the MediaStore.
 */
public static Uri storePicture(final Context ctx, final File imageFile,
        String imageName) {
    final ContentResolver cr = ctx.getContentResolver();
    imageName = imageName.substring(imageName.lastIndexOf('/') + 1);
    final ContentValues values = new ContentValues(7);
    values.put(MediaColumns.TITLE, imageName);
    values.put(MediaColumns.DISPLAY_NAME, imageName);
    values.put(ImageColumns.DESCRIPTION, "");
    values.put(ImageColumns.DATE_TAKEN, System.currentTimeMillis());
    values.put(MediaColumns.MIME_TYPE, "image/jpeg");
    values.put(ImageColumns.ORIENTATION, 0);
    final File parentFile = imageFile.getParentFile();
    final String path = parentFile.toString().toLowerCase();
    final String name = parentFile.getName().toLowerCase();
    values.put(Images.ImageColumns.BUCKET_ID, path.hashCode());
    values.put(Images.ImageColumns.BUCKET_DISPLAY_NAME, name);
    values.put("_data", imageFile.toString());

    final Uri uri = cr.insert(Images.Media.EXTERNAL_CONTENT_URI, values);

    return uri;
}
项目:DsaTab    文件:PhotoPicker.java   
private boolean getInformationFromMediaDatabase() {
    String[] fields = { Media.DATA, ImageColumns.ORIENTATION };
    Cursor cursor = resolver.query(uri, fields, null, null, null);

    if (cursor == null)
        return false;

    cursor.moveToFirst();
    path = cursor.getString(cursor.getColumnIndex(Media.DATA));
    int orientation = cursor.getInt(cursor.getColumnIndex(ImageColumns.ORIENTATION));
    this.orientation = new Matrix();
    this.orientation.setRotate(orientation);
    cursor.close();

    return true;
}
项目:easyfilemanager    文件:MediaDocumentsProvider.java   
@Override
public Cursor queryRecentDocuments(String rootId, String[] projection)
        throws FileNotFoundException {
    final ContentResolver resolver = getContext().getContentResolver();
    final MatrixCursor result = new MatrixCursor(resolveDocumentProjection(projection));

    final long token = Binder.clearCallingIdentity();
    Cursor cursor = null;
    try {
        if (TYPE_IMAGES_ROOT.equals(rootId)) {
            // include all unique buckets
            cursor = resolver.query(Images.Media.EXTERNAL_CONTENT_URI,
                    ImageQuery.PROJECTION, null, null, ImageColumns.DATE_MODIFIED + " DESC");
            copyNotificationUri(result, Images.Media.EXTERNAL_CONTENT_URI);
            while (cursor.moveToNext() && result.getCount() < 64) {
                includeImage(result, cursor);
            }
        } else if (TYPE_VIDEOS_ROOT.equals(rootId)) {
            // include all unique buckets
            cursor = resolver.query(Video.Media.EXTERNAL_CONTENT_URI,
                    VideoQuery.PROJECTION, null, null, VideoColumns.DATE_MODIFIED + " DESC");
            copyNotificationUri(result, Video.Media.EXTERNAL_CONTENT_URI);
            while (cursor.moveToNext() && result.getCount() < 64) {
                includeVideo(result, cursor);
            }
        } else {
            throw new UnsupportedOperationException("Unsupported root " + rootId);
        }
    } finally {
        IoUtils.closeQuietly(cursor);
        Binder.restoreCallingIdentity(token);
    }
    return result;
}
项目:easyfilemanager    文件:StorageProvider.java   
protected long getImageForPathCleared(String path) throws FileNotFoundException {
    final ContentResolver resolver = getContext().getContentResolver();
    Cursor cursor = null;
    try {
        cursor = resolver.query(Images.Media.EXTERNAL_CONTENT_URI,
                ImagesBucketThumbnailQuery.PROJECTION, ImageColumns.DATA + "= ? ",
                new String[] { path.replaceAll("'", "''") }, ImageColumns.DATE_MODIFIED + " DESC");
        if (cursor.moveToFirst()) {
            return cursor.getLong(ImagesBucketThumbnailQuery._ID);
        }
    } finally {
        IoUtils.closeQuietly(cursor);
    }
    throw new FileNotFoundException("No image found for bucket");
}
项目:easyfilemanager    文件:StorageProvider.java   
protected long getImageForBucketCleared(long bucketId) throws FileNotFoundException {
    final ContentResolver resolver = getContext().getContentResolver();
    Cursor cursor = null;
    try {
        cursor = resolver.query(Images.Media.EXTERNAL_CONTENT_URI,
                ImagesBucketThumbnailQuery.PROJECTION, ImageColumns.BUCKET_ID + "=" + bucketId,
                null, ImageColumns.DATE_MODIFIED + " DESC");
        if (cursor.moveToFirst()) {
            return cursor.getLong(ImagesBucketThumbnailQuery._ID);
        }
    } finally {
        IoUtils.closeQuietly(cursor);
    }
    throw new FileNotFoundException("No video found for bucket");
}
项目:medialibrary    文件:LocalAlbum.java   
public LocalAlbum(Path path, MediaDataContext application, int bucketId,
                  boolean isImage, String name) {
    super(path, nextVersionNumber());
    mApplication = application;
    mResolver = application.getContentResolver();
    mBucketId = bucketId;
    mName = name;
    mIsImage = isImage;

    if (isImage) {
        mWhereClause = ImageColumns.BUCKET_ID + " = ?";
        mOrderClause = ImageColumns.DATE_TAKEN + " DESC, "
                + ImageColumns._ID + " DESC";
        mBaseUri = Images.Media.EXTERNAL_CONTENT_URI;
        mProjection = LocalImage.PROJECTION;
        mItemPath = LocalImage.ITEM_PATH;
    } else {
        mWhereClause = VideoColumns.BUCKET_ID + " = ?";
        mOrderClause = VideoColumns.DATE_TAKEN + " DESC, "
                + VideoColumns._ID + " DESC";
        mBaseUri = Video.Media.EXTERNAL_CONTENT_URI;
        mProjection = LocalVideo.PROJECTION;
        mItemPath = LocalVideo.ITEM_PATH;
    }

    mNotifier = new ChangeNotifier(this, mBaseUri, application);
}
项目:FireFiles    文件:MediaDocumentsProvider.java   
@Override
public Cursor queryRecentDocuments(String rootId, String[] projection)
        throws FileNotFoundException {
    final ContentResolver resolver = getContext().getContentResolver();
    final MatrixCursor result = new MatrixCursor(resolveDocumentProjection(projection));

    final long token = Binder.clearCallingIdentity();
    Cursor cursor = null;
    try {
        if (TYPE_IMAGES_ROOT.equals(rootId)) {
            // include all unique buckets
            cursor = resolver.query(Images.Media.EXTERNAL_CONTENT_URI,
                    ImageQuery.PROJECTION, null, null, ImageColumns.DATE_MODIFIED + " DESC");
            copyNotificationUri(result, Images.Media.EXTERNAL_CONTENT_URI);
            while (cursor.moveToNext() && result.getCount() < 64) {
                includeImage(result, cursor);
            }
        } else if (TYPE_VIDEOS_ROOT.equals(rootId)) {
            // include all unique buckets
            cursor = resolver.query(Video.Media.EXTERNAL_CONTENT_URI,
                    VideoQuery.PROJECTION, null, null, VideoColumns.DATE_MODIFIED + " DESC");
            copyNotificationUri(result, Video.Media.EXTERNAL_CONTENT_URI);
            while (cursor.moveToNext() && result.getCount() < 64) {
                includeVideo(result, cursor);
            }
        } else {
            throw new UnsupportedOperationException("Unsupported root " + rootId);
        }
    } finally {
        IoUtils.closeQuietly(cursor);
        Binder.restoreCallingIdentity(token);
    }
    return result;
}
项目:FireFiles    文件:StorageProvider.java   
protected long getImageForPathCleared(String path) throws FileNotFoundException {
    final ContentResolver resolver = getContext().getContentResolver();
    Cursor cursor = null;
    try {
        cursor = resolver.query(Images.Media.EXTERNAL_CONTENT_URI,
                ImagesBucketThumbnailQuery.PROJECTION, ImageColumns.DATA + "= ? ",
                new String[] { path.replaceAll("'", "''") }, ImageColumns.DATE_MODIFIED + " DESC");
        if (cursor.moveToFirst()) {
            return cursor.getLong(ImagesBucketThumbnailQuery._ID);
        }
    } finally {
        IoUtils.closeQuietly(cursor);
    }
    throw new FileNotFoundException("No image found for bucket");
}
项目:FireFiles    文件:StorageProvider.java   
protected long getImageForBucketCleared(long bucketId) throws FileNotFoundException {
    final ContentResolver resolver = getContext().getContentResolver();
    Cursor cursor = null;
    try {
        cursor = resolver.query(Images.Media.EXTERNAL_CONTENT_URI,
                ImagesBucketThumbnailQuery.PROJECTION, ImageColumns.BUCKET_ID + "=" + bucketId,
                null, ImageColumns.DATE_MODIFIED + " DESC");
        if (cursor.moveToFirst()) {
            return cursor.getLong(ImagesBucketThumbnailQuery._ID);
        }
    } finally {
        IoUtils.closeQuietly(cursor);
    }
    throw new FileNotFoundException("No video found for bucket");
}
项目:simple-share-android    文件:MediaDocumentsProvider.java   
@Override
public Cursor queryRecentDocuments(String rootId, String[] projection)
        throws FileNotFoundException {
    final ContentResolver resolver = getContext().getContentResolver();
    final MatrixCursor result = new MatrixCursor(resolveDocumentProjection(projection));

    final long token = Binder.clearCallingIdentity();
    Cursor cursor = null;
    try {
        if (TYPE_IMAGES_ROOT.equals(rootId)) {
            // include all unique buckets
            cursor = resolver.query(Images.Media.EXTERNAL_CONTENT_URI,
                    ImageQuery.PROJECTION, null, null, ImageColumns.DATE_MODIFIED + " DESC");
            copyNotificationUri(result, Images.Media.EXTERNAL_CONTENT_URI);
            while (cursor.moveToNext() && result.getCount() < 64) {
                includeImage(result, cursor);
            }
        } else if (TYPE_VIDEOS_ROOT.equals(rootId)) {
            // include all unique buckets
            cursor = resolver.query(Video.Media.EXTERNAL_CONTENT_URI,
                    VideoQuery.PROJECTION, null, null, VideoColumns.DATE_MODIFIED + " DESC");
            copyNotificationUri(result, Video.Media.EXTERNAL_CONTENT_URI);
            while (cursor.moveToNext() && result.getCount() < 64) {
                includeVideo(result, cursor);
            }
        } else {
            throw new UnsupportedOperationException("Unsupported root " + rootId);
        }
    } finally {
        IoUtils.closeQuietly(cursor);
        Binder.restoreCallingIdentity(token);
    }
    return result;
}
项目:simple-share-android    文件:StorageProvider.java   
protected long getImageForPathCleared(String path) throws FileNotFoundException {
    final ContentResolver resolver = getContext().getContentResolver();
    Cursor cursor = null;
    try {
        cursor = resolver.query(Images.Media.EXTERNAL_CONTENT_URI,
                ImagesBucketThumbnailQuery.PROJECTION, ImageColumns.DATA + "= ? ",
                new String[] { path.replaceAll("'", "''") }, ImageColumns.DATE_MODIFIED + " DESC");
        if (cursor.moveToFirst()) {
            return cursor.getLong(ImagesBucketThumbnailQuery._ID);
        }
    } finally {
        IoUtils.closeQuietly(cursor);
    }
    throw new FileNotFoundException("No image found for bucket");
}
项目:simple-share-android    文件:StorageProvider.java   
protected long getImageForBucketCleared(long bucketId) throws FileNotFoundException {
    final ContentResolver resolver = getContext().getContentResolver();
    Cursor cursor = null;
    try {
        cursor = resolver.query(Images.Media.EXTERNAL_CONTENT_URI,
                ImagesBucketThumbnailQuery.PROJECTION, ImageColumns.BUCKET_ID + "=" + bucketId,
                null, ImageColumns.DATE_MODIFIED + " DESC");
        if (cursor.moveToFirst()) {
            return cursor.getLong(ImagesBucketThumbnailQuery._ID);
        }
    } finally {
        IoUtils.closeQuietly(cursor);
    }
    throw new FileNotFoundException("No video found for bucket");
}
项目:CameraDVR    文件:MediaSaver.java   
@Override
        protected Uri doInBackground(Void... v) {
            File file = new File(path);
            long dateModifiedSeconds = TimeUnit.MILLISECONDS.toSeconds(file.lastModified());
            long fileLength = file.length();

            ContentValues values = new ContentValues();
//          values.put(ImageColumns.TITLE, title);
//          values.put(ImageColumns.DISPLAY_NAME, title + JPEG_POSTFIX);
            values.put(ImageColumns.DATE_TAKEN, date);
            values.put(ImageColumns.MIME_TYPE, "image/jpeg");
            values.put(ImageColumns.DATE_MODIFIED, dateModifiedSeconds);
            // Clockwise rotation in degrees. 0, 90, 180, or 270.
            values.put(ImageColumns.ORIENTATION, orientation);
            values.put(ImageColumns.DATA, path);
            values.put(ImageColumns.SIZE, fileLength);
            values.put(MediaColumns.WIDTH, width);
            values.put(MediaColumns.HEIGHT, height);

            if (loc != null) {
                values.put(ImageColumns.LATITUDE, loc.getLatitude());
                values.put(ImageColumns.LONGITUDE, loc.getLongitude());
            }

            Uri uri = null;
            try {
                uri = resolver.insert(Images.Media.EXTERNAL_CONTENT_URI, values);
            } catch (Throwable th)  {
                // This can happen when the external volume is already mounted, but
                // MediaScanner has not notify MediaProvider to add that volume.
                // The picture is still safe and MediaScanner will find it and
                // insert it into MediaProvider. The only problem is that the user
                // cannot click the thumbnail to review the picture.
                Log.e(TAG, "Failed to write MediaStore" + th);
            }
            return uri;
        }