contentprovider内容提供者,是Android的四大组件之一,可以获得你手机内部的信

息,提供给你的app。

这里写一个获得手机所有音频文件及音频信息,点击播放,大概有这么几步:

1.获得ContentResolver

2.query查找

3.使用

mainactivity:

package com.example.audiotest;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.provider.MediaStore;
import android.provider.MediaStore.Audio.Media;
import android.support.v4.widget.SimpleCursorAdapter;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListView;public class MainActivity extends Activity {private ListView lv;private SimpleCursorAdapter adapter;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);lv = (ListView) findViewById(R.id.main_lv);Uri uri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;// 获得ContentResolverContentResolver cr = getContentResolver();String str[] = { Media._ID, Media.DISPLAY_NAME, Media.ARTIST, Media.ALBUM, Media.DURATION, Media.DATA };int to[] = { R.id.tv_id, R.id.tv_name, R.id.tv_artist, R.id.tv_album, R.id.tv_duration, R.id.tv_data };// 查找所有Audio音频信息final Cursor cursor = cr.query(uri, str, null, null, null);// 创建适配器simplecursoradapter 第一字段必须是_idadapter = new SimpleCursorAdapter(this, R.layout.item, cursor, str, to, 0);// 获得音频文件的路径final Cursor cursor2 = cr.query(uri, new String[] { Media.DATA }, null, null, null);lv.setAdapter(adapter);lv.setOnItemClickListener(new OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> parent, View view, int position, long id) {// TODO Auto-generated method stubcursor2.moveToPosition(position);String path = cursor2.getString(0);Intent intent = new Intent();intent.setAction(Intent.ACTION_VIEW);intent.setDataAndType(Uri.parse("file://" + path), "audio/mp3");startActivity(intent);}});}}

item 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"android:orientation="horizontal" ><TextView android:id="@+id/tv_id"android:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="1"android:ellipsize="end"/><TextView android:id="@+id/tv_name"android:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="2"android:ellipsize="end"android:layout_marginLeft="5dp"/><TextView android:id="@+id/tv_artist"android:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="2"android:ellipsize="end"android:layout_marginLeft="5dp"/><TextView android:id="@+id/tv_album"android:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="2"android:ellipsize="end"android:layout_marginLeft="5dp"/><TextView android:id="@+id/tv_duration"android:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="2"android:ellipsize="end"android:layout_marginLeft="5dp"/><TextView android:id="@+id/tv_data"android:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="2"android:ellipsize="end"android:layout_marginLeft="5dp"/></LinearLayout>

activity_main中只有一个ListView。

由于获得手机中的东西,自然得需要权限读取sdcard。

    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>

Android——使用contentprovider获取内容相关推荐

  1. android的contentprovider多媒体,Android利用ContentProvider获取本地数据的方法

    上一篇,我们讲到ContentProvider的主要功能是,提供共享数据给其他应用使用.在Android系统内部,同样提供了共享数据,查看 android.provider 包下,发现有以下的共享数据 ...

  2. Android USB 扫码枪获取扫描内容

    最近做了关于在Android设备上外接扫码的项目,在此记录一下关于Android USB扫码枪获取内容的问题 首先我这边使用是USB HID的扫码枪,即插即用,只需要在界面上有一个带有焦点的EditT ...

  3. Android基础知识巩固系列 Android之四大组件——ContentProvider(内容提供者)

    因为最近要面试,于是打算整理整理一下Android的基础知识,由于之前本人已经学习过大概的Android基础知识,这里主要讲这四大组件.五大存储.六大布局.网络请求等这些内容,其他一些等有时间再整理, ...

  4. android 印度语_开放获取内容如何帮助推动印度语维基百科的增长

    android 印度语 在印度农村 ,移动Internet连接正在Swift增长,并且由于大多数Internet用户使用其本国语言更加自在,因此使用印度语言制作内容的网站将推动这一增长. 在像印度这样 ...

  5. Android 中ContentProvider和Uri详解

    一.使用ContentProvider(内容提供者)共享数据 ContentProvider在android中的作用是对外共享数据,也就是说你可以通过ContentProvider把应用中的数据共享给 ...

  6. 009 Android之ContentProvider

    文章目录 Android文件权限简述 ContentProvider 内容提供者 ContentResolver URI 什么是URI URI示例 URI和URL ContentProvider实例 ...

  7. 【Android】ContentProvider和Uri详解

    原文来自:http://www.cnblogs.com/linjiqin/archive/2011/05/28/2061396.html 一.使用ContentProvider(内容提供者)共享数据 ...

  8. 【Android】Android中ContentProvider组件详解

    原文来自:http://blog.csdn.net/zuolongsnail/article/details/6566317 ContentProvider(内容提供者)是Android中的四大组件之 ...

  9. Android中ContentProvider组件详解

    一.Android四大组件 Android四大组件是Activity, Service, Content Provider,Broadcast Receiver. Activity作为程序界面,直接与 ...

最新文章

  1. 【Git】在本地创建git库管理自己的代码
  2. python3 list 列表 方法说明
  3. 天籁obd接口针脚定义_OBD协议介绍
  4. flowJS源码个人分析
  5. C++Doubly Linked List双向链表(附完整源码)
  6. mybatisplus坑 insert标签insert into select无参数问题
  7. oracle linux内存推荐分配,[20191114]linux内存分配的讨论.txt
  8. 【ElasticSearch】ElasticSearch 7.8 IK 同义词 配置
  9. ARP监听渗透内网的方法
  10. [转] css3变形属性transform
  11. jmeter 登录用户并发压力测试案例_用jmeter进行多用户并发压力测试 [转]
  12. 射频前端行业信息汇总
  13. 红巨星转场特效预设AE插件 Red Giant Universe 6.0.1 WIN
  14. php 发 语音验证码,php语音验证码接口_php语音接口_php语音验证码_语音验证码代码示例_达信通...
  15. 互联网提供的音频/视频服务类型
  16. 赛意SMOM和金蝶云星空单据接口对接
  17. There is no Qt version assigned to project
  18. Android开发(一)-发展和历史
  19. 晋城一中oj 神奇的序列
  20. 前端 html button标签

热门文章

  1. win10虚拟机创建
  2. 【甲骨文公司高层】谈2018年容器原生应用程序的发展
  3. Python是什么?Python基础教程400集大型视频,全套完整视频赠送给大家
  4. 【Java_SSM_kuang】
  5. 微信又又双叕更新,这次有点厉害了!
  6. 小程序动端组件库Vant Weapp教程
  7. matlab主要功能,matlab一些基本函数的功能
  8. 国内哪家的香港云服务器哪家好?
  9. 新手建站注意事项指南
  10. 大数据是如何发展起来的?