Android--通过ContentResolver取得com.android.providers.media下的media信息
来源:互联网 发布:电子签名软件 编辑:程序博客网 时间:2024/05/16 08:31
java文件:
package cn.mrzhu.media;import android.app.Activity;import android.content.ContentResolver;import android.content.Intent;import android.database.Cursor;import android.net.Uri;import android.os.Bundle;import android.os.Environment;import android.provider.MediaStore;import android.util.Log;import android.view.View;/** * 通过ContentResolver取得com.android.providers.media下的media信息 * @author ZLQ * */public class TestMedia extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.media);}/** * show按钮,点击按钮打印输出文件的标题,演唱者和专辑 * @param v */public void show(View v) {//指定到com.android.providers.media下的external_XXXdb,即存储卡数据库Uri uri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;//audio_meta表的里_id,即文件的idString _ID = MediaStore.Audio.Media._ID;//audio_meta表的里title,即文件的标题String TITLE = MediaStore.Audio.Media.TITLE;//artist表的里artist_id,即演唱者的idString ARTIST_ID = MediaStore.Audio.Media.ARTIST_ID;//artist表的里artist_id,即演唱者的信息String ARTIST = MediaStore.Audio.Media.ARTIST;//album表的里album_id,即专辑的idString ALBUM_ID = MediaStore.Audio.Media.ALBUM_ID;//album表的里album_id,即专辑的信息String ALBUM = MediaStore.Audio.Media.ALBUM;//取得内容解析对象ContentResolver cr = getContentResolver();//调用query开始解析数据,返回一个Cursor结果集Cursor cs = cr.query(uri, null, null, null, null);while (cs.moveToNext()) {//取得audio_meta表的里_idString meta_id = cs.getString(cs.getColumnIndex(_ID));//取得audio_meta表的里titleString title = cs.getString(cs.getColumnIndex(TITLE));//用条件ARTIST_ID + "=" + meta_id + " and " + ALBUM_ID + "=" + meta_id//从artist表和album表中找到与audio_meta表_id相对应的信息Cursor c = cr.query(uri, null, ARTIST_ID + "=" + meta_id + " and " + ALBUM_ID + "=" + meta_id, null, null);while(c.moveToNext()){//打印输出文件的标题,演唱者和专辑Log.i("System.out","title " + title + " artist " + c.getString(c.getColumnIndex(ARTIST))+ " album " + c.getString(c.getColumnIndex(ALBUM)));}}}/** * scan按钮,点击按钮给系统发送广播,搜索sdcard卡下的所有音乐文件并更新数据库 * @param v */public void scan(View v) {Intent intent = new Intent(Intent.ACTION_MEDIA_MOUNTED,Uri.parse("file://"+ Environment.getExternalStorageDirectory().getAbsolutePath()));sendBroadcast(intent);}}
media.xml文件:
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="scan" android:text="scan" > </Button> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="show" android:text="show" > </Button></LinearLayout>
- Android--通过ContentResolver取得com.android.providers.media下的media信息
- Permission Denial: reading com.android.providers.media.MediaProvider
- 因为Android M权限问题导致的"Permission Denial: reading com.android.providers.media.MediaProvider"解决办法
- Permission Denial: reading com.android.providers.media.MediaProvider uri content://media/external/i
- Android 6.0 申请权限Permission Denial: reading com.android.providers.media.MediaProvider
- java.lang.SecurityException: Permission Denial: opening provider com.android.providers.media.MediaDo
- android media
- [android] 如何获取media文件的meta data信息
- Android的Media架构介绍
- Android的Media架构介绍
- android中media的datasource
- android中media的DataSource
- Android Media显示的层次
- Android Media(多媒体)播放Module raw下的音乐
- Android Media Scanner Process
- Android多媒体(Media)入门
- Android多媒体(Media)入门
- class android.media.MediaPlayer
- go programming language(1)
- B/S软件开发测试规范_试行1.1.0604 (收录于网络,供学习用,如果侵犯了你们版权请与本人联系)
- JavaSE第九十六讲:对象的序列化与反序列化深入讲解
- AMPS:MD5模块源码解读
- 使用jQuery Mobile和Phone Gap开发Android应用程序
- Android--通过ContentResolver取得com.android.providers.media下的media信息
- JFreeChart使用方法与例子
- Nginx 的函数调用关系图 Call Graph
- 千里眼项目2013-01-23
- LCD设备驱动程序1 .
- The keys to Oracle… (Thomas Kyte) 如何学习oracle--- 翻墙转载
- Ubuntu下deb包的安装方法
- source insight快捷键及使用技巧
- C++Builder2009、2010生成 Release版本