Android中获取系统通讯录联系人

来源:互联网 发布:opta数据中文 编辑:程序博客网 时间:2024/05/17 08:13

Android中获取系统通讯录联系人并显示在EditText

        好多时候,我们都要使用选择联系人的操作,自己写的话 很麻烦,倒不如直接调用系统的通讯录,这样来的直接,来的方便

       下面我们来看需求:

 

需求: 
一个EditText 点击button的时候转到系统通讯录,选中其中一个通讯录item返回当前界面且把 
选中的联系人号码用户名显示在EditText 上。

image

 

image

image

 

直接上代码:

复制代码
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.ContactsContract;import android.view.View;import android.widget.EditText;public class MainActivity extends Activity {    EditText text;    String username,usernumber;        @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        text = (EditText)findViewById(R.id.number);    }       public void click(View v){       startActivityForResult(new Intent(                Intent.ACTION_PICK,ContactsContract.Contacts.CONTENT_URI), 0);   }    @Override    protected void onActivityResult(int requestCode, int resultCode, Intent data) {        super.onActivityResult(requestCode, resultCode, data);        if (resultCode == Activity.RESULT_OK) {            ContentResolver reContentResolverol = getContentResolver();             Uri contactData = data.getData();             @SuppressWarnings("deprecation")            Cursor cursor = managedQuery(contactData, null, null, null, null);             cursor.moveToFirst();             username = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));            String contactId = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));            Cursor phone = reContentResolverol.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,                      null,                      ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = " + contactId,                      null,                      null);             while (phone.moveToNext()) {                 usernumber = phone.getString(phone.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));                 text.setText(usernumber+" ("+username+")");             }         }    }}
复制代码

 

需要添加权限:

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

如果,这篇博客帮您解决了问题,不妨点击一下右下角的【推荐】。

如果,您希望更容易地发现我的新博客,不妨点击一下【加关注】。

因为,我的热情需要您的肯定和支持! 

感谢您的阅读,如果文章中有错误或者您有什么好的建议,也欢迎您直接留言批评指教。Thanks,friends!



0 0