Android获取手机联系人电话号码并返回结果
程序员文章站
2024-03-01 00:02:34
之前做了一个小练习需要用到获取手机里联系人的电话号码,通过查阅相关的资料,自己尝试写了一个小例子,可以成功获取。
首先需要在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); } } } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
上一篇: Spark运行机制与原理详解
下一篇: 三种东西永远不要放到mysql数据库里