android中判断sim卡状态和读取联系…
来源:互联网 发布:菜鸟网络加盟怎么赚钱 编辑:程序博客网 时间:2024/06/05 21:49
package com.android.test;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.telephony.TelephonyManager;
import android.widget.TextView;
public class PhoneTest extends Activity {
private TextView mTextView;
protected Cursor mCursor = null;
private TelephonyManager mTelephonyManager;
private String mString = "";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mTextView = (TextView)findViewById(R.id.text);
mTextView.setTextSize( 20.3f);
isSimExist();
if(getSimState() == TelephonyManager.SIM_STATE_READY){
mString += " 卡存在\n ";
getSimContacts( "content://icc/adn"); //一般用这一条,如果这条不行的话可以试试下面的一条。
getSimContacts( "content://sim/adn");//此种读法在我们手机里不能读取,所以,还是用上个uri比较好。
}
mTextView.setText(mString);
}
private void getSimContacts(String str){
Intent intent = new Intent();
intent.setData(Uri.parse(str));
Uri uri = intent.getData();
mCursor = getContentResolver().query(uri, null, null, null, null);
if(mCursor == null){
mString += "不能从" + str + "读数据\n";
return ;
}
mString += "第一列:" + mCursor.getColumnName( 0) + "\n";
mString += "第二列:" + mCursor.getColumnName( 1) + "\n";
mString += "第三列:" + mCursor.getColumnName( 2) + "\n";
mString += "第四列:" + mCursor.getColumnName( 3) + "\n";
mString += "列数:" + mCursor.getColumnCount() + "\n";
mString += "行数:" + mCursor.getCount() + "\n";
if (mCursor != null) {
while (mCursor.moveToNext()) {
// 取得联系人名字
int nameFieldColumnIndex = mCursor.getColumnIndex( "name");
mString += mCursor.getString(nameFieldColumnIndex) +" ";
// 取得电话号码
int numberFieldColumnIndex = mCursor
.getColumnIndex( "number");
mString += mCursor.getString(numberFieldColumnIndex) +" ";
// 取得邮箱
int emailsFieldColumnIndex = mCursor
.getColumnIndex( "emails");
mString += mCursor.getString(emailsFieldColumnIndex) +" ";
// 取得id
int idFieldColumnIndex = mCursor
.getColumnIndex( "_id");
mString += mCursor.getString(idFieldColumnIndex) +"\n";
}
}
mString += mCursor + "\n";
mCursor.close();
}
private int getSimState(){
return mTelephonyManager.getSimState();
}
private void isSimExist(){
mTelephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
int simState = mTelephonyManager.getSimState();
switch (simState) {
case TelephonyManager.SIM_STATE_ABSENT:
mString = "无卡";
// do something
break;
case TelephonyManager.SIM_STATE_NETWORK_LOCKED:
mString = "需要NetworkPIN解锁";
// do something
break;
case TelephonyManager.SIM_STATE_PIN_REQUIRED:
mString = "需要PIN解锁";
// do something
break;
case TelephonyManager.SIM_STATE_PUK_REQUIRED:
mString = "需要PUN解锁";
// do something
break;
case TelephonyManager.SIM_STATE_READY:
mString = "良好";
// do something
break;
case TelephonyManager.SIM_STATE_UNKNOWN:
mString = "未知状态";
// do something
break;
}
mTextView.setText(mString);
}
}
}
<?xml version="1.0" encoding="utf-8" ?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation ="vertical"
android:layout_width ="fill_parent"
android:layout_height ="fill_parent"
>
<ScrollView android:layout_width="fill_parent"
android:layout_height ="fill_parent">
<LinearLayout android:orientation="vertical"
android:layout_width ="fill_parent"
android:layout_height ="fill_parent">
<TextView android:id="@+id/text"
android:layout_width ="fill_parent"
android:layout_height ="wrap_content"
android:text ="@string/hello"
/>
</LinearLayout>
</ScrollView>
</LinearLayout>
同时还要在AndroidManefist.xml中添加读sim卡的权限,如下:
<?xml version="1.0" encoding="utf-8" ?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package ="com.android.test"
android:versionCode ="1"
android:versionName ="1.0">
<application android:icon="@drawable/icon" android:label ="@string/app_name">
<activity android:name=".PhoneTest"
android:label ="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
<uses-permission android:name="android.permission.READ_CONTACTS"></uses-permission>
</manifest>
- android中判断sim卡状态和读取联系…
- android中判断sim卡状态和读取联系人资料的方法
- android中判断sim卡状态和读取联系人资料的方法
- android中判断sim卡状态和读取联系人资料的方法
- Android 判断 SIM卡 状态 并 读取 SIM卡 内容
- Android判断SIM卡状态并读取SIM内容
- android中判断SIM卡状态
- 【SIM】Android判断SIM卡状态并读取SIM卡内容
- Android - 判断SIM卡状态
- Android读取sim卡的状态
- android判断手机SIM状态
- 获取Android手机中SIM卡状态
- android SIM卡状态
- android SIM卡状态
- 读取SIM卡的状态、sim卡网络
- Android 获取SIM卡状态
- Android获取SIM卡状态
- android获取SIM卡状态
- ListView的getView
- ListView 和 Adapter 的基础
- 重复导入联系人的问题(Contact AG…
- Android中GUI系统的Event路由机制
- android setClickable 不起作用
- android中判断sim卡状态和读取联系…
- 依据联系人的电话号码(number)查询联系人的ID (contact_id)
- Android系统属性SystemProperties…
- ListView总结
- 函数的重载及数组的简介
- ContentProvider 原理分析
- Android待机流程分析
- linux C之alarm()
- USACO/kimbits 3.2.2