android 獲取sim卡運營商資訊

2021-08-08 21:25:29 字數 2582 閱讀 7116

telephonymanager tm = (telephonymanager)context.getsystemservice(context.telephony_service); telephonymanager 的使用 telephonymanager 提供裝置上獲取通訊服務資訊的入口,應用程式使用這個類的方法來獲取**的服務商或者狀態。程式也可以註冊乙個***來監聽**狀態的改變。 不需要直接例項化這個類,使用context.getsystemservice(context.telephony_service)來獲取這個類的例項。

注意:一些**資訊需要相應的許可權。 方法無效

getsimoperatorname() ?returns the service provider name (spn)。 // 獲取服務提供商名字,比如電信,聯通,移動 用下面的方法 第一種方法: 獲取手機的imsi碼,並判斷是中國移動/中國聯通/中國電信

telephonymanager telmanager = (telephonymanager) getsystemservice(context.telephony_service);

/** 獲取sim卡的imsi碼 * sim卡唯一標識:imsi 國際移動使用者識別碼(imsi:international mobile subscriber identification number)是區別移動使用者的標誌, * 儲存在sim卡中,可用於區別移動使用者的有效資訊。

imsi由mcc、mnc、msin組成,其中mcc為移動國家號碼,由3位數字組成, * 唯一地識別移動客戶所屬的國家,我國為460;mnc為網路id,由2位數字組成, * 用於識別移動客戶所歸屬的流動網路,中國移動為00,中國聯通為01,中國電信為03;

msin為移動客戶識別碼,採用等長11位數字構成。 *

唯一地識別國內gsm移動通訊網中移動客戶。所以要區分是移動還是聯通,只需取得sim卡中的mnc欄位即可 */

string imsi = telmanager.getsubscriberid();

if(imsi!=null)else if(imsi.startswith(「46001″))else if(imsi.startswith(」46003″)) }

第二種方法 telephonymanager telmanager = (telephonymanager) getsystemservice(context.telephony_service); string operator = telmanager.getsimoperator();

if(operator!=null)else if(operator.equals(」46001″))else if(operator.equals(「46003″)) }

在檔案androidmanifest.xml中新增許可權 其他方法具體使用方法請檢視api 文件telephonymanager中方法說明。

在檔案 androidmanifest.xml 中新增許可權

telephonymanager tel = (telephonymanager) context .getsystemservice(context.telephony_service);

string simoperator = tel.getsimoperator();

imsi共有15位,其結構如下: mcc+mnc+min mcc:mobile country code,移動國家碼,共3位,中國為460; mnc:mobile network code,流動網路碼,共2位,電信03,移動02,聯通gsm 01,乙個典型的imsi號碼為460030912121001; min共有10位,其結構如下: 09+m0m1m2m3+abcd 其中的m0m1m2m3和mdn號碼中的h0h1h2h3可存在對應關係,abcd四位為自由分配。 可以看出imsi在min號碼前加了mcc,可以區別出每個使用者的來自的國家,因此可以實現國際漫遊。在同乙個國家內,如果有多個cdma運營商,可以通過mnc來進行區別。

功能 說明

getcelllocation() 返回的單元格位置的裝置 access_coarse_location或access_fine_location

getdeviceid() 返回的imei / meid的裝置。 如果該裝置是gsm裝置 然後imei號將被退回,如果該裝置是乙個cdma裝置然後meid 將被退回 read_phone_state

getline1number() 返回裝置的**號碼(msisdn號碼) read_phone_state

getnetworkoperatorname() 返回註冊的網路運營商的名字

getnetworkoperator() 返回的mcc +跨國公司的註冊網路運營商

getnetworkcountryiso() 返回註冊的網路運營商的國家**

getsimcountryiso() 返回sim卡運營商的國家** read_phone_state

getsimoperator() 返回sim卡運營商的單個核細胞數+冶 read_phone_state

getsimoperatorname() 返回sim卡運營商的名字 read_phone_state

getsimserialnumber() 返回sim卡的序列號 read_phone_state

getnetworktype() 返回網路裝置可用的型別。

android 獲取sim卡資訊

sim的provider是iccprovider。既然是provider,就和操作contact的provider類似的,只是有一些微小差別。iccprovider的uri是content icc and,可以通過這個uri來操作sim卡。當然,使用時需要轉換為android的uri物件。andro...

雙SIM卡,Android監聽SIM卡狀態

最近在搞乙個專案,其中有一塊關於雙sim卡狀態監聽,在這一塊上沒有經驗,在網上找了很多例子,但都是只是監聽sim卡改變狀態,而我要的是不但要監聽sim狀態改變,而且還要知道具體是哪張sim卡狀態改變,度娘找尋好久後,還是沒有結果,於是便自行來研究下。首先,sim卡狀態改變的action是androi...

工具類 獲取手機sim卡的運營商

加入許可權 1package com.example.textphone 23 import android.content.context 4import android.telephony.telephonymanager 56 public class simcardinfo 2223 24 ...