㈠ android監控sim卡是否有服務示例
給你個示例吧:
package com.water.activity;
import java.util.List;
import android.app.Activity;
import android.os.Bundle;
import android.telephony.CellLocation;
import android.telephony.NeighboringCellInfo;
import android.telephony.TelephonyManager;
import android.util.Log;
public class MyList extends Activity {
/**
* android API中的TelephonyManager對象,可以取得SIM卡中的信息
*/
private TelephonyManager telMgr;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
telMgr = (TelephonyManager) getSystemService(TELEPHONY_SERVICE);
if (telMgr.getSimState() == telMgr.SIM_STATE_READY) {
Log.i("MyList", "良好");
} else if (telMgr.getSimState() == telMgr.SIM_STATE_ABSENT) {
Log.i("MyList", "無SIM卡");
} else {
Log.i("MyList", "SIM卡被鎖定或未知的狀態");
}
Log.i("MyList", "電話狀態[0 無活動/1 響鈴/2 摘機]:" + getCallState());
Log.i("MyList", "電話方位:" + getCellLocation());
Log.i("MyList", "唯一的設備ID:" + getDeviceId());
Log.i("MyList", "設備的軟體版本號:" + getDeviceSoftwareVersion());
Log.i("MyList", "手機號:" + getLine1Number());
Log.i("MyList", "附近的電話的信息:" + getNeighboringCellInfo());
Log.i("MyList", "獲取ISO標準的國家碼,即國際長途區號:" + getNetworkCountryIso());
Log.i("MyList", "MCC+MNC:" + getNetworkOperator());
Log.i("MyList", "(當前已注冊的用戶)的名字:" + getNetworkOperatorName());
Log.i("MyList", "當前使用的網路類型:" + getNetworkType());
Log.i("MyList", "手機類型:" + getPhoneType());
Log.i("MyList", "SIM卡的國家碼:" + getSimCountryIso());
Log.i("MyList", "獲取SIM卡提供的移動國家碼和移動網路碼.5或6位的十進制數字:" + getSimOperator());
Log.i("MyList", "服務商名稱:" + getSimOperatorName());
Log.i("MyList", "SIM卡的序列號:" + getSimSerialNumber());
Log.i("MyList", "SIM的狀態信息:" + getSimState());
Log.i("MyList", "唯一的用戶ID:" + getSubscriberId());
Log.i("MyList", "取得和語音郵件相關的標簽,即為識別符:" + getVoiceMailAlphaTag());
Log.i("MyList", "獲取語音郵件號碼:" + getVoiceMailNumber());
Log.i("MyList", "ICC卡是否存在:" + hasIccCard());
Log.i("MyList", "是否漫遊:" + isNetworkRoaming());
Log.i("MyList", "獲取數據活動狀態:" + getDataActivity());
Log.i("MyList", "獲取數據連接狀態:" + getDataState());
}
/**
* 電話狀態:<br/>
* CALL_STATE_IDLE 無任何狀態時<br/>
* CALL_STATE_OFFHOOK 接起電話時<br/>
* CALL_STATE_RINGING 電話進來時
*
* @return
*/
private int getCallState() {
return telMgr.getCallState();
}
/**
* 返回當前移動終端的位置 <br/>
*
* @return
*/
private CellLocation getCellLocation() {
CellLocation location = telMgr.getCellLocation();
// 請求位置更新,如果更新將產生廣播,接收對象為注冊LISTEN_CELL_LOCATION的對象,需要的permission名稱為ACCESS_COARSE_LOCATION。
// location.requestLocationUpdate();
return location;
}
/**
* 唯一的設備ID:<br/>
* 如果是GSM網路,返回IMEI;如果是CDMA網路,返回MEID<br/>
* 需要許可權:android.permission.READ_PHONE_STATE
*
* @return null if device ID is not available.
*/
private String getDeviceId() {
return telMgr.getDeviceId();
}
/**
* 返回移動終端的軟體版本:<br/>
* 例如:GSM手機的IMEI/SV碼。<br/>
*
* @return null if the software version is not available.
*/
private String getDeviceSoftwareVersion() {
return telMgr.getDeviceSoftwareVersion();
}
/**
* 手機號:<br/>
* 對於GSM網路來說即MSISDN
*
* @return null if it is unavailable.
*/
private String getLine1Number() {
return telMgr.getLine1Number();
}
/**
* 返回當前移動終端附近移動終端的信息:<br/>
* 類型:List<NeighboringCellInfo><br/>
* 需要許可權:android.Manifest.permission#ACCESS_COARSE_UPDATES
*
* @return
*/
private List<NeighboringCellInfo> getNeighboringCellInfo() {
// List<NeighboringCellInfo> infos = telMgr.getNeighboringCellInfo();
// for (NeighboringCellInfo info : infos) {
// // 獲取鄰居小區號
// int cid = info.getCid();
//
// // 獲取鄰居小區LAC,LAC:
// // 位置區域碼。為了確定移動台的位置,每個GSM/PLMN的覆蓋區都被劃分成許多位置區,LAC則用於標識不同的位置區。
// info.getLac();
// info.getNetworkType();
// info.getPsc();
//
// // 獲取鄰居小區信號強度
// info.getRssi();
// }
return telMgr.getNeighboringCellInfo();
}
/**
* 獲取ISO標準的國家碼,即國際長途區號。<br/>
* 注意:僅當用戶已在網路注冊後有效。<br/>
* 在CDMA網路中結果也許不可靠。<br/>
*
* @return
*/
private String getNetworkCountryIso() {
return telMgr.getNetworkCountryIso();
}
/**
* MCC+MNC(mobile country code + mobile network code)<br/>
* 注意:僅當用戶已在網路注冊時有效。<br/>
* 在CDMA網路中結果也許不可靠。<br/>
*
* @return
*/
private String getNetworkOperator() {
return telMgr.getNetworkOperator();
}
/**
* 按照字母次序的current registered operator(當前已注冊的用戶)的名字<br/>
* 注意:僅當用戶已在網路注冊時有效。<br/>
* 在CDMA網路中結果也許不可靠。
*
* @return
*/
private String getNetworkOperatorName() {
return telMgr.getNetworkOperatorName();
}
/**
* 當前使用的網路類型:<br/>
* NETWORK_TYPE_UNKNOWN 網路類型未知 0<br/>
* NETWORK_TYPE_GPRS GPRS網路 1<br/>
* NETWORK_TYPE_EDGE EDGE網路 2<br/>
* NETWORK_TYPE_UMTS UMTS網路 3<br/>
* NETWORK_TYPE_HSDPA HSDPA網路 8<br/>
* NETWORK_TYPE_HSUPA HSUPA網路 9<br/>
* NETWORK_TYPE_HSPA HSPA網路 10<br/>
* NETWORK_TYPE_CDMA CDMA網路,IS95A 或 IS95B. 4<br/>
* NETWORK_TYPE_EVDO_0 EVDO網路, revision 0. 5<br/>
* NETWORK_TYPE_EVDO_A EVDO網路, revision A. 6<br/>
* NETWORK_TYPE_1xRTT 1xRTT網路 7<br/>
* 在中國,聯通的3G為UMTS或HSDPA,移動和聯通的2G為GPRS或EGDE,電信的2G為CDMA,電信的3G為EVDO<br/>
*
* @return
*/
private int getNetworkType() {
return telMgr.getNetworkType();
}
/**
* 返回移動終端的類型:<br/>
* PHONE_TYPE_CDMA 手機制式為CDMA,電信<br/>
* PHONE_TYPE_GSM 手機制式為GSM,移動和聯通<br/>
* PHONE_TYPE_NONE 手機制式未知<br/>
*
* @return
*/
private int getPhoneType() {
return telMgr.getPhoneType();
}
/**
* 獲取ISO國家碼,相當於提供SIM卡的國家碼。
*
* @return Returns the ISO country code equivalent for the SIM provider's
* country code.
*/
private String getSimCountryIso() {
return telMgr.getSimCountryIso();
}
/**
* 獲取SIM卡提供的移動國家碼和移動網路碼.5或6位的十進制數字.<br/>
* SIM卡的狀態必須是 SIM_STATE_READY(使用getSimState()判斷).
*
* @return Returns the MCC+MNC (mobile country code + mobile network code)
* of the provider of the SIM. 5 or 6 decimal digits.
*/
private String getSimOperator() {
return telMgr.getSimOperator();
}
/**
* 服務商名稱:<br/>
* 例如:中國移動、聯通<br/>
* SIM卡的狀態必須是 SIM_STATE_READY(使用getSimState()判斷).
*
* @return
*/
private String getSimOperatorName() {
return telMgr.getSimOperatorName();
}
/**
* SIM卡的序列號:<br/>
* 需要許可權:READ_PHONE_STATE
*
* @return
*/
private String getSimSerialNumber() {
return telMgr.getSimSerialNumber();
}
/**
* SIM的狀態信息:<br/>
* SIM_STATE_UNKNOWN 未知狀態 0<br/>
* SIM_STATE_ABSENT 沒插卡 1<br/>
* SIM_STATE_PIN_REQUIRED 鎖定狀態,需要用戶的PIN碼解鎖 2<br/>
* SIM_STATE_PUK_REQUIRED 鎖定狀態,需要用戶的PUK碼解鎖 3<br/>
* SIM_STATE_NETWORK_LOCKED 鎖定狀態,需要網路的PIN碼解鎖 4<br/>
* SIM_STATE_READY 就緒狀態 5
*
* @return
*/
private int getSimState() {
return telMgr.getSimState();
}
/**
* 唯一的用戶ID:<br/>
* 例如:IMSI(國際移動用戶識別碼) for a GSM phone.<br/>
* 需要許可權:READ_PHONE_STATE
*
* @return
*/
private String getSubscriberId() {
return telMgr.getSubscriberId();
}
/**
* 取得和語音郵件相關的標簽,即為識別符<br/>
* 需要許可權:READ_PHONE_STATE
*
* @return
*/
private String getVoiceMailAlphaTag() {
return telMgr.getVoiceMailAlphaTag();
}
/**
* 獲取語音郵件號碼:<br/>
* 需要許可權:READ_PHONE_STATE
*
* @return
*/
private String getVoiceMailNumber() {
return telMgr.getVoiceMailNumber();
}
/**
* ICC卡是否存在
*
* @return
*/
private boolean hasIccCard() {
return telMgr.hasIccCard();
}
/**
* 是否漫遊:(在GSM用途下)
*
* @return
*/
private boolean isNetworkRoaming() {
return telMgr.isNetworkRoaming();
}
/**
* 獲取數據活動狀態<br/>
* DATA_ACTIVITY_IN 數據連接狀態:活動,正在接受數據<br/>
* DATA_ACTIVITY_OUT 數據連接狀態:活動,正在發送數據<br/>
* DATA_ACTIVITY_INOUT 數據連接狀態:活動,正在接受和發送數據<br/>
* DATA_ACTIVITY_NONE 數據連接狀態:活動,但無數據發送和接受<br/>
*
* @return
*/
private int getDataActivity() {
return telMgr.getDataActivity();
}
/**
* 獲取數據連接狀態<br/>
* DATA_CONNECTED 數據連接狀態:已連接<br/>
* DATA_CONNECTING 數據連接狀態:正在連接<br/>
* DATA_DISCONNECTED 數據連接狀態:斷開<br/>
* DATA_SUSPENDED 數據連接狀態:暫停<br/>
*
* @return
*/
private int getDataState() {
return telMgr.getDataState();
}
}
㈡ 雙卡 Android4.2,只裝了一個SIM卡,每次開機都提示「檢查SIM卡2」,如何使其不再提示
打開手機系統設置——SIM卡管理——選擇只開SIM卡1即可。
SIM卡是(Subscriber Identity Mole 客戶識別模塊)的縮寫,也稱為用戶身份識別卡、智能卡,GSM數字行動電話機必須裝上此卡方能使用。在電腦晶元上存儲了數字行動電話客戶的信息,加密的密鑰以及用戶的電話簿等內容,可供GSM網路客戶身份進行鑒別,並對客戶通話時的語音信息進行加密。
SIM卡功能:
存儲用戶相關數據
用戶PIN的操作和管理
用戶身份鑒權
SIM卡中的保密演算法及密鑰
㈢ 安卓手機問題 安卓手機有時候檢測不到SIM卡,那是為什麼
1、手機卡和手機制式不一致,比如手機是WCDMA(聯通),手機是電信的手機;
2、sim壞了或者手機壞了,可以去營業廳去看看;
3、SIM卡和手機的卡槽大小不一致,導致觸電沒有對上或者根本對不上,建議到營業廳換一張合適的卡。
㈣ android 怎麼檢查sim卡是否存在
獲取IMSI串號,Android SDK有相應的方法。 (1)如果為空就是沒插卡; (2)1~3三位是國家碼,460表示是中國的運營商,否則就是境外卡; (3)4~5兩位是運營碼:移動00、02、04、07,聯通GSM系統使用01、06,電信03、05、11,鐵通20;
㈤ 我的手機是安卓系統的 經常讀不出來SIM卡 求高手解決下
如您的手機無法讀卡或檢測不到SIM卡:
一、手機卡與手機的金屬觸點接觸不充分。
二、手機卡損壞。
三、所在位置是否為信號盲區或突然沒信號。
四、您可將卡嘗試放在其它手機進行試試,通過換卡和換機的方法來判斷是卡的問題、還是手機的問題。
㈥ 安卓手機無法識別SIM卡應該怎麼解決
安卓手機無法識別SIM卡處理方法:一、請根據手機型號確認使用SIM卡類型是否正確。不正確的SIM卡可能會損壞卡托和卡槽,甚至不能取出;二、請確認使用標準的SIM卡。請勿使用非標准SIM卡或自行剪卡,剪卡容易導致SIM卡無法識別或損壞手機,建議到營業廳換原裝的標准SIM卡;三、請確認卡片放置是否正確。SIM卡的缺口和卡槽是否對應;四、請確認SIM卡表面是否有臟污。如果SIM卡使用時間較長,可用酒精擦拭晶元表面,或到營業廳更換原裝的標准SIM卡。SIM
卡長時間使用,金屬表面容易被氧化而容易引起概率性不識卡;五、請勿在開機狀態下插拔 SIM 卡。插入 SIM
卡後請重啟手機嘗試;六、若問題仍然存在,請提前備份好數據,並攜帶購機發票前往售後服務點檢修。