欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android获取手机联系人电话号码并返回结果

程序员文章站 2024-02-28 13:03:10
之前做了一个小练习需要用到获取手机里联系人的电话号码,通过查阅相关的资料,自己尝试写了一个小例子,可以成功获取。 首先需要在androidmanifest.xml中获取...

之前做了一个小练习需要用到获取手机里联系人的电话号码,通过查阅相关的资料,自己尝试写了一个小例子,可以成功获取。
首先需要在androidmanifest.xml中获取权限

<uses-permission android:name="android.permission.read_contacts"/>


xml布局文件

<linearlayout xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:tools="http://schemas.android.com/tools"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:orientation="vertical" >

  <textview 
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="电话号码是:"/>
  <edittext 
    android:id="@+id/editnumber"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:editable="false"/>
  <button 
    android:id="@+id/buttonquary"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="查询联系人"/>

</linearlayout>

mainactivity.java

package com.getcontacts;

import android.net.uri;
import android.os.bundle;
import android.app.activity;
import android.content.intent;
import android.database.cursor;
import android.util.log;
import android.view.view;
import android.view.view.onclicklistener;
import android.widget.button;
import android.widget.edittext;

public class mainactivity extends activity {
  button button;
  edittext edittext;
  private uri uri_data = uri.parse("content://com.android.contacts/data");

  @override
  protected void oncreate(bundle savedinstancestate) {
    super.oncreate(savedinstancestate);
    setcontentview(r.layout.activity_main);

    button = (button) findviewbyid(r.id.buttonquary);
    edittext = (edittext) findviewbyid(r.id.editnumber);

    button.setonclicklistener(new onclicklistener() {

      @override
      public void onclick(view arg0) {
        // todo auto-generated method stub
        edittext.settext("");  //做跳转之前先把电话号码清空
        intent intent = new intent(intent.action_pick,
            android.provider.contactscontract.contacts.content_uri);
        startactivityforresult(intent, 1);
      }
    });
  }

  @override
  protected void onactivityresult(int requestcode, int resultcode, intent data) {
    // todo auto-generated method stub
    super.onactivityresult(requestcode, resultcode, data);
    if(requestcode == 1) { //请求码为1
      log.i("info","resultadd");
      string strnumber = "";
      if(data != null) { //判断返回的intent是不是为空

        uri uri = data.getdata();
        log.i("info", uri.tostring()); //在log打印出来获取的uri
        cursor cursor = getcontentresolver().query(uri, null, null, null, null);
        while(cursor.movetonext()) {
          string strid = cursor.getstring(cursor.getcolumnindex("name_raw_contact_id"));
          cursor cursor2 = getcontentresolver().query(uri_data, null,
              "raw_contact_id = " + strid + " and mimetype_id = 5", null, null);
          if(cursor2.movetofirst()) {
            strnumber = cursor2.getstring(cursor2.getcolumnindex("data1"));
            strnumber = strnumber.replace(" ", "");
            strnumber = strnumber.replace("-", "");
          }
          cursor2.close();
        }
        cursor.close();
        edittext.settext(strnumber);
      }
    }
  }

}

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