android手机获取联系人姓名和电话号码

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

鉴于电话号码和联系人名保存在adroid手机数据库表中不是同一个表,需要分别从两个表中,通过唯一性的主键"_id"来分别获取,特写下以下是代码示例:

package com.example.androidcontactspeoper;


import android.app.Activity;
import android.content.Intent;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.provider.Contacts.People;
import android.provider.ContactsContract;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends Activity {
Button btn = null;
TextView tv = null;
TextView tv2 = null;
String contactId;
static final int requestCodeConstant = 100;


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

tv = (TextView) findViewById(R.id.textView1);
tv2 = (TextView) findViewById(R.id.textView2);
btn = (Button) findViewById(R.id.button1);

btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Uri uri = Uri.parse("content://contacts/people");
Intent intent = new Intent(Intent.ACTION_PICK, uri);
startActivityForResult(intent, requestCodeConstant);
}
});
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch (requestCode) {
case requestCodeConstant:
final Uri uriRet = data.getData();
if (uriRet != null) {
try {
Cursor cursor = getContentResolver().query(uriRet, null,
null, null, null);
cursor.moveToFirst();
String name = cursor
.getString(cursor
.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
contactId = cursor.getString(cursor
.getColumnIndex(ContactsContract.Contacts._ID));
tv.setText("姓名:" + name);
} catch (Exception e) {
e.printStackTrace();
tv.setText(e.toString());
}
}
break;
}
switch (requestCode) {
case requestCodeConstant:
final Uri uriRet = ContactsContract.CommonDataKinds.Phone.CONTENT_URI;
if (uriRet != null) {
try {
Cursor cursor = getContentResolver().query(
uriRet,
null,
ContactsContract.CommonDataKinds.Phone.CONTACT_ID
+ "=" + contactId, null, null);
cursor.moveToFirst();
String phoneNumber = cursor
.getString(cursor
.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NORMALIZED_NUMBER));
tv2.setText("号码:" + phoneNumber);
} catch (Exception e) {
e.printStackTrace();
tv2.setText(e.toString());
}
}
break;
}
super.onActivityResult(requestCode, resultCode, data);
}
}

以下是演示效果:


获取手机联系人信息(姓名 电话号码 手机联系人信息,存放的位置分为两种。一种存放在手机内存里面,一种是存放在sim卡里面。 他们的访问方式都相似,都是把电话号码联系人姓名是分开存放在数据库中的,只是访问的uri不同。 本文主要讲的是获取手机内存上的联系人信息。 联系人姓名电话号码是分开存放在sqlite数据库中的,我们把.db文件导出来,打开看看。 1.这是联系人信息: 2.电话号码信息: 表 阅读详情

相关推荐

Android开发之contentprovider获取手机所有联系人姓名、号码、邮箱)

1、得到 ContentResolver 。 ContentResolver resolver = getContentResolver(); 2、拿到手机联系人信息(姓名、号码、邮箱)URL。 获取手机联系人:ContactsContract.RawContacts.CONTENT_URI  获取手机联系人手机号:ContactsContract.Common

Pink-Dream-GMZ的博客 1289

Android 获取联系人姓名电话号码

权限 <uses-permission android:name="android.permission.READ_CONTACTS" /> 跳转通讯录界面 findViewById(R.id.btn_select_contact).setOnClickListener(v -> { new RxPermissions(this) .reques...

碧云天丶 2476

Android笔记: 获取手机联系人列表

下面直接贴代码 1.先写一个实体类,来放名字号码 public class PhoneDto { private String name; //联系人姓名 private String telPhone; //电话号码 public String getName() { return name; } publ...

知道的越多,不知道的越多。 1206

Android读取联系人姓名电话号码

Android联系人的信息是通过ContentProvider来供外部应用获取的,我们使用时只需根据系统联系人ContentProvider的Uri即可获取所需数据。下面讲解如何获取联系人姓名电话号码,别的数据如邮箱、照片等数据的获取都可使用此方式。

lb377463323的博客 2万+

通过adb获取手机信息

整理如下:1、获取手机系统信息( CPU,厂商名称等)adb shell "cat /system/build.prop | grep "product""2、获取手机系统版本adb shell getprop ro.build.version.release3、获取手机系统api版本adb shell getprop ro.build.version.sdk4、获取手机设备型号adb -d

csky的博客 2万+

Android获取手机联系人的基本信息(如姓名、电话、邮箱、备注)

在做项目的过程中,需要获取我们手机通讯录联系人的基本信息,如姓名、电话、邮箱、备注、昵称、公司、职位、家庭电话等等信息,下面就是我总结的一些具体方法。 1:首先读取联系人需要添加读取权限,6.0以上需要动态获取权限) 1.1AndroidManifest.xml 文件添加: <uses-permission android:name="android.permission.READ_E......

weixin_37587365的博客 1万+

Android 2.0以后的Contacts API--ContactsContract

联系人信息的存储结构: 从Android 2.0(API Level 5)开始,Android平台提供了一个改进的Contacts API,以适应一个联系人可以有多个帐户的需求,比如说手机通讯录GMAIL通讯录,两个通讯录中的两条记录可以是同一个人。新的Contacts API主要是由ContactsContract及其相关的类来管理,旧的API(android.provider.C...

aehvbew8628的博客 508

Android开发获取联系人信息

Android开发获取联系人信息

zhu530548851的专栏 983

利用ContentProvider获取手机联系人的信息

手机里面的联系人google的源码已经利用ContentProvider 共享了出来,ContentProvider的底层使用SQLite数据库实现的,所以其对数据的各种操作都是用sql实现的,只是在上层提供的是URI 可以通过两种方法创建ContentProvider : 一:创建属于你自己的ContentProvider 二:将你的数据添加到已经存在的一个ContentProvider中

zkw12358的专栏 1033

Android获取手机联系人

文章目录 Android获取手机中的联系人信息,以下代码仅做记录. public class MainActivity extends AppCompatActivity { /** * 所有的联系人信息 */ private Cursor personCur; /** * 所有联系人电话号码 */ private Curso...

闰土CMS 434

Android开发 读取手机联系人

Android开发  读取手机联系人   读取手机联系人是很常见的需求,这里简单介绍一种方法,读取出手机联系人。 创建项目,在主布局中添加一个listView,然后在Activity中实现。 package com.example.contact; import java.util.ArrayList; import java.util.HashMap; import android.

不二 1362

Android 获取手机联系人

/** * 获取手机联系人 */ public static List> getAllContactInfo(Context context) { SystemClock.sleep(3000); ArrayList> list = new ArrayList>(); // 1.获取内容解析者 ContentResolver resolver = context.g

xizhilang201的专栏 2928

获取手机联系人

/** * 获取手机联系人 * @param context * @return */ public static List> getContactInfo(Context context){ List> list = new ArrayList>(); //得到一个内容提供者 ContentResolver resolver = contex

liuqiang211的专栏 713

android 获取联系人姓名手机号

最简单获取联系人姓名手机号) public void getContacts() { Cursor phones = null; ContentResolver cr = getContentResolver(); try { phones = cr.query( ContactsContract.CommonDataKinds.Phone.CONTENT_UR

大刘的专栏 594

Android软件开发获取通讯录联系人信息

Android软件开发获取通讯录联系人信息 Android手机的通讯录联系人全部都存在系统的数据库中,如果须要获得通讯里联系人的信息就须要访问系统的数据库,才能将信息拿出来。 这一篇文章我主要带领同学们熟悉Android的通讯录机制。 图中选中的数据库 contacts2.db就是系统储存联系人的数据库,我们将它打开看看里面储存了些什么东东? 如果对数据库不太清楚的请查看我的博文Andr

daye5465的博客 491

java如何获取手机号码_java-如何从联系人获取手机号

android中,联系人姓名电话号码保存在不同的ContentProvider中,以便从下面的代码中获取contact_idcur=cr.query(ContactsContract.Contacts.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.HAS_PHONE_NUMBER +" > 0", null, null...

weixin_28893183的博客 1377

java 获取手机联系人_Android获取手机联系人信息

Android如何获取手机联系人信息,本文为大家揭晓。获取手机联系人信息步骤:1、获取 ContentResolverContentResolver resolver = getContentResolver();2、resolver.query(*)查询信息查询手机联系人的URI:ContactsContract.RawContacts.CONTENT_URI查询手机联系人手机号的URI:Con...

weixin_39926613的博客 437

安卓获取手机联系人

里面带有增加联系人点击删除联系人的方法 1.配置权限 主函数 /** * 获取手机 联系人 并展示 * @author alice * */ public class MainActivity extends AppCompatActivity { private Context mContext = MainActivity.this;

你全家都是博客 583
上一篇: 读《考拉小巫的英语学习日记》-----作为自己IT路上的不断鼓励
下一篇: 为什么你10年经验依旧平庸,他人却2年成就卓越?( 转载过来的)
asja2014
博客等级 码龄12年 3粉丝 5原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值