真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

simandroid的簡單介紹

Android 手機(jī)讀取SIM卡信息

手機(jī)和 wifi 已經(jīng)改變了人們的生活方式,成為生活的必需品。手機(jī)號碼和寬帶賬號成為運(yùn)營商相互競爭的重要一環(huán),雙卡雙待的手機(jī)需求也逐漸增大,大多數(shù)手機(jī)廠商將主打手機(jī)改為雙卡雙待全網(wǎng)通,而運(yùn)營商在占領(lǐng)主SIM卡后,對SIM卡2的欲望越來越大,獲取SIM卡2的信息的需求也變大,只有知己知彼,才能占得先機(jī)。

成都創(chuàng)新互聯(lián)主要從事做網(wǎng)站、網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)義烏,十載網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):028-86922220

這里簡單介紹一下 Android 手機(jī)如何讀取 Sim 卡信息

可以通過 ContentProvider 進(jìn)行查詢

使用 SubscriptionManager 類進(jìn)行讀取信息

通過 SubscriptionInfo 的實(shí)例進(jìn)行讀取信息,對應(yīng)的是 Siminfo 的表字段,下面為該類源碼:

該類沒有常用的手機(jī)IMEI值和IMSI值,這個(gè)值可以通過 TelephonyManager 進(jìn)行讀取,不過需要通過反射,具體可見下方關(guān)于 TelephonyManager 的介紹

使用 TelephonyManager 讀取SIM卡信息:

讀取副卡信息大多只需要1個(gè)參數(shù),slotId 或者 subId,源碼方法如下(我們主要關(guān)心的是IMEI和IMSI,主要看getDeviceId和getSubscriberId方法):

可以看到源碼中的這些方法均加了 @hide 的參數(shù),無法直接調(diào)用,這里就需要用到反射:

現(xiàn)在就可以通過反射進(jìn)行調(diào)用方法讀取數(shù)據(jù)了

特別注意:

如何在Android開發(fā)中獲取SIM卡信息

android 獲取sim卡運(yùn)營商信息

TelephonyManager tm = (TelephonyManager)Context.getSystemService(Context.TELEPHONY_SERVICE); TelephonyManager 的使用 TelephonyManager 提供設(shè)備上獲取通訊服務(wù)信息的入口,應(yīng)用程序使用這個(gè)類的方法來獲取電話的服務(wù)商或者狀態(tài)。程序也可以注冊一個(gè)監(jiān)聽器來監(jiān)聽電話狀態(tài)的改變。 不需要直接實(shí)例化這個(gè)類,使用Context.getSystemService(Context.TELEPHONY_SERVICE)來獲取這個(gè)類的實(shí)例。

注意:一些電話信息需要相應(yīng)的權(quán)限。 方法無效

getSimOperatorName() Returns the Service Provider Name (SPN). // 獲取服務(wù)提供商名字,比如電信,聯(lián)通,移動(dòng) 用下面的方法 第一種方法: 獲取手機(jī)的IMSI碼,并判斷是中國移動(dòng)/中國聯(lián)通/中國電信

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

/** 獲取SIM卡的IMSI碼 * SIM卡唯一標(biāo)識:IMSI 國際移動(dòng)用戶識別碼(IMSI:International Mobile Subscriber Identification Number)是區(qū)別移動(dòng)用戶的標(biāo)志, * 儲(chǔ)存在SIM卡中,可用于區(qū)別移動(dòng)用戶的有效信息。

IMSI由MCC、MNC、MSIN組成,其中MCC為移動(dòng)國家號碼,由3位數(shù)字組成, * 唯一地識別移動(dòng)客戶所屬的國家,我國為460;MNC為網(wǎng)絡(luò)id,由2位數(shù)字組成, * 用于識別移動(dòng)客戶所歸屬的移動(dòng)網(wǎng)絡(luò),中國移動(dòng)為00,中國聯(lián)通為01,中國電信為03;

MSIN為移動(dòng)客戶識別碼,采用等長11位數(shù)字構(gòu)成。 *

唯一地識別國內(nèi)GSM移動(dòng)通信網(wǎng)中移動(dòng)客戶。所以要區(qū)分是移動(dòng)還是聯(lián)通,只需取得SIM卡中的MNC字段即可 */

String imsi = telManager.getSubscriberId();

if(imsi!=null){ if(imsi.startsWith(“46000″) || imsi.startsWith(“46002″))

{//因?yàn)橐苿?dòng)網(wǎng)絡(luò)編號46000下的IMSI已經(jīng)用完,所以虛擬了一個(gè)46002編號,134/159號段使用了此編號 //中國移動(dòng)

}else if(imsi.startsWith(“46001″)){

//中國聯(lián)通

}else if(imsi.startsWith(“46003″)){

//中國電信

} }

