Android初级教程获取手机系统联系人信息
在手机内部,对联系人信息存在对应的数据库。我们创建的而联系人信息都存在这张表中。如下是对数据库的截图,我已经对表和应该注意的地方做了红笔标注:
好了,现在可以根据数据库里面的数据来写代码了。
代码如下:
package com.itydl.getcontacts; import com.itheima.getcontacts.domain.Contact; import android.net.Uri;
import android.os.Bundle;
import android.app.Activity;
import android.content.ContentResolver;
import android.database.Cursor;
import android.view.Menu;
import android.view.View; public class MainActivity extends Activity { @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
} public void click(View v){
//通过内容提供者访问联系人数据库
ContentResolver cr = getContentResolver();
Cursor cursorContactId = cr.query(Uri.parse("content://com.android.contacts/raw_contacts"), new String[]{"contact_id"}, null, null, null);
while(cursorContactId.moveToNext()){
//获取联系人id
String contactId = cursorContactId.getString(0);//1、2、3、4.....
//根据contactId查询出联系人信息data1和mimetype(其实mimetype是做了一个封装,直接根据data表就能获取mimetype类型了)
Cursor cursorData = cr.query(Uri.parse("content://com.android.contacts/data"), new String[]{"data1", "mimetype"},
"raw_contact_id = ?", new String[]{contactId}, null); Contact con = new Contact();
while(cursorData.moveToNext()){//遍历查询的信息(第一次只遍历id号为1的;一次往下遍历)
String data1 = cursorData.getString(0);//联系人一行里面的信息
String mimetype = cursorData.getString(1);//mimetype类型
//通过mimetype的判断,把data1存入对应的属性
if("vnd.android.cursor.item/email_v2".equals(mimetype)){
con.setEmail(data1);
}
else if("vnd.android.cursor.item/phone_v2".equals(mimetype)){
con.setPhone(data1);
}
else if("vnd.android.cursor.item/name".equals(mimetype)){
con.setName(data1);
}
}
System.out.println(con.toString());
}
} }
当然获取手机联系人信息必须要生命权限的,这里就省略写出来
使用javabean把查询的数据全部保存了起来。当 点击查询按钮后,logcat输出结果如下:
所有联系爱人信息全部暴露无疑:
Android初级教程获取手机系统联系人信息的更多相关文章
- Android初级教程获取手机位置信息GPS与动态获取最佳方式
简单介绍一下gps定位的操作. 主要是靠locationmanger这个api完成的一些操作:通过获取这个实例,然后调用它的requestLocationUpdates方法进行注册.传入的参数分别有以 ...
- Android开发之获取手机SIM卡信息
TelephonyManager是一个管理手机通话状态.电话网络信息的服务类.该类提供了大量的getXxx(),方法获取电话网络的相关信息. TelephonyManager类概述: 可用于訪问有关设 ...
- Android初级教程调用手机拍照与摄像功能
这个小案例建议在手机上运行. package com.example.camera; import java.io.File; import android.net.Uri; import andro ...
- Android(java)学习笔记250:ContentProvider使用之获得系统联系人信息02(掌握)
1.重要: 系统删除一个联系人,默认情况下并不是把这个联系人直接删除掉了,只是做了一个标记,标记为被删除. 2.前面一讲说过了如何获取系统联系人信息(通过ContentProvider),获取联系人信 ...
- Android(java)学习笔记194:ContentProvider使用之获得系统联系人信息02(掌握)
1.重要: 系统删除一个联系人,默认情况下并不是把这个联系人直接删除掉了,只是做了一个标记,标记为被删除. 2.前面一讲说过了如何获取系统联系人信息(通过ContentProvider),获取联系人信 ...
- 【风马一族_Android】Android 从命令行界面获取手机信息
Android 从命令行界面获取手机信息 1: cmd 打开命令行界面 2:adb devices 获取与电脑相连的设备,例如:模拟器.真机(手机) (右击“标记”,选择设备名称,点击“Ctrl+ ...
- 获取Java系统相关信息
package com.test; import java.util.Properties; import java.util.Map.Entry; import org.junit.Test; pu ...
- iOS获取通讯录所有联系人信息
以下是2种方式: 第一种方法: GetAddressBook.h #import <Foundation/Foundation.h> @interface GetAddressBook : ...
- js获取手机系统语言
只需 navigator.language 就可以获取手机系统语言,要做国际化的童鞋可以看看 如图:(第一次是简体,第二次切换English),zh-CN,en-US是语言代码 更多语言代码,请查看h ...
随机推荐
- [bzoj4245][ONTAK2015]OR-XOR
来自FallDream的博客,未经允许,请勿转载,谢谢. 给定一个长度为n的序列a[1],a[2],...,a[n],请将它划分为m段连续的区间,设第i段的费用c[i]为该段内所有数字的异或和,则总费 ...
- 第一节mysql 安装
1 安装之前的检查 先要检查Linux系统中是否已经安装了MySQL,输入命令尝试打开MySQL服务: 输入密码后,如果出现以下提示,则说明系统中已经安装有 MySQL: 如果提示是这样的,则说明系统 ...
- Struts2 之 modelDriven & prepare 拦截器详解
struts2 ModelDriven & Prepareable 拦截器 前面对于 Struts2 的开发环境的搭建.配置文件以及 Struts2 的值栈都已经进行过叙述了!这次博文我们讲解 ...
- Struts+Hibernate+jsp页面,实现分页
dao层代码 package com.hanqi.dao; import java.util.ArrayList; import java.util.List; import org.hibernat ...
- bootstrap的模态框
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- Hibernate更新数据(不用update也可以)
在介绍hibernate的更新之前,我们先来看看session的两个方法.load和get方法:这两个方法是获取数据的根据对象的id值: 先看两段代码.load和get的方法都含有两个参数,前者是得到 ...
- salesforce lightning零基础学习(三) 表达式的!(绑定表达式)与 #(非绑定表达式)
在salesforce的classic中,我们使用{!expresion}在前台页面展示信息,在lightning中,上一篇我们也提及了,如果展示attribute的值,可以使用{!v.expresi ...
- c++指针函数的使用——回调函数
/* 函数指针 函数也是有地址的 所谓函数指针,就是指向函数的指针,函数指针也是一个变量,可以指向不同的函数.同时通过函数指针可以调用其指向函数,从而使函数的调用更加灵活. 函数指针的用途 */ #i ...
- sublime安装配置
http://www.sublimetext.com.cn/ 打华东师范大学校赛的时候,学长谈论到这个编辑器.自定义背景多行多光标同时编辑酷炫爆了.感觉这是一个万能的文本编辑器.通过配置可以写多种语言 ...
- python通过token登录,并爬取数据实例
from bs4 import BeautifulSoup import requests class Zabbix(object): def __init__(self, headers): sel ...