软件编程
位置:首页>> 软件编程>> Android编程>> Android ContentProvider查看/读取手机联系人实例

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

作者:via_myra  发布时间:2021-10-13 07:10:13 

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

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

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

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

来源:http://blog.csdn.net/via_myra/article/details/54953111

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com