Проверьте PIN-код SIM-карты

Итак, я исследовал эту тему и не получил много информации, хотя я прочитал несколько тем здесь, например Проверить PIN-код SIM-карты с помощью SDK Android и Запросить у пользователя PIN-код SIM-карты, но ни один из них на самом деле не отвечает на вопрос — приложение, которое я пытаюсь написать, основано на USSD и будет работать на устройствах с SIM-картами.

Я также прочитал ветку Использовать диалоговое окно PIN-кода системы в приложении Android, но Я не пытаюсь перезаписать ОС, я просто пытаюсь написать простое приложение, которое может проверять введенную строку на соответствие PIN-коду SIM-карты. В этой последней ветке пользователь (a.ch.) сказал, что попытка доступа или даже проверки PIN-кода SIM-карты не разрешена ОС (по крайней мере, без изменений, я полагаю). Можете ли вы, ребята, подтвердить или дать мне ссылку, в которой упоминается этот запрет?

Кроме того, можно ли, используя только USSD, проверить PIN-код? Например, я знаю только код MMI для смены PIN-кода: **04*Текущий PIN-код * Новый PIN-код * Новый PIN#. И это на самом деле возвращает сообщения об ошибке или успехе, и если я сделаю Текущий PIN-код = Новый PIN-код, я действительно могу определить, является ли введенный мной PIN-код правильным или нет, но я вижу это в текстовом сообщении. Возвращает ли смартфон эту информацию в атрибуте, который я могу проверить? Как я могу получить доступ к коду возврата?

Мне нужна вся помощь, которую я могу получить :)


person mauro1855    schedule 19.11.2014    source источник
comment
Это должно дать вам небольшой прогресс: stackoverflow.com/questions/25784141/   -  person IAmTheSquidward    schedule 19.11.2014
comment
На самом деле я это читал, но это не очень мне помогает, потому что я, честно говоря, не знаю, что делает внутри SupplyPin. Во всей документации, которую я читал о SupplyPin, упоминается блокировка или разблокировка телефона, так что я думаю, что это делает больше, чем я хочу. Что произойдет, если я введу неправильный PIN-код? Заблокирует ли он мой телефон? (я этого не хочу). Это работает только тогда, когда SIM_STATE_PIN_REQUIRED или SIM_STATE_PUK_REQUIRED верны? Я не получил ответа на этот вопрос во время чтения. В любом случае, дело не в том, блокировать мой телефон или нет... все, что я хотел бы, если это возможно, это проверка PIN-кода, вот и все.   -  person mauro1855    schedule 19.11.2014
comment
Хм. Думая об этом больше, честно говоря, я не уверен, что это возможно. Я нигде не могу найти API, который позволяет напрямую обращаться к ПИН-коду - все просто разблокировать SIM-карту или заменить ПИН-код.   -  person IAmTheSquidward    schedule 19.11.2014
comment
Да, я тоже прихожу к этому выводу. Конечно, телефон делает это, но я полагаю, в целях безопасности они даже не позволяют разработчику проверять PIN-код (я мог бы легко сделать приложение для перебора, чтобы проверить все PIN-коды и получить правильный). Как насчет получения ответа от USSD/MMI, это только возвращает текст, или вы не знаете, возвращает ли MMI для изменения PIN-код код, который позволяет мне отличить, что произошло?   -  person mauro1855    schedule 19.11.2014
comment
Я только что нашел это: stackoverflow.com/questions/19066677/ Я полагаю, что невозможно управлять ответами USSD в Android, верно?   -  person mauro1855    schedule 19.11.2014
comment
Правильный. Я прихожу к такому же выводу - из соображений безопасности все это недоступно для прямого звонка.   -  person IAmTheSquidward    schedule 19.11.2014