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>
分享到:
评论