栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 移动开发 > Android

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

Android 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

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

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

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


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);
    }
  }



}

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

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/159868.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号