android获取全部联系人方法
来源:互联网 发布:ubuntu 远程唤醒 编辑:程序博客网 时间:2024/05/13 13:54
知识点:
1、获取联系人的权限;
2、intent启动的动作设置;
3、获取设备联系人信息;
获取全部联系人方法
点击按钮,获取全部联系人代码,然后选择其中一个联系人,并且将数据返回到调用的这个页面,取出来显示给用户看。
首先需要权限,在清淡文件中加入一下权限
<span style="font-size:14px;"><uses-permissionandroid:name="android.permission.SEND_SMS"/><uses-permissionandroid:name=“android.permission.READ_CONTACTS"/></span>
还有一个重要的就是,因为我们调用的动作是:ACTION_PICK,有别于系统的选择数据的动作:android.intent.action.PICK,所以我们必须要在我们要启动的那个activity里面指定<action>和<category>两个参数
<span style="font-size:14px;"><activity android:name=".ContactPick"android:label="@string/app_name"><actionandroid:name=“android.intent.action.PICK”/>//制动动作<category android:name=“android.intent.category.DEFAULT”/>//指定策略</activity></span>
隐式启动一个activity
@Override publicvoid onClick(View v) {// TODO Auto-generated method stubIntent intent = new Intent(Intent.ACTION_PICK,//action_pickContactsContract.Contacts.CONTENT_URI);startActivityForResult(intent, PICK_CONTACT);}
重写forresult的回调方法,并且根据返回来的uri去去的对应的联系人数据
@Override publicvoid onClick(View v) {// TODO Auto-generated method stubIntent intent = new Intent(Intent.ACTION_PICK,//action_pickContactsContract.Contacts.CONTENT_URI);startActivityForResult(intent, PICK_CONTACT);}重写forresult的回调方法,并且根据返回来的uri去去的对应的联系人数据@Overridepublicvoid onActivityResult(int reqCode, int resCode, Intent data) {super.onActivityResult(reqCode, resCode, data);switch (reqCode) {case (PICK_CONTACT): {if (resCode == Activity.RESULT_OK) {String name;Uri contactData = data.getData();Cursor c = managedQuery(contactData, null, null, null, null);c.moveToFirst();name = c.getString(c.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));TextView tv;tv = (TextView)findViewById(R.id.edt_PhoneNo);tv.setText(name);}break;}}}
在跳转的那个页面,我们需要访问手机的通讯录,将所有联系人的数据取出来,供用户选择。代码如下
setContentView(R.layout.main);Intent orgIntent=getIntent();//得到带过来的intentUri queryUri=orgIntent.getData(); //取出带过来的数据final Cursor c = managedQuery(queryUri,null, null,null,null);//根据带过来的uri开始查询通讯录,并且返回一个cursor对象,后续就对这个cursor对象进行操作String[] fromColumns=new String[]{ContactsContract.Contacts.DISPLAY_NAME};int[] toLayoutIDs = newint[] { R.id.itemTextView };SimpleCursorAdapter adapter = newSimpleCursorAdapter(this,R.layout.listitemlayout, c, fromColumns, toLayoutIDs);//将数据放在适配器中ListView lv = (ListView) findViewById(R.id.contactListView);lv.setAdapter(adapter);lv.setOnItemClickListener(new OnItemClickListener() {//lv添加item点击监听事件@Overridepublicvoid onItemClick(AdapterView<?> parent, View view, int pos,long id) {c.moveToPosition(pos); //移动到cursor指针对应的位置上int rowId = c.getInt(c.getColumnIndexOrThrow(ContactsContract.Contacts._ID));//取出列的索引值Uri outURI = Uri.parse(ContactsContract.Contacts.CONTENT_URI.toString() + rowId);//拼接成uri,返回给调用者Intent outData = new Intent();outData.setData(outURI);setResult(Activity.RESULT_OK,outData);finish();}});
0 0
- android获取全部联系人方法
- Android获取全部联系人信息的例子
- android系统联系人获取方法
- android中ContactsContract获取联系人的方法
- Android获取手机联系人信息的方法
- 获取联系人信息方法
- 获取android联系人信息
- android获取联系人信息
- android 获取联系人
- Android获取联系人列表
- android获取联系人信息
- 获取android联系人信息
- Android 获取联系人资料。
- android获取联系人总结
- Android 获取联系人列表
- 获取android联系人信息
- Android 获取联系人
- 获取android联系人信息
- How Many Tables
- PopupWindow的简单使用
- 【Java学习笔记】进制转换
- ubuntu apache2配置
- Geekban极客班C++ 第四周
- android获取全部联系人方法
- opencv 人脸识别代码
- 最全电商分类信息(01)
- RT288x系列之MT7620uboot编译过程
- Android Service完全解析,关于服务你所需知道的一切(上)
- 最全电商分类信息(02)
- Redis和MongoDB的关系
- ffmpeg
- UVa 10400 - Game Show Math