Android四大组件的ContentProvider实例——获取联系人.docx

Android四大组件的ContentProvider实例——获取联系人.docx

ID:57665027

大小:44.91 KB

页数:9页

时间:2020-08-31

Android四大组件的ContentProvider实例——获取联系人.docx_第1页
Android四大组件的ContentProvider实例——获取联系人.docx_第2页
Android四大组件的ContentProvider实例——获取联系人.docx_第3页
Android四大组件的ContentProvider实例——获取联系人.docx_第4页
Android四大组件的ContentProvider实例——获取联系人.docx_第5页
资源描述:

《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

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。