//获取手机和手机卡通讯录
public static String getContacts()
{
String szContacts = ""; szContacts=getPhoneContacts()+getSIMContacts(); return szContacts;
}
 // 获取手机联系人
public static String getPhoneContacts()
{
String szpPhoneContacts = "";
ContentResolver resolver = s_ctx.getContentResolver();
StringBuffer bufs = new StringBuffer(); // 获取手机联系人
Cursor phoneCursor = resolver.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
PHONES_PROJECTION, null, null, null); JSONObject jsobjs = new JSONObject();
// 不为空
if (phoneCursor != null) {
while (phoneCursor.moveToNext()) { // 得到手机号码
String phoneNumber = phoneCursor.getString(PHONES_NUMBER);
// 当手机号码为空的或者为空字段 跳过当前循环
if (TextUtils.isEmpty(phoneNumber))
continue; // 得到联系人名称
String contactName = phoneCursor.getString(PHONES_DISPLAY_NAME); try
{
jsobjs.put("联系人名称",contactName);
jsobjs.put("电话号码",phoneNumber);
bufs.append(jsobjs); } catch (JSONException e)
{
e.printStackTrace();
} } phoneCursor.close(); }
szpPhoneContacts = bufs.toString();
return szpPhoneContacts;
} /** 得到手机SIM卡联系人人信息 **/
public static String getSIMContacts()
{
StringBuffer bufs = new StringBuffer();
String simconteacts = "";
ContentResolver resolver = s_ctx.getContentResolver();
// 获取Sims卡联系人
Uri uri = Uri.parse("content://icc/adn");
Cursor phoneCursor = resolver.query(uri, PHONES_PROJECTION, null, null,
null); if (phoneCursor != null) {
while (phoneCursor.moveToNext()) { // 得到手机号码
String phoneNumber = phoneCursor.getString(PHONES_NUMBER);
// 当手机号码为空的或者为空字段 跳过当前循环
if (TextUtils.isEmpty(phoneNumber))
continue;
// 得到联系人名称
String contactName = phoneCursor.getString(PHONES_DISPLAY_NAME); JSONObject jsobj = new JSONObject();
try
{
jsobj.put("联系人名称",contactName);
jsobj.put("电话号码",phoneNumber);
bufs.append(jsobj);
} catch (JSONException e)
{
e.printStackTrace();
} } phoneCursor.close();
} //sim卡中记录
simconteacts = bufs.toString();
return simconteacts;
}

android获取通讯记录,sim卡和手机的更多相关文章

  1. Android菜鸟的成长笔记(23)——获取网络和SIM卡信息

    TelephonyManager是一个管理手机通话状态.电话网络信息的服务类,该类提供了大量的getXxx()方法来获取电话网络的相关信息.这些信息包括设备编号.软件版本.网络运营商代号.网络运营商名 ...

  2. 利用电话管理器TelephonyManager获取网络和SIM卡信息

    import java.util.ArrayList;import java.util.HashMap;import java.util.Map; import android.os.Bundle;i ...

  3. android 获取本机SMI卡号码

    //获取手机号码 TelephonyManager tm = (TelephonyManager)this.getSystemService(Context.TELEPHONY_SERVICE); S ...

  4. android 判断是否有sim卡及运营商

    判断是否有sim卡的方法:   int absent = TelephonyManager.SIM_STATE_ABSENT; if (1 == absent) { Log.d(TAG,"请 ...

  5. android 获取通话记录

    在manifest添加以下权限<uses-permission android:name="android.permission.READ_CALL_LOG" />&l ...

  6. [android] 手机卫士绑定sim卡

    更新: 收不到启动广播,查看知乎,好像是说高版本的系统都禁止了 还可以通过adb发送开机广播 adb shell am broadcast -a android.intent.action.BOOT_ ...

  7. android131 360 05 手势触摸滑动,sim卡,开机启动的广播,手机联系人,SharedPreferences,拦截短信

    安卓手势触摸滑动: package com.itheima52.mobilesafe.activity; import android.app.Activity; import android.con ...

  8. 手机SIM卡知识大科普

    SIM卡 SIM卡是(Subscriber Identity Module 客户识别模块)的缩写,也称为智能卡.用户身份识别卡,GSM数字移动电话机必须装上此卡方能使用.它在一电脑芯片上存储了数字移动 ...

  9. 手机SIM卡无法识别解决方案

    SIM卡是工作中测试用的,经常插拔到不同的手机,前两天SIM卡放到手机中都能正常识别,今天插入到另一款手机中发现无法识别.心里糟了,是不是卡坏了,根据之 前的直觉,在公司找了一块橡皮,在SIM卡的芯片 ...

随机推荐

  1. poj3376 Finding Palindromes【exKMP】【Trie】

    Finding Palindromes Time Limit: 10000MS   Memory Limit: 262144K Total Submissions:4710   Accepted: 8 ...

  2. ==和equal()的区别

    “==”比较的是对象引用的地址相不相同 “equal()”比较的是内容是否相等

  3. 【每日一题】 UVA - 340 阅读理解+模拟

    https://cn.vjudge.net/problem/UVA-340 题目很难读,差不多读了两天 意思是给你一个n个数的数列,然后有m个询问,每个询问也是一个n个数的数列,让你输出两个数:一个是 ...

  4. CSS:Float

    CSS 的 Float(浮动),会使元素向左或向右移动,其周围的元素也会重新排列. Float(浮动),往往是用于图像,但它在布局时一样非常有用. 元素怎样浮动 元素的水平方向浮动,意味着元素只能左右 ...

  5. nginx伪静态之try_files和rewrite讲解

    服务器脚本以php为例     一.伪静态是个啥?   1.说起伪静态基本上搞web开发的人,多多少少都有了解与使用,有人会说什么时候会使用伪静态?使用原生的url地址不是蛮好的吗,确实是这样的,其实 ...

  6. qemu无界面启动,并重定向输出到终端

    qemu-system-x86_64  -kernel bzImage -initrd /mnt/rootfs.cpio.gz  /dev/zero -m 2G -nographic -append ...

  7. typedef define typedef可以使程序参数化,提高程序的可移植性。

    小结: 1. typedef并没有创建一个新类型,它只是为某个已存在的类型增加了一个新的名称而已: 2. typedef声明也没有证据新的语义:通过这种方式声明的变量与通过普通方式声明的变量具有完全相 ...

  8. ASM X86&&X64 Registers 对寄存器ESP和EBP的一些理解

    ESP EIP EBP : frame pointer(base address of stack) Calling Convention: 调用约定 为什么fun调用之后 esp -ebp = 20 ...

  9. 这就是使用ReportBuilder最简单的例子

    用这组控件最简单的例子:在窗体上放上组件名为ppBDEPipeline1,ppReport1,ppDesigner1,ppViewer1,DataSource1的控件,设置ppreport1的data ...

  10. LeetCode 136 Single Number 解题报告

    题目要求 Given a non-empty array of integers, every element appears twice except for one. Find that sing ...