`
seya
  • 浏览: 356701 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

从SIM卡读取联系人

 
阅读更多


package com.android.test; 





002

   





003

import android.app.Activity; 





004

import android.content.Context; 





005

import android.content.Intent; 





006

import android.database.Cursor; 





007

import android.net.Uri; 





008

import android.os.Bundle; 





009

import android.telephony.TelephonyManager; 





010

import android.widget.TextView; 





011

   





012

public class PhoneTest extends Activity { 





013

    private TextView mTextView; 





014

    protected Cursor mCursor = null; 





015

    private TelephonyManager mTelephonyManager; 





016

    private String mString = ""; 





017

       





018

    /** Called when the activity is first created. */





019

    @Override





020

    public void onCreate(Bundle savedInstanceState) { 





021

        super.onCreate(savedInstanceState); 





022

        setContentView(R.layout.main); 





023

        mTextView = (TextView)findViewById(R.id.text); 





024

        mTextView.setTextSize(20.3f); 





025

        isSimExist(); 





026

        if(getSimState() == TelephonyManager.SIM_STATE_READY){ 





027

            mString += "    卡存在\n"; 





028

            getSimContacts("content://icc/adn"); //一般用这一条,如果这条不行的话可以试试下面的一条。 





029

            getSimContacts("content://sim/adn");//此种读法在我们手机里不能读取,所以,还是用上个uri比较好。 





030

        } 





031

        mTextView.setText(mString); 





032

    } 





033

       





034

    private void getSimContacts(String str){ 





035

        Intent intent = new Intent(); 





036

        intent.setData(Uri.parse(str)); 





037

        Uri uri = intent.getData(); 





038

        mCursor = getContentResolver().query(uri, null, null, null, null); 





039

        if(mCursor == null){ 





040

            mString += "不能从" + str + "读数据\n"; 





041

            return ; 





042

        } 





043

        mString += "第一列:" + mCursor.getColumnName(0) + "\n"; 





044

        mString += "第二列:" + mCursor.getColumnName(1) + "\n"; 





045

        mString += "第三列:" + mCursor.getColumnName(2) + "\n"; 





046

        mString += "第四列:" + mCursor.getColumnName(3) + "\n"; 





047

        mString += "列数:" + mCursor.getColumnCount() + "\n"; 





048

        mString += "行数:" + mCursor.getCount() + "\n"; 





049

        if (mCursor != null) { 





050

            while (mCursor.moveToNext()) { 





051

                // 取得联系人名字 





052

                int nameFieldColumnIndex = mCursor.getColumnIndex("name"); 





053

                mString += mCursor.getString(nameFieldColumnIndex)+"    "; 





054

                // 取得电话号码 





055

                int numberFieldColumnIndex = mCursor 





056

                        .getColumnIndex("number"); 





057

                mString += mCursor.getString(numberFieldColumnIndex)+"    "; 





058

                // 取得邮箱 





059

                int emailsFieldColumnIndex = mCursor 





060

                        .getColumnIndex("emails"); 





061

                mString += mCursor.getString(emailsFieldColumnIndex)+"    "; 





062

                // 取得id 





063

                int idFieldColumnIndex = mCursor 





064

                        .getColumnIndex("_id"); 





065

                mString += mCursor.getString(idFieldColumnIndex)+"\n"; 





066

            } 





067

        } 





068

        mString += mCursor + "\n"; 





069

        mCursor.close(); 





070

    } 





071

       





072

    private int getSimState(){ 





073

        return mTelephonyManager.getSimState(); 





074

    } 





075

       





076

    private void isSimExist(){ 





077

        mTelephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); 





078

         int simState = mTelephonyManager.getSimState(); 





079

   





080

         switch (simState) { 





081

   





082

             case TelephonyManager.SIM_STATE_ABSENT: 





083

                 mString = "无卡"; 





084

                 // do something 





085

                 break; 





086

   





087

             case TelephonyManager.SIM_STATE_NETWORK_LOCKED: 





088

                 mString = "需要NetworkPIN解锁"; 





089

                 // do something 





090

   





091

                 break; 





092

   





093

             case TelephonyManager.SIM_STATE_PIN_REQUIRED: 





094

                 mString = "需要PIN解锁"; 





095

                 // do something 





096

                 break; 





097

   





098

             case TelephonyManager.SIM_STATE_PUK_REQUIRED: 





099

                 mString = "需要PUN解锁"; 





100

                 // do something 





101

                 break; 





102

   





103

             case TelephonyManager.SIM_STATE_READY: 





104

                 mString = "良好"; 





105

                 // do something 





106

                 break; 





107

   





108

             case TelephonyManager.SIM_STATE_UNKNOWN: 





109

                 mString = "未知状态"; 





110

                 // do something 





111

                 break; 





112

         } 





113

         mTextView.setText(mString); 





114

    } 





115

       





116

}

<uses-permission android:name="android.permission.READ_CONTACTS"></uses-permission> 
分享到:
评论

相关推荐

    Java开发案例-springboot-19-校验表单重复提交-源代码+文档.rar

    Java开发案例-springboot-19-校验表单重复提交-源代码+文档.rar Java开发案例-springboot-19-校验表单重复提交-源代码+文档.rar Java开发案例-springboot-19-校验表单重复提交-源代码+文档.rar Java开发案例-springboot-19-校验表单重复提交-源代码+文档.rar Java开发案例-springboot-19-校验表单重复提交-源代码+文档.rarJava开发案例-springboot-19-校验表单重复提交-源代码+文档.rar Java开发案例-springboot-19-校验表单重复提交-源代码+文档.rar

    基于android的公司员工考勤综合信息平台源码.zip

    提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

    珍藏很久的一套源码升级了很多

    很强大的阿凤飞飞的身份就把饭啦啊开房记录看妇科阿里看到就考虑是否就解放路口空间按时到路口附近开了房间卡拉的时间分开垃圾的浪费空间按可浪费阿克纠纷的看了觉得空房间看大神经费卡上的减肥快接啊看来积分卡时间分开拉丝机房里看见啦开恐怕为日文名弄法卡上的健康饭卡里解放开了哈嘎考虑对方好几万呢uaho时到路口附近开了房间卡拉的时间分开垃圾的浪费空间按可浪费阿克纠纷的看了觉得空房间看大神经费卡上的减肥快接啊看来积分卡时间分开拉丝机房里看见啦开恐怕为日文名弄法卡上的健康饭卡里解放开了哈嘎考虑对方好几万呢uaho上的健康饭卡里解放开了哈嘎考虑对方好几万呢uaho时到路口附近开了房间卡拉的时间分开垃圾的浪费空间按可浪费阿克纠纷的看了觉得空房间看大神经费卡上的减肥快接啊看来积分卡时间分开拉丝机房里看见啦开恐怕为日文名弄法卡上的健康饭卡里解放开了哈嘎考虑对方好几万呢uaho垃圾的浪费空间按可浪费阿克纠纷的看了觉得空房间看大神经费卡上的减肥快接啊看来积分卡时间分开拉丝机房里看见啦开恐怕为日文名弄法卡上的健康饭卡里解放开了哈嘎考虑对方好几万呢uaho上的健康饭卡里解放开了哈嘎考虑对方好几万呢uaho时到路口附近开

    附件二六个指标与权重得分 - 副本.xlsx

    附件二六个指标与权重得分 - 副本

    自学助词自学助词自学助词

    自学助词自学助词自学助词

    ipywidgets-7.7.3.tar.gz

    Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

    Seay PHP代码审计工具2.1公测版.rar

    Seay PHP代码审计工具是一个专门用于审核PHP代码安全性的工具,以下是关于该工具的一些关键信息: 功能特性: 源码浏览:允许用户通过文件列表浏览源代码,并可直接查看和分析含有特定关键字的代码。 关键字扫描:支持单个关键字扫描,方便查找特定模式的代码。 函数扫描:可以批量扫描指定的函数,检查其使用是否安全。 正则匹配:使用正则表达式进行批量匹配,提供高精度和高效率的扫描。 代码审计:自动化审计功能帮助检测常见的安全漏洞,如SQL注入、代码执行、命令执行等。 插件扩展:可能支持通过插件扩展审计功能。 自定义规则:允许用户配置自定义的审计规则。 代码调试:可能包含代码调试功能,帮助理解代码行为。 数据库执行监控:可能有监控数据库操作的功能,以检测潜在的安全问题。 安装与使用: Seay工具通常需要在Windows环境下运行,可能依赖.NET组件。 安装过程相对简单,一般提供一键安装或绿色版,无需复杂配置即可使用。 适用场景: 主要适用于PHP项目的安全测试和代码审查,尤其是对于需要确保代码安全性的开发者和安全分析师。

    app-debug(1).apk

    app-debug(1).apk

    seL4内核参考⼿册4.0.9(中文)

    seL4微内核是⼀个操作系统内核, 它被设计为能为⼴泛的应⽤领域提供安全、 可靠的操作 基础。 作为微内核, 它只为应⽤程序提供了少量的服务, ⽐如创建和管理虚拟地址空间、 线程以及进程间通信(IPC)的抽象等, 少量的服务直接决定了其⼤约仅8700⾏C代码的⼩的 实现。 这就能够让ARMv6版本的内核可以通过Isabelle/HOL理论模型, 遵循明确的规范进 ⾏形式化证明, 进⽽验证了内核的强制完整性和保密性。 内核的⼩尺⼨也有助于对最坏情 况下执⾏时间(WCET)进⾏完整合理的分析 。 虽然我们已经努⼒确保本⼿册准确反映了seL4内核的⾏为, 但本⽂档绝不是内核的正式规 范。 当需要知道内核在特定情况下的精确⾏为时, ⽤⼾应该参考seL4抽象规范, 它给出了 seL4内核的正式描述。

    Highlight Plus 2D 3.5.2

    Highlight Plus 2D为2D或3D场景中的任何精灵添加轮廓、发光、透明、叠加、阴影和缩放效果。 Highlight Plus 2D的设计考虑了平台兼容性和性能: 兼容Mac、Windows、安卓、iOS、WebGL。 兼容内置、URP(正向和2D渲染器)和HDRP管道。 兼容VR(多通道和单通道)。 移动设备上运行速度超快。 ** 视觉特征 ** - 发光颜色、宽度、alpha、动画速度、抖动、多色。 - 轮廓颜色、阿尔法通道和宽度。 - 叠加颜色、阿尔法通道和动画速度。 - 透明效果强度、色调和alpha。 - 击打/闪光效果,具有自定义颜色、强度和淡出持续时间。 - 悬停时缩放。 - 2D和3D阴影。 **其他功能** - 使用带有SpriteRenderer组件的单个和基于图集的精灵。 - 适用于四边形游戏对象(具有纹理的四边形)。 - 与基于Spine的动画网格渲染器一起使用。 - 支持动画(SpriteSkin),变换和自定义轴心。 - 预览效果在编辑器中(无需进入播放模式)。 - 将单个或一组子图形高亮显示为单个对象。

    自建房图纸规划局新农村建房(水、电)-t3.dwg

    自建房图纸规划局新农村建房(水、电)_t3.dwg

    Java基于安卓系统开发的时间管理软件APP源码+设计报告+apk安装包.zip

    【优质项目推荐】 1、项目代码均经过严格本地测试,运行OK,确保功能稳定后才上传平台。可放心下载并立即投入使用,若遇到任何使用问题,随时欢迎私信反馈与沟通,博主会第一时间回复。 2、项目适用于计算机相关专业(如计科、信息安全、数据科学、人工智能、通信、物联网、自动化、电子信息等)的在校学生、专业教师,或企业员工,小白入门等都适用。 3、该项目不仅具有很高的学习借鉴价值,对于初学者来说,也是入门进阶的绝佳选择;当然也可以直接用于 毕设、课设、期末大作业或项目初期立项演示等。 3、开放创新:如果您有一定基础,且热爱探索钻研,可以在此代码基础上二次开发,进行修改、扩展,创造出属于自己的独特应用。 欢迎下载使用优质资源!欢迎借鉴使用,并欢迎学习交流,共同探索编程的无穷魅力! Java基于安卓系统开发的时间管理软件APP源码+设计报告+apk安装包.zipJava基于安卓系统开发的时间管理软件APP源码+设计报告+apk安装包.zipJava基于安卓系统开发的时间管理软件APP源码+设计报告+apk安装包.zipJava基于安卓系统开发的时间管理软件APP源码+设计报告+apk安装包.zipJava基于安卓系统开发的时间管理软件APP源码+设计报告+apk安装包.zipJava基于安卓系统开发的时间管理软件APP源码+设计报告+apk安装包.zipJava基于安卓系统开发的时间管理软件APP源码+设计报告+apk安装包.zipJava基于安卓系统开发的时间管理软件APP源码+设计报告+apk安装包.zipJava基于安卓系统开发的时间管理软件APP源码+设计报告+apk安装包.zip

    2D超声图像人工智能模型智能分割

    这个完整工程给出对2D图像的处理,以及建立人工智能模型对图像进行智能分割,并对程序有详细说明,可作为熟悉该工程的学习资料。

    可用于恢复删除文件的软件

    可用于恢复删除文件的软件

    grpcio-1.44.0-cp39-cp39-manylinux2010_x86_64.whl

    Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

    基于Java的微信小游戏消灭星星的设计与实现源码.zip

    提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

    ipywidgets-8.0.0a1.tar.gz

    Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

    基于3D-CNN的暴力行为检测python源码+文档说明+实验报告(高分项目)

    基于3D-CNN的暴力行为检测python源码+文档说明+实验报告(高分项目)本资源中的源码都是经过本地编译过可运行的,评审分达到95分以上。资源项目的难度比较适中,内容都是经过助教老师审定过的能够满足学习、使用需求,如果有需要的话可以放心下载使用。 本资源中的源码都是经过本地编译过可运行的,评审分达到95分以上。资源项目的难度比较适中,内容都是经过助教老师审定过的能够满足学习、使用需求,如果有需要的话可以放心下载使用。本资源中的源码都是经过本地编译过可运行的,评审分达到95分以上。资源项目的难度比较适中,内容都是经过助教老师审定过的能够满足学习、使用需求,如果有需要的话可以放心下载使用。本资源中的源码都是经过本地编译过可运行的,评审分达到95分以上。资源项目的难度比较适中,内容都是经过助教老师审定过的能够满足学习、使用需求,如果有需要的话可以放心下载使用。本资源中的源码都是经过本地编译过可运行的,评审分达到95分以上。资源项目的难度比较适中,内容都是经过助教老师审定过的能够满足学习、使用需求,如果有需要的话可以放心下载使用。基于3D-CNN的暴力行为检测python源码+文档说明

    模拟电子技术课程设计-基于LM324的电路仿真设计

    模拟电子技术课程设计,主要任务是使用通用四运放芯片LM324构建电路实现特定功能,包括信号的加法、滤波和比较。电路设计要求接收一个500Hz的正弦波信号ui1,并与自制振荡器产生的信号uo1相加,经过反相加法器得到输出ui2,然后通过低通滤波器滤除uo1的频率分量,得到峰峰值为9V的正弦波信号uo2。最后,经过滞回比较器处理,得到峰峰值为2V的方波信号uo3。电路设计中还特别强调了电源的选择限制以及测试端子的预留。文档还提供了电路的仿真结果,包括三角波、加法器、滤波器和比较器的输出波形,这些仿真结果展示了电路设计的理论波形与实际仿真波形之间的对比,以及电路的稳定性和误差情况。

    信誉评级B客户流失率实际值与预测曲线.jpg

    信誉评级B客户流失率实际值与预测曲线

Global site tag (gtag.js) - Google Analytics