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

 更新时间:2020年10月23日 08:45:34   作者:ZL_My  
这篇文章主要为大家详细介绍了Android获取手机联系人电话号码并返回结果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

之前做了一个小练习需要用到获取手机里联系人的电话号码,通过查阅相关的资料,自己尝试写了一个小例子,可以成功获取。
首先需要在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);
   }
  }
 }

}

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

相关文章

  • Android实现刮刮乐示例分析

    Android实现刮刮乐示例分析

    本文实现了Android刮刮乐示例分析,刮奖在生活中常常见到,网上现在也有各种各样的抽奖活动,下面我们就要实现一个刮刮乐程序。
    2016-10-10
  • Android Intent启动别的应用实现方法

    Android Intent启动别的应用实现方法

    我们知道Intent的应用,可以启动别一个Activity,那么是否可以启动别外的一个应用程序呢,答案是可以的
    2013-04-04
  • android实现注册登录程序

    android实现注册登录程序

    这篇文章主要为大家详细介绍了android实现注册登录程序,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-04-04
  • Android判断和监听底座状态和类型的方法介绍

    Android判断和监听底座状态和类型的方法介绍

    这篇文章主要介绍了Android判断和监听底座状态和类型的方法介绍,例如判断当前底座状态、判断插入底座类型、监控充电充电状态等,需要的朋友可以参考下
    2014-06-06
  • Android仿百度外卖自定义下拉刷新效果

    Android仿百度外卖自定义下拉刷新效果

    大家在使用百度外卖的订餐的时候,会看到有个下拉刷新功能非常不错,今天小编就通过代码给大家介绍android仿百度外卖自定义下拉刷新,感兴趣的朋友一起学习吧
    2016-04-04
  • Android中TextView实现超过固定行数显示“...展开全部”

    Android中TextView实现超过固定行数显示“...展开全部”

    这篇文章主要给大家介绍了关于Android中TextView如何实现超过固定行数显示"...展开全部"的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2017-12-12
  • android实现视频的加密和解密(使用AES)

    android实现视频的加密和解密(使用AES)

    本篇文章主要介绍了android实现视频的加密和解密(使用AES),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • 深入解析Android App开发中Context的用法

    深入解析Android App开发中Context的用法

    这篇文章主要介绍了深入解析Android App开发中Context的用法,包括Context的创建场景和Context对资源的访问等内容,需要的朋友可以参考下
    2016-02-02
  • Android夜间模式最佳实践

    Android夜间模式最佳实践

    这篇文章主要介绍了Android夜间模式最佳实践,在Android应用普遍支持夜间模式的今天,如何优雅地实现夜间模式?感兴趣的小伙伴们可以参考一下
    2016-02-02
  • ListView实现下拉动态渲染数据

    ListView实现下拉动态渲染数据

    这篇文章主要为大家详细介绍了ListView实现下拉动态渲染数据的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-06-06

最新评论