Android-获取手机上的图片、视频、音频

来源:互联网 发布:pc预测软件 编辑:程序博客网 时间:2024/04/27 21:03

ContentResolver query 的参数:

public final Cursor query (Uri uri, String[] projection,String selection,String[] selectionArgs, String sortOrder)

Uri :

Uri uri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;//音频Uri uri = MediaStore.Video.Media.EXTERNAL_CONTENT_URI;//视频Uri uri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;//图片

projection :查询的哪些列的信息

 String[] projection = {MediaStore.Video.Media._ID,                    MediaStore.Video.Media.DISPLAY_NAME,                    MediaStore.Video.Media.DATA};

只查询jpeg和png的图片,以修改日期的升序(默认)排列。

 // 只查询jpeg和png的图片,以修改日期的升序(默认)排列。        Cursor mCursor = mContentResolver.query(        MediaStore.Images.Media.EXTERNAL_CONTENT_URI,  null,                MediaStore.Images.Media.MIME_TYPE + "=? or " + MediaStore.Images.Media.MIME_TYPE + "=?",                new String[]{"image/jpeg", "image/png"},                MediaStore.Images.Media.DATE_MODIFIED);

查询大于30秒的所有音乐:

ContentResolver contentResolver = context.getContentResolver();Cursor cursor = contentResolver.query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,null,MediaStore.Audio.Media.DURATION + ">? and "+ MediaStore.Audio.Media.DISPLAY_NAME + " like ?",MediaStore.Audio.Media.DEFAULT_SORT_ORDER);while (cursor.moveToNext()) {            // 歌曲名String title = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.TITLE));            // 歌手String singer = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.ARTIST));            // 专辑String album = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.ALBUM));            // 长度long size = cursor.getLong(cursor.getColumnIndex(MediaStore.Audio.Media.SIZE));            // 时长int duration = cursor.getInt(cursor.getColumnIndex(MediaStore.Audio.Media.DURATION));            // 路径String url = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.DATA));            // 显示的文件名String _display_name = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.DISPLAY_NAME));            // 类型String mime_type = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.MIME_TYPE));            music = new Music();            music.setAlbum(album);            music.setDuration(duration);            music.setSinger(singer);            music.setSize(size);            music.setTitle(title);            music.setUrl(url);            music.set_display_name(_display_name);            music.setMime_type(mime_type);            list.add(music);

demo如下:

java代码:

package com.example.administrator.downloadimgdemo;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import android.app.Activity;import android.database.Cursor;import android.net.Uri;import android.os.Bundle;import android.provider.MediaStore;import android.support.v7.app.AppCompatActivity;import android.view.View;import android.widget.Button;import android.widget.TextView;public class GetAllMsg extends AppCompatActivity {    Button getImage;    Button getVideo;    Button getAudio;    Button getFiles;    TextView myTextView;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_get_all);        myTextView = (TextView) this.findViewById(R.id.myTextView);        getAudio = ((Button) this.findViewById(R.id.getAudio));        getAudio.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                String[] projection = {MediaStore.Audio.Media._ID,                        MediaStore.Audio.Media.DISPLAY_NAME,                        MediaStore.Audio.Media.DATA,                        MediaStore.Audio.Media.SIZE};                String orderBy = MediaStore.Audio.Media.DISPLAY_NAME;                Uri uri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;                getContentProvider(uri, projection, orderBy);            }        });        getVideo = ((Button) this.findViewById(R.id.getVideo));        getVideo.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                String[] projection = {MediaStore.Video.Media._ID,                        MediaStore.Video.Media.DISPLAY_NAME,                        MediaStore.Video.Media.DATA};                String orderBy = MediaStore.Video.Media.DISPLAY_NAME;                Uri uri = MediaStore.Video.Media.EXTERNAL_CONTENT_URI;                getContentProvider(uri, projection, orderBy);            }        });        getImage = ((Button) this.findViewById(R.id.getImage));        getImage.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                String[] projection = {MediaStore.Images.Media._ID,                        MediaStore.Images.Media.DISPLAY_NAME,                        MediaStore.Images.Media.DATA};                String orderBy = MediaStore.Images.Media.DISPLAY_NAME;                Uri uri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;                getContentProvider(uri, projection, orderBy);            }        });        getFiles = ((Button) this.findViewById(R.id.getFiles));        getFiles.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {            }        });    }    /**     * 获取ContentProvider     *     * @param projection     * @param orderBy     */    public void getContentProvider(Uri uri, String[] projection, String orderBy) {        List<HashMap<String, String>> listImage = new ArrayList<HashMap<String, String>>();        Cursor cursor = getContentResolver().query(uri, projection, null, null, orderBy);        if (null == cursor) {            return;        }        while (cursor.moveToNext()) {            HashMap<String, String> map = new HashMap<String, String>();            for (int i = 0; i < projection.length; i++) {                map.put(projection[i], cursor.getString(i));                System.out.println(projection[i] + ":::::::" + cursor.getString(i) + "\n");            }            listImage.add(map);        }        myTextView.setText(listImage.toString());    }}

布局:

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    android:orientation="vertical">    <Button        android:id="@+id/getImage"        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:text="Get Image" />    <Button        android:id="@+id/getVideo"        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:text="Get Video" />    <Button        android:id="@+id/getAudio"        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:text="Get Audio" />    <Button        android:id="@+id/getFiles"        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:text="Get Files" />    <TextView        android:id="@+id/myTextView"        android:layout_width="fill_parent"        android:layout_height="wrap_content" /></LinearLayout>

参考:

ContentProvider之通过ContentResolver获取图像、视频、音频举例

0 0