【android studio】Android ContentProvider查看/读取手机联系人实例

时间:2021-06-17  来源:.Net开发  阅读:

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

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

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

 代码如下

 代码如下

packagecom.example.android_contentersolver;

 

importandroid.app.Activity;

importandroid.app.AlertDialog;

importandroid.content.DialogInterface;

importandroid.content.Intent;

importandroid.database.Cursor;

importandroid.net.Uri;

importandroid.os.Bundle;

importandroid.provider.Contacts;

importandroid.provider.ContactsContract;

importandroid.telephony.PhoneStateListener;

importandroid.telephony.TelephonyManager;

importandroid.view.View;

importandroid.view.View.OnClickListener;

importandroid.view.ViewGroup;

importandroid.widget.BaseAdapter;

importandroid.widget.CheckBox;

importandroid.widget.ListView;

importandroid.widget.TextView;

 

publicclassMainActivityextendsActivity {

  @Override

  protectedvoidonCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_main);

 

    findViewById(R.id.main_btn).setOnClickListener(newOnClickListener() {

      @Override

      publicvoidonClick(View v) {

        // TODO Auto-generated method stub

        //查询联系人号码

        finalCursor cursor = getContentResolver()

            .query(ContactsContract.CommonDataKinds

            .Phone.CONTENT_URI,null,null,null,null);

 

         BaseAdapter adapter =newBaseAdapter()

         {

           @Override

           publicintgetCount()

           {

             returncursor.getCount();

           }

 

           @Override

           publicObject getItem(intposition)

           {

             returnposition;

           }

 

           @Override

           publiclonggetItemId(intposition)

           {

             returnposition;

           }

 

           @Override

           publicView getView(intposition,

               View convertView, ViewGroup parent)

             {

               cursor.moveToPosition(position);

//               CheckBox rb = new CheckBox(MainActivity.this);

               TextView text=newTextView(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);

 

 

               returntext;

             }

         };

 

       //加载listview

       ListView listview=(ListView) findViewById(R.id.mian_list);

       listview.setAdapter(adapter);

      }

    });

 

 

    //跳转系统的联系人界面

    findViewById(R.id.main_btn_sys).setOnClickListener(newOnClickListener() {

 

      @Override

      publicvoidonClick(View v) {

        // TODO Auto-generated method stub

        Intent intent=newIntent();

        intent.setAction(intent.ACTION_PICK);

        intent.setType("vnd.android.cursor.dir/phone");

        startActivityForResult(intent,0x100);

      }

    });

  }

 

  @Override

  protectedvoidonActivityResult(intrequestCode,intresultCode, 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 studio】Android ContentProvider查看/读取手机联系人实例

http://m.bbyears.com/asp/124245.html

推荐访问:android学习路线
相关阅读 猜你喜欢
本类排行 本类最新