欢迎来到天天文库
浏览记录
ID:57665027
大小:44.91 KB
页数:9页
时间:2020-08-31
《Android四大组件的ContentProvider实例——获取联系人.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Android四大组件的ContentProvider实例——获取联系人 1.ContentProvider简述 ContenttProvider(以下简称CP)是为了获取不同应用之间的数据而诞生的组件,并且官方为常见的一些数据提供了默认的CP。例如,联系人、短信等。 CP的几点关键: Uri:是CP的标志符,是识别CP的唯一方式。 ContentResolver:对CP进行操作的类。 权限:有时候操作一些地方需要一些权限。 2.获取联系人实现思路 3.具体实现 3.1申请权限 android6.0不仅要在AndroidManifest.xml中静态申请,还需要在代码
2、中进行动态申请。 静态申请 在AndroidManifest.xml中进行申请。 动态申请 动态申请的流程为:发起申请和申请结果。 发起申请: 主要使用requestPermissions(permission名字的数组,整型的自定义requescode)方法 注: 什么时候进行动态申请呢?版本大于等于6.0且当前页面没有这个权限。 requestcode为自定义数值,例子中我定义了一个常量in
3、t--PERMISSIONS_REQUEST_READ_CONTACTS,这个是为了在查看申请结果时判定用的。privatevoidshowContacts(){//检验是否版本大于6.0,当前页面是否有这个权限if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.M&&checkSelfPermission(Manifest.permission.READ_CONTACTS)!=PackageManager.PERMISSION_GRANTED){//发起申请requestPermissions(newString[]{Manifest.permi
4、ssion.READ_CONTACTS},PERMISSIONS_REQUEST_READ_CONTACTS);}else{//低版本直接运行,跳过动态申请。readContacts();}} 申请结果 重写onRequsetPermissionResult(intrequestCode,String[]permissions,int[]grantResults)方法。 注: 在此返回的requestCode是发送申请中自定义的requestCode,permissionsString数组也是发送申请中的,grantResults返回的有两种PackageManager.PERM
5、ISSION_GRANTED和PackageManager.PERMISSIO N_DENIED@OverridepublicvoidonRequestPermissionsResult(intrequestCode,String[]permissions,int[]grantResults){if(requestCode==PERMISSIONS_REQUEST_READ_CONTACTS){if(grantResults[0]==PackageManager.PERMISSION_GRANTED){//申请权限通过showContacts();}else{Toast.makeTex
6、t(this,"只有通过了权限申请才能查看",Toast.LENGTH_SHORT).show();}}} 3.2获取联系人 主要使用ContentResolver进行操作 使用游标来对ContentResolver获取的数据进行操作。privatevoidreadContacts(){Cursorcursor=null;try{cursor=getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,null,null,null,null);while(cursor.moveToNex
7、t()){StringdisplayName=cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));Stringnumber=cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));co
此文档下载收益归作者所有