第二種方法 TelephonyManager telManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); String operator = telManager.getSimOperator();

if(operator!=null){ if(operator.equals(“46000″) || operator.equals(“46002″)|| operator.equals(“46007″)){

//中國移動(dòng)

}else if(operator.equals(“46001″)){

//中國聯(lián)通

}else if(operator.equals(“46003″)){

//中國電信

} }

在文件AndroidManifest.xml中添加權(quán)限 其他方法具體使用方法請查看API 文檔TelephonyManager中方法說明。

在文件 AndroidManifest.xml 中添加權(quán)限 uses-permission android:name="android.permission.READ_PHONE_STATE"/

TelephonyManager tel = (TelephonyManager) context .getSystemService(Context.TELEPHONY_SERVICE);

String simOperator = tel.getSimOperator();

IMSI共有15位,其結(jié)構(gòu)如下: MCC+MNC+MIN MCC:Mobile Country Code,移動(dòng)國家碼,共3位,中國為460; MNC:Mobile Network Code,移動(dòng)網(wǎng)絡(luò)碼,共2位,電信03,移動(dòng)02,聯(lián)通GSM 01,一個(gè)典型的IMSI號碼為460030912121001; MIN共有10位,其結(jié)構(gòu)如下: 09+M0M1M2M3+ABCD 其中的M0M1M2M3和MDN號碼中的H0H1H2H3可存在對應(yīng)關(guān)系,ABCD四位為自由分配。 可以看出IMSI在MIN號碼前加了MCC,可以區(qū)別出每個(gè)用戶的來自的國家,因此可以實(shí)現(xiàn)國際漫游。在同一個(gè)國家內(nèi),如果有多個(gè)CDMA運(yùn)營商,可以通過MNC來進(jìn)行區(qū)別.

功能 說明

getCellLocation() 返回的單元格位置的裝置 ACCESS_COARSE_LOCATION或ACCESS_FINE_LOCATION

getDeviceId() 返回的IMEI / MEID的設(shè)備。 如果該設(shè)備是GSM設(shè)備 然后IMEI號將被退回,如果該設(shè)備是一個(gè)CDMA設(shè)備然后MEID 將被退回 READ_PHONE_STATE

getLine1Number() 返回設(shè)備的電話號碼(MSISDN號碼) READ_PHONE_STATE

getNetworkOperatorName() 返回注冊的網(wǎng)絡(luò)運(yùn)營商的名字

getNetworkOperator() 返回的MCC +跨國公司的注冊網(wǎng)絡(luò)運(yùn)營商

getNetworkCountryIso() 返回注冊的網(wǎng)絡(luò)運(yùn)營商的國家代碼

getSimCountryIso() 返回SIM卡運(yùn)營商的國家代碼 READ_PHONE_STATE

getSimOperator() 返回SIM卡運(yùn)營商的單個(gè)核細(xì)胞數(shù)+冶 READ_PHONE_STATE

getSimOperatorName() 返回SIM卡運(yùn)營商的名字 READ_PHONE_STATE

getSimSerialNumber() 返回SIM卡的序列號 READ_PHONE_STATE

getNetworkType() 返回網(wǎng)絡(luò)設(shè)備可用的類型。 這將是 下列其中一個(gè)值:

TelephonyManager.NETWORK_TYPE_UNKNOWN TelephonyManager.NETWORK_TYPE_GPRS TelephonyManager.NETWORK_TYPE_EDGE TelephonyManager.NETWORK_TYPE_UMTS READ_PHONE_STATE getPhoneType() 返回設(shè)備的類型。 這將是以下值之一: TelephonyManager.PHONE_TYPE_NONE TelephonyManager.PHONE_TYPE_GSM TelephonyManager.PHONE_TYPE_CDMA READ_PHONE_STATE getSubscriberId() 返回用戶識別碼(的IMSI)的設(shè)備 READ_PHONE_STATE

getNeighboringCellInfo() 返回NeighboringCellInfo類代表名單 相鄰小區(qū)的信息,如果可用,否則將 返回null ACCESS_COARSE_UPDATES

安卓sim卡密碼怎么設(shè)置

修改sim卡密碼方法:

1、帶著相關(guān)證件及用戶卡(當(dāng)初買號的時(shí)候帶小卡的那個(gè))去移動(dòng)公司營業(yè)廳。

2、可以撥10086按1再按3重置密碼。需要輸入身份證號信息,驗(yàn)證才能修改密碼。

3、sim卡密碼一般都是指PIN碼(PIN1),就是SIM卡的個(gè)人識別密碼。

4、如果未經(jīng)使用者修改,運(yùn)營商設(shè)置的原始密碼是1234或0000。

5、如果啟用了開機(jī)PIN碼,那么每次開機(jī)后就要輸入4位數(shù)PIN碼,PIN碼是可以修改的,用來保護(hù)自己的SIM卡不被他人使用。

