Android中MediaStore使用樣本

來源:互聯網
上載者:User
package cn.com;import java.io.IOException;import android.app.Activity;import android.content.ContentResolver;import android.database.Cursor;import android.media.ExifInterface;import android.os.Bundle;import android.provider.MediaStore;public class MainActivity extends Activity {    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);        //測試1        //getVideosInfo();        //測試2        //getPhotosInfo();        //測試3        getAudiosInfo();    }        //擷取裝置上所有的視頻資訊private void getVideosInfo() {ContentResolver contentResolver=getContentResolver();String [] videoColumns=new String[]{MediaStore.Video.Media._ID,MediaStore.Video.Media.DATA,MediaStore.Video.Media.TITLE,MediaStore.Video.Media.MIME_TYPE};//      兩種方法均可//Cursor cursor=//    this.managedQuery(MediaStore.Video.Media.EXTERNAL_CONTENT_URI, mediaColumns, null, null, null);Cursor cursor=contentResolver.query(MediaStore.Video.Media.EXTERNAL_CONTENT_URI, videoColumns, null, null, null);while (cursor.moveToNext()) {String _id=cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Video.Media._ID));String filePath=cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Video.Media.DATA));String title=cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Video.Media.TITLE));String mime_type=cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Video.Media.MIME_TYPE));    System.out.println("_id="+_id);    System.out.println("title="+title);    System.out.println("filePath="+filePath);    System.out.println("mime_type="+mime_type);}} //擷取裝置上所有的照片資訊 private void getPhotosInfo() {ContentResolver contentResolver=getContentResolver();String [] photoColumns=new String[]{MediaStore.Images.Media._ID,MediaStore.Images.Media.DATA,MediaStore.Images.Media.TITLE,MediaStore.Images.Media.MIME_TYPE,MediaStore.Images.Media.SIZE,MediaStore.Images.Media.ORIENTATION};//      兩種方法均可//Cursor cursor=//    this.managedQuery(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, mediaColumns, null, null, null);Cursor cursor=contentResolver.query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, photoColumns, null, null, null);while (cursor.moveToNext()) {String _id=cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Images.Media._ID));String filePath=cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA));String title=cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Images.Media.TITLE));String mime_type=cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Images.Media.MIME_TYPE));String size=cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Images.Media.SIZE));//得到照片旋轉角度方法一String orientation0=cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Images.Media.ORIENTATION));    System.out.println("_id="+_id);    System.out.println("size="+size);    System.out.println("title="+title);    System.out.println("filePath="+filePath);    System.out.println("mime_type="+mime_type);    System.out.println("第一處 orientation0="+orientation0);    try {ExifInterface exifInterface=new ExifInterface(filePath);String image_length=exifInterface.getAttribute(ExifInterface.TAG_IMAGE_LENGTH);String image_width=exifInterface.getAttribute(ExifInterface.TAG_IMAGE_WIDTH);String orientation1=exifInterface.getAttribute(ExifInterface.TAG_ORIENTATION);String dateTime=exifInterface.getAttribute(ExifInterface.TAG_DATETIME);System.out.println("image_length="+image_length);System.out.println("image_width="+image_width);System.out.println("dateTime="+dateTime);//得到照片旋轉角度方法二//應該結合ExifInterface源碼分析.//此處有待於進一步分析和驗證switch (Integer.valueOf(orientation1)) {case 1:System.out.println("第二處旋轉角度="+0);break;case 2://matrix.invert(matrix);break;case 3://matrix.setRotate(180);System.out.println("第二處旋轉角度="+180);break;case 4://matrix.invert(matrix);//matrix.setRotate(180);System.out.println("第二處旋轉角度="+180);break;case 5://matrix.setRotate(90);//matrix.invert(matrix);System.out.println("第二處旋轉角度="+90);break;case 6://matrix.setRotate(90);System.out.println("第二處旋轉角度="+90);break; case 7: //matrix.invert(matrix);//matrix.setRotate(90);System.out.println("第二處旋轉角度="+90);break;    case 8://matrix.setRotate(270);System.out.println("第二處旋轉角度="+270);break;default: break;}System.out.println("XXXXXXXXXXXXXXXXXXX");} catch (IOException e) {e.printStackTrace();}}  }  //擷取裝置上所有的音頻資訊 private void getAudiosInfo() {ContentResolver contentResolver=getContentResolver();String [] audioColumns=new String[]{MediaStore.Audio.Media._ID,MediaStore.Audio.Media.DATA,MediaStore.Audio.Media.TITLE,MediaStore.Audio.Media.MIME_TYPE};//      兩種方法均可//Cursor cursor=//    this.managedQuery(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, mediaColumns, null, null, null);Cursor cursor=contentResolver.query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, audioColumns, null, null, null);while (cursor.moveToNext()) {String _id=cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media._ID));String filePath=cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.DATA));String title=cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.TITLE));String mime_type=cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.MIME_TYPE));    System.out.println("_id="+_id);    System.out.println("title="+title);    System.out.println("filePath="+filePath);    System.out.println("mime_type="+mime_type);}  }   }

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.