2017-02-04 93 views
1

在我的Android應用程序中,我想檢測設備中是否插入了新SIM卡(除了以前的SIM卡之外的任何SIM卡)。在設備中插入新SIM卡時檢測

我該怎麼做?

+0

@ maytham-ɯɐɥʇʎɐɯ由於您鏈接的重複問題已被關閉爲「不是問題」,因此很可能會被刪除,所以我認爲將此問題作爲該問題的重複來解決是不合理的。 –

+2

@DavidWasser僅供參考,如果問題是重複的目標,則不能刪除。 –

回答

2

你可以聽: android.intent.action.SIM_STATE_CHANGED

此廣播將觸發每次用戶插入SIM卡。 你必須處理的事情,你有給演員想要的方式:

意圖:與演員android.intent.action.SIM_STATE_CHANGED:SS =鎖定,原因= PIN 意圖:android.intent.action.SIM_STATE_CHANGED附加費用:ss = READY,reason = null Intent:android.intent.action.SIM_STATE_CHANGED with extras:ss = IMSI,reason = null Intent:android.intent.action.SIM_STATE_CHANGED with extras:ss = LOADED,reason = null

然後發現是否SIM卡是新的檢查TelephonyManager.getSubscriberId()。 SubId表示SIM卡在首次插入給定設備時的入口。

希望它有幫助。

+0

對於每個SIM卡,「訂戶ID」是否是唯一的? –

+0

是的。它與SIM卡本身提供的信息相關聯。 –

+0

是的。每次在SIM托盤上插入新SIM卡時,都會生成一個新的子ID。 請不要混淆基於雙SIM卡的SIM托盤位置爲0或1的slotId。 –