Android ContentProvider查看/读取手机联系人实例

看到某些App里面有读取联系人的功能,然后自己尝试了一下。发现这个挺简单的。然后自己就做了一个demo给大家,希望借这个demo可以让大家学习一下怎么实现读取手机联系人。

这里我用了两种方法去读取:第一张图片是跳转到系统自带的联系人界面,第二种就是直接去读取让后绑上来显示在主页面。话不多说直接上代码。

记得在AndroidManifest.xml 记得加入这两句,不然就读取不到联系人。

<uses-permission android:name="android.permission.READ_CONTACTS" /><uses-permission android:name="android.permission.WRITE_CONTACTS" />
package com.example.android_contentersolver;import android.app.Activity;import android.app.AlertDialog;import android.content.DialogInterface;import android.content.Intent;import android.database.Cursor;import android.net.Uri;import android.os.Bundle;import android.provider.Contacts;import android.provider.ContactsContract;import android.telephony.PhoneStateListener;import android.telephony.TelephonyManager;import android.view.View;import android.view.View.OnClickListener;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.CheckBox;import android.widget.ListView;import android.widget.TextView;public class MainActivity extends Activity {  @Override  protected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_main);    findViewById(R.id.main_btn).setOnClickListener(new OnClickListener() {       @Override      public void onClick(View v) {        // TODO Auto-generated method stub        //查询联系人号码        final Cursor cursor = getContentResolver()            .query(ContactsContract.CommonDataKinds            .Phone.CONTENT_URI, null, null, null, null);         BaseAdapter adapter = new BaseAdapter()         {           @Override           public int getCount()           {             return cursor.getCount();           }           @Override           public Object getItem(int position)           {             return position;           }           @Override           public long getItemId(int position)           {             return position;           }           @Override           public View getView(int position,               View convertView, ViewGroup parent)             {               cursor.moveToPosition(position);//               CheckBox rb = new CheckBox(MainActivity.this);               TextView text=new TextView(MainActivity.this);               // 获取联系人的电话号码,并去掉中间的中划线、空格               String number = cursor                 .getString(cursor.getColumnIndex(                 ContactsContract.CommonDataKinds                 .Phone.NUMBER))                 .replace("-", "")                 .replace(" ", "");//               rb.setText(number);               String name = cursor                   .getString(cursor.getColumnIndex(                   ContactsContract.CommonDataKinds                   .Phone.DISPLAY_NAME));                text.setText("名字:"+name+"  电话号码:"+number);               return text;             }         };       //加载listview       ListView listview=(ListView) findViewById(R.id.mian_list);       listview.setAdapter(adapter);      }    });    //跳转系统的联系人界面    findViewById(R.id.main_btn_sys).setOnClickListener(new OnClickListener() {      @Override      public void onClick(View v) {        // TODO Auto-generated method stub        Intent intent=new Intent();        intent.setAction(intent.ACTION_PICK);        intent.setType("vnd.android.cursor.dir/phone");        startActivityForResult(intent, 0x100);      }    });  }  @Override  protected void onActivityResult(int requestCode, int resultCode, Intent data) {  // TODO Auto-generated method stub  super.onActivityResult(requestCode, resultCode, data);    Uri uri=data.getData();    Cursor cursor = getContentResolver()        .query(uri, null, null, null, null);    while(cursor.moveToNext()){      String name=cursor.getString(cursor.getColumnIndexOrThrow(Contacts.Phones.NAME));      String number=cursor.getString(cursor.getColumnIndexOrThrow(Contacts.Phones.NUMBER));      TextView textview=(TextView) findViewById(R.id.mian_lists);      textview.setText("名字:"+name+"  电话号码:"+number);    }  }}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

失败是成功的亲娘,没有失败哪来的成功呢?诺贝尔如果不经历千万次的失败,

Android ContentProvider查看/读取手机联系人实例

相关文章:

你感兴趣的文章:

标签云: