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>
分享到:
相关推荐
vc开发读取手机sim卡联系人源代码,方便大家下载,不要资源分。
主要介绍了Android获取手机通讯录、sim卡联系人及调用拨号界面方法,本文分别给出实现代码实现获取通讯录和sim卡的联系人,以及权限配置和调用系统拨打电话的界面的实现代码,需要的朋友可以参考下
GPS定位功能 SIM卡信息获取及SIM上存储的联系人号
主要介绍了Android 4.X读取SIM卡短信和联系人相关类,以实例形式分析了Android 4.X读取SIM卡短信和联系人的两个相关类的功能、用法与注意事项,具有一定参考借鉴价值,需要的朋友可以参考下
SIM卡管理器,可以用来管理sim卡,读取相关sim联系人资料等
获取手机通讯录的实战应用(含SIM卡中的联系人).zip
安卓Android源码——获取手机通讯录的实战应用(含SIM卡中的联系人).zip
Android项目获取手机通讯录的实战应用(含SIM卡中的联系人).rar
安卓Android源码——获取手机通讯录的实战应用(含SIM卡中的联系人).rar
获取手机联系人的简单DEMO
通过contentprovider提供的uri查询手机电话簿的联系人信息,包括姓名,电话,头像(获取的是本机保存的联系人信息,没有获取SIM卡里面联系人的信息)
实现从从手机,或SIM卡中读取联系人信息,可以打电话,发短信,增删改查数据库
读取手机本地通讯录(不能读取Sim卡)直接跳转到系统通讯录界面 点击选择 如果联系人有多个号码 点击之后弹出对话框选择号码
浅析Android手机卫士sim卡绑定 深入浅析Android手机卫士保存密码时进行md5加密 详解Android 手机卫士设置向导页面 浅析Android手机卫士关闭自动更新 浅析Android手机卫士自定义控件的属性 获取ContentResolver内容...
在ListView中实现全选与反选,模仿删除短信时的界面功能,读取SIM卡联系人
Java源码下载,Android 联系人管理模块的代码,可读取联系人、修改、删除联系人,如何连接手机通讯录,如何获取头像列表,如何区分是存储在手机或是SIM卡中,对于Android的应用来说,联系人管理比较典型,但比较重要...
(SMS Message)短信发送功能源码,支持读取手机本地联系人(手机 SIM卡),支持多选联系人(短信群发)暂只支持发送 不支持接受信息,组件使用情况:ListView,自定义适配器,自定义类等。 权限使用情况 android....
添加,读取和修改SIM卡联系人。 拨打电话(无音频)。要求连接的USB GSM调制解调器工作SIM卡NodeJS 11及更高版本安装npm install nodegsm 用法const GSM = require ( "nodegsm" )const gsm = new GSM ( "/dev/gsm...
浅析Android手机卫士读取联系人 浅析Android手机卫士接收短信指令执行相应操作 浅析Android手机卫士手机定位的原理 浅析Android手机卫士之手机实现短信指令获取位置 设备管理员 Device Admin 获取...