最近在搞乙個專案,其中有一塊關於雙sim卡狀態監聽,在這一塊上沒有經驗,在網上找了很多例子,但都是只是監聽sim卡改變狀態,而我要的是不但要監聽sim狀態改變,而且還要知道具體是哪張sim卡狀態改變,度娘找尋好久後,還是沒有結果,於是便自行來研究下。
首先,sim卡狀態改變的action是android.intent.action.sim_state_changed,需要在manifest.xml進行註冊。
當receiver收到這個action廣播時:
@override
public void onreceive(context context, intent intent)
}private void setsiminfobychange(context context,intent intent) else if (stateextra.equals("ready") || //卡正常狀態 即可以讀出卡資訊
stateextra.equals("imsi") ||
stateextra.equals("loaded") )else if(stateextra.equals("locked") || //卡被鎖狀態
stateextra.equals("not_ready") ||
stateextra.equals("pin")||
stateextra.equals("puk"))
}log.d(tag, " #######stateextra:"+stateextra+"+++++siminfo:"+siminfo);
log.d(tag, " #######soltid:"+soltid);
}
通過這個intent可以找到相應的sim及卡槽資訊,同時
string stateextra = intent.getstringextra(icccardconstants.intent_key_icc_state);這個方法可以獲取sim卡改變的狀態情況,在icccardconstants的api中可以發現有這些狀態:
通過這個方法就可以將卡槽與廣播進行相對應起來,這樣就能區做我們想要做的事情了。剛開始寫部落格,寫的有點亂,勿怪勿怪!
android 獲取sim卡資訊
sim的provider是iccprovider。既然是provider,就和操作contact的provider類似的,只是有一些微小差別。iccprovider的uri是content icc and,可以通過這個uri來操作sim卡。當然,使用時需要轉換為android的uri物件。andro...
90 s1 sim卡狀態監控
監控sim卡,sim卡沒有繫結就阻止下一步的操作 package com.ldw.safe.activity import android.content.intent import android.content.sharedpreferences import android.os.bundle...
android 獲取sim卡運營商資訊
telephonymanager tm telephonymanager context.getsystemservice context.telephony service telephonymanager 的使用 telephonymanager 提供裝置上獲取通訊服務資訊的入口,應用程式使用這...