擴(kuò)展

數(shù)字移動(dòng)電話手機(jī)與模擬移動(dòng)電話手機(jī)相比較,在結(jié)構(gòu)上多了一塊SIM卡。SIM卡叫用戶識別卡。它實(shí)際上是一張內(nèi)含大規(guī)模集成電路的智能卡片,用來登記用戶的重要數(shù)據(jù)和信息。

SIM卡存儲(chǔ)的數(shù)據(jù)可分為四類:第一類是固定存放的數(shù)據(jù)。這類數(shù)據(jù)在移動(dòng)電話機(jī)被出售之前由SIM卡中心寫入,包括國際移動(dòng)用戶識別號(IMSI)、鑒權(quán)密鑰(KI)、鑒權(quán)和加密算法等等。第二類是暫時(shí)存放的有關(guān)網(wǎng)絡(luò)的數(shù)據(jù)。如位置區(qū)域識別碼(LAI)、移動(dòng)用戶暫時(shí)識別碼(TMSI)、禁止接入的公共電話網(wǎng)代碼等。第三類是相關(guān)的業(yè)務(wù)代碼,如個(gè)人識別碼(PIN)、解鎖碼(PUK)、計(jì)費(fèi)費(fèi)率等。第四類是電話號碼簿,是手機(jī)用戶隨時(shí)輸入的電話號碼。用戶全部資料幾乎都存儲(chǔ)在SIM卡內(nèi),因此SIM卡又稱為用戶資料識別卡。

SIM卡最重要的一項(xiàng)功能是進(jìn)行鑒權(quán)和加密。當(dāng)用戶移動(dòng)到新的區(qū)域撥打或接聽電話時(shí),交換機(jī)都要對用戶進(jìn)行鑒權(quán),以確定是否為合法用戶。這時(shí),SIM卡和交換機(jī)同時(shí)利用鑒權(quán)算法,對鑒權(quán)密鑰和8位隨機(jī)數(shù)字進(jìn)行計(jì)算,計(jì)算結(jié)果相同的,SIM卡被承認(rèn),否則,SIM卡被拒絕,用戶無法進(jìn)行呼叫。SIM卡還可利用加密算法,對話音進(jìn)行加密,防止竊聽。

數(shù)字移動(dòng)電話手機(jī)只有裝上SIM卡后才能使用,否則只是一部“裸機(jī)”,只能撥通網(wǎng)絡(luò)中心許可的幾個(gè)緊急號碼,如110、119等。當(dāng)SIM卡被插入任何一部符合數(shù)字移動(dòng)電話系統(tǒng)規(guī)范的移動(dòng)電話手機(jī)時(shí),就可接打電話。通話費(fèi)自動(dòng)記入持卡人的帳單上,而與移動(dòng)電話手機(jī)無關(guān)。

為了防止手機(jī)丟失后被盜用,每張SIM卡都可設(shè)置一個(gè)密碼,即個(gè)人識別碼(PIN碼),用來對SIM上鎖。它是由用戶自己設(shè)定的,且可以隨時(shí)更改。只有當(dāng)用戶輸入正確的密碼后,手機(jī)才能進(jìn)入正常使用狀態(tài)。連續(xù)三次輸入錯(cuò)誤的個(gè)人密碼,手機(jī)便會(huì)將SIM卡鎖住。要解鎖,必須使用解鎖碼。如果你忘了這個(gè)號碼,或SIM卡丟失,則需帶齊開戶資料,攜機(jī)到當(dāng)?shù)氐臒o線營業(yè)廳解鎖或掛失。

安卓系統(tǒng)的手機(jī)怎樣插SIM卡

可參考vivo內(nèi)存卡與SIM卡的安裝取出方法:進(jìn)入手機(jī)設(shè)置--系統(tǒng)管理/我的設(shè)備--客戶服務(wù)--使用手冊--手機(jī)概覽與快速入門--安裝與準(zhǔn)備中了解內(nèi)存卡與SIM卡的安裝取出方法。(部分機(jī)型進(jìn)入設(shè)置--更多設(shè)置--使用手冊/說明書--手機(jī)概覽與快速入門--安裝與準(zhǔn)備中了解)

android重新獲取sim卡

具體方法如下:

主要功能代碼如下:

1234567891011121314151617181920212223242526272829303132333435363738394041

