day10 ContentProvider 内容提供者、简单视频播放

ContentProvider 内容提供者作用:跨app提供数据三个要素(1)内容提供者:ContentProvider (2)内容解析者 ContentResolver (3)Uri补充:常用权限:<!--读写联系人--><uses-permission android:name="android.permission.READ_CONTACTS">&l...
摘要由CSDN通过智能技术生成

ContentProvider 内容提供者(四大组件之一)

作用:跨app提供数据
三个要素(1)内容提供者:ContentProvider (2)内容解析者 ContentResolver (3)Uri

补充:

常用权限:

<!--读写联系人-->
<uses-permission android:name="android.permission.READ_CONTACTS"></uses-permission>
<uses-permission android:name="android.permission.WRITE_CONTACTS"></uses-permission>
<!--读写SD卡-->
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"></uses-permission>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
<!--读写短信-->
<uses-permission android:name="android.permission.READ_SMS"></uses-permission>
<uses-permission android:name="android.permission.WRITE_SMS"></uses-permission>
<!--读写通话记录-->
<uses-permission android:name="android.permission.READ_CALL_LOG"></uses-permission>
<uses-permission android:name="android.permission.WRITE_CALL_LOG"></uses-permission>
<!--网络权限-->
<uses-permission android:name="android.permission.INTERNET"/>

常用Uri:
1.获取音频: (1)uri:MediaStore.Audio.Media.EXTERNAL_CONTENT_URI (2)字段:TITLE:歌名 ARTIST 歌手 DURATION 总时长 DATA 地址
String[] strs= new String[]{MediaStore.Audio.Media.TITLE , MediaStore.Audio.Media.ARTIST , MediaStore.Audio.Media.DURATION , MediaStore.Audio.Media.DATA};
2.获取视频: (1)uri:MediaStore.Video.Media.EXTERNAL_CONTENT_URI (2)字段:TITLE:歌名 ARTIST 歌手 DURATION 总时长 DATA 地址
String[] strs= new String[]{MediaStore.Video.Media.TITLE , MediaStore.Video.Media.ARTIST , MediaStore.Video.Media.DURATION , MediaStore.Video.Media.DATA};
3.获取图库: (1)uri:MediaStore.Images.Media.EXTERNAL_CONTENT_URI (2)字段:
MediaStore.Images.Media.TITLE;图片名称
MediaStore.Images.Media.SIZE;大小
MediaStore.Images.Media.DATA;地址
4.获取联系人: (1)uri:ContactsContract.CommonDataKinds.Phone.CONTENT_URI (2)字段:Phone.DISPLAY_NAME:姓名 NUMBER:电话 String[] strs= new
String[]{ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME , ContactsContract.CommonDataKinds.Phone.NUMBER};
5.获取短信: (1)uriTelephony.Sms.CONTENT_URI (2)字段:ADDRESS 地址 BODY 内容 String[] strs= new
String[]{Telephony.Sms.ADDRESS , Telephony.Sms.BODY};
备注:1 2 3 读sd卡的权限 4 读联系人的权限 5 读短信的权限
6.通话记录:(1)uri:CallLog.Calls.CONTENT_URI
(2)字段:NUMBER:电话号码 DATE:时间 毫秒 DURATION:总时长 秒 TYPE 类型

使用
/**
 * 获取联系人:
 * 权限:<uses-permission android:name="android.permission.READ_CONTACTS"/>
 * (1)uri:ContactsContract.CommonDataKinds.Phone.CONTENT_URI
 * (2)字段:Phone.DISPLAY_NAME:姓名   NUMBER:电话
 * */
public void person(){
   
    //TODO 1:获得内容解析对象
    ContentResolver contentResolver = getContentResolver();
    //TODO 2:确定Uri
    Uri uri = ContactsContract.CommonDataKinds.Phone.CONTENT_URI;
    //TODO 3:查询
    //参数1 uri,参数2:要查询字段的数组 ,参数3:条件 ,参数4:为条件中的占位符赋值 参数5:排序
    Cursor cursor = contentResolver.query(uri, null, null, null, null);
    //TODO 4:遍历
    while(cursor.moveToNext()){
   
        //名字和电话号码
        String name = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
        String number = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
    }
}
public class MainActivity extends AppCompatActivity {
   

    Button btn1,btn2,btn3,btn4;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
   
        super.onCreate(savedInstanceState
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值