Доступ к SIM-карте с помощью приложения для Android? - PullRequest
13 голосов
/ 03 марта 2010

Интересно, возможно ли получить доступ к SIM-карте с помощью приложения для Android

Ответы [ 6 ]

8 голосов
/ 03 марта 2010

Вы можете получить IMEI, как это (но это то, что вы хотите?), Просто пример:

mTelephonyMgr = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
String imei = mTelephonyMgr.getDeviceId();

Аналогично, у вас есть

String getSimCountryIso():

Возвращает код страны ISO, эквивалентный коду страны поставщика SIM-карты.

String getSimOperator(): Возвращает MCC + MNC (мобильный код страны + код мобильной сети) поставщика SIM-карты.

String getSimOperatorName(): Возвращает имя поставщика услуг (SPN).

String getSimSerialNumber(): Возвращает серийный номер SIM-карты, если применимо.

int getSimState(): Возвращает константу, указывающую состояние SIM-карты устройства.

String getSubscriberId(): Возвращает уникальный идентификатор абонента, например, IMSI для телефона GSM.

Подробнее смотрите на этой странице

и не забудьте добавить правильное разрешение в манифест (getDeviceId() => Requires Permission: READ_PHONE_STATE)

5 голосов
/ 03 февраля 2012

Без SmartCardAPI от SEEK (комплект для оценки защищенных элементов) это невозможно. В большинстве телефонов Android, доступных на рынке, SmartCardAPI не реализован. Так что либо вы создаете свой собственный Android после интеграции кода SmartCardAPI, либо ждете, когда появится какой-нибудь приличный телефон с этой функцией. Вы можете найти файл патча для реализации здесь .

4 голосов
/ 29 декабря 2010

SmartCard API для Android может быть интересен для вас: http://code.google.com/p/seek-for-android/

2 голосов
/ 18 июля 2012

Доступ к SIM-карте возможен только для системных приложений:

Низкоуровневый доступ к SIM-карте недоступен сторонним приложениям. ОС обрабатывает все коммуникации с SIM-картой, включая доступ на личную информацию (контакты) в памяти SIM-карты. Приложения также не могут получить доступ к AT-командам, так как они управляются исключительно на уровне радиоинтерфейса (RIL). РИЛ не дает API высокого уровня для этих команд.

источник: https://source.android.com/security/overview/app-security.html#sim-card-access

0 голосов
/ 17 июля 2017

Вы должны использовать IccFileHandler во внутреннем API Android, используя отражение Java. Он расположен у каркаса / базы / телефонии

0 голосов
/ 28 февраля 2014

SEEK является наиболее полезным, но большинство телефонов Android не поддерживают это. Так что, может быть, мы можем оценить SIM-карту другим способом, например, прочитать SMS (на SIM-карте).

...