/**?* 獲取SIM卡運(yùn)營商?*?* @param context?* @return?*/public static String getOperators(Context context) {?TelephonyManager tm = (TelephonyManager) context??.getSystemService(Context.TELEPHONY_SERVICE);?String operator = null;?String IMSI = tm.getSubscriberId();?if (IMSI == null || IMSI.equals("")) {?return operator;?}?if (IMSI.startsWith("46000") || IMSI.startsWith("46002")) {?operator = "中國移動(dòng)";?} else if (IMSI.startsWith("46001")) {?operator = "中國聯(lián)通";?} else if (IMSI.startsWith("46003")) {?operator = "中國電信";?}?return operator;}?/**?* 手機(jī)型號?*?* @return?*/public static String getPhoneModel() {?return android.os.Build.MODEL;}?/**?* 系統(tǒng)版本?*?* @return?*/public static String getSystemVersion() {?return android.os.Build.VERSION.RELEASE;}

權(quán)限代碼如下:

1

uses-permission android:name="android.permission.READ_PHONE_STATE"/

希望本文所述對大家的Android程序設(shè)計(jì)有所幫助

您可能感興趣的文章:

Android4.X中SIM卡信息初始化過程詳解

Android獲取手機(jī)通訊錄、sim卡聯(lián)系人及調(diào)用撥號界面方法

android監(jiān)控sim卡有沒有服務(wù)示例(sim卡管理)

Android讀取用戶號碼,手機(jī)串號,SIM卡序列號的實(shí)現(xiàn)代碼

Android 判斷SIM卡屬于哪個(gè)移動(dòng)運(yùn)營商的實(shí)現(xiàn)代碼

Android8.1 源碼修改之插入SIM卡默認(rèn)啟用Volte功能

android 判斷是否有sim卡及運(yùn)營商

Android作為一個(gè)智能手機(jī)操作系統(tǒng),SDK對SIM卡的讀取有相關(guān)的操作,都封裝在framework中

和SIM卡相關(guān)的類主要有以下幾個(gè):

IccConstants? (里面記錄很多的常量,主要用來存儲(chǔ)某個(gè)字段在SIM卡上的位置是什么,比如ADN(sim卡上的電話本),6F3A,? FDN(固定拔號 6F3B))IccCardStatus(記錄SIM卡的狀態(tài),如ABSENT, READY,UNKNOW,ETC)

IccFileHandler(這個(gè)是用來SIM卡上的RECORD讀完后,要處理什么事情)

IccRecords(SIM卡上的文件內(nèi)容,每一個(gè)字段,一個(gè)RECORD)

IccProvider(手機(jī)上的數(shù)據(jù)庫,讀出來的數(shù)據(jù)全放這)

IccUtils(里面一般全是靜態(tài)方法,主要用來碼制轉(zhuǎn)換)

IccSmsInterfaceManager,IccCard(這個(gè)是一個(gè)抽象類,會(huì)根據(jù)上面手機(jī)的制式,自動(dòng)起一個(gè)SIMCARD 或者RUIMCARD)

以GSM為例說下讀取的過程:

根據(jù)SIM卡的類型,進(jìn)入SIMRecords, 開始探測SIM卡的狀態(tài),因?yàn)?,有些SIM卡會(huì)設(shè)置有PIN碼,如果SIM卡有PIN碼的話,手機(jī)會(huì)彈出輸入PIN碼的框,等待用戶進(jìn)行解碼,注意,這個(gè)時(shí)候,如果PIN碼如果沒有解的話,手機(jī)是不會(huì)去讀SIM卡的,因?yàn)椋xSIM卡時(shí),必須通過PIN才能去讀,只有一些比較特殊的字段,可以不用,比如ECC 也就是緊急呼叫號碼(一般存在卡上,運(yùn)營商定制的)。同時(shí),這PIN碼未解的情況,手機(jī)中SIM卡的狀態(tài)也是PIN_REQURIED_BLOCK。

當(dāng)解完P(guān)IN碼,或是手機(jī)沒有設(shè)置PIN碼,這時(shí),手機(jī)的會(huì)探測到SIM是READY的狀態(tài),手機(jī)只有檢測到SIM READY,才會(huì)發(fā)出讀卡的請求。

手機(jī)開始讀卡第一個(gè)是IMSI(International Mobile SubscriberIdentification Number)主要用來查找運(yùn)營商的網(wǎng)絡(luò),里面有MCC,MNC,ICCID(Integrate circuit card identity)唯一標(biāo)識一個(gè)移動(dòng)用戶。

當(dāng)?shù)蛯拥腗ODEM讀到字段結(jié)果后,會(huì)有一個(gè)返回結(jié)果,由于發(fā)送讀取請求時(shí),有一個(gè)事件信息EVENT_GET_BINARY_SIZE_DONE,當(dāng)有返回時(shí),會(huì)直接交給IccFileHandler,然后由IccFileHandler轉(zhuǎn)發(fā)給SIMRecords,最后進(jìn)行處理該字段讀完后應(yīng)該執(zhí)行的操作。


網(wǎng)站標(biāo)題:simandroid的簡單介紹
文章出自:http://weahome.cn/article/hoiiss.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部