2017-02-04 3 views
1

В моем приложении для Android я хочу определить, вставлен ли новый сим (любой сим, отличный от предыдущего сима) в устройстве.Обнаружить, когда в устройство вставлен новый симулятор

Как я могу это сделать?

+0

@ maytham-ɯɐɥʇʎɐɯ, так как дублированный вопрос, который вы связали, был закрыт как «не вопрос», скорее всего его удалит, поэтому я не думаю, что разумно закрыть этот вопрос как дубликат этого. –

+2

@DavidWasser Просто FYI, если вопрос является дубликат цели, его нельзя удалить. –

ответ

2

Вы можете слушать: android.intent.action.SIM_STATE_CHANGED

Эта трансляция будет вызывать пользователя каждый раз вставляет SIM-карту. Вы должны обращаться с вещами, как, как вы хотели с заданными статистов:

Намерение: android.intent.action.SIM_STATE_CHANGED с массовкой: сс = LOCKED, причина = PIN Intent: android.intent.action.SIM_STATE_CHANGED с дополнениями: ss = READY, reason = null Цель: android.intent.action.SIM_STATE_CHANGED с дополнительными функциями: ss = IMSI, reason = null Цель: android.intent.action.SIM_STATE_CHANGED с дополнительными функциями: ss = LOADED, reason = null

И затем выясните, установлена ​​ли новая карта SIM-карты, если TelephonyManager.getSubscriberId(). SubId означает запись, которую SIM-карта имела к тому времени, когда она была впервые вставлена ​​на данное устройство.

Надеюсь, это поможет.

+0

Является ли 'абонентский идентификатор 'уникальным для каждого сима? –

+0

Да, это так. Он связан с информацией, предоставленной в самой SIM-карте. –

+0

Да, это так. Каждый раз, когда на SIM-карту вставлена ​​новая SIM-карта, создается новый subId. Пожалуйста, не делайте путаницы с slotId, который равен 0 или 1 на основе положения лотка SIM для двойной SIM-карты. –

Смежные вопросы