Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了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);

         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);
    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查看/读取手机联系人实例

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

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

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

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

大佬总结

以上是大佬教程为你收集整理的Android ContentProvider查看/读取手机联系人实例全部内容,希望文章能够帮你解决Android ContentProvider查看/读取手机联系人实例所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签:android