Меня недавно поразило, что в android нет стандартного метода получения кода страны (а я имею в виду + 1, + 49, + 39, а не США, GE, IT) вашего собственного телефона. TelephonyManager
позволяет получить кучу другой информации, включая двухбуквенный код страны вашего телефона (IN, US, IT ...) или даже вашу симку, но не префикс набора.
после тщательного поиска этой проблемы я обнаружил, что люди решили эту проблему, создав свои собственные базы данных соответствий префиксов country_code (т. Е. {IT, + 39} ...) (см. this ) это звучит безумно (и похоже на трение двух палочек вместе, чтобы сделать XD пожарным) и означало бы, что бесчисленные разработчики пишут каждую свою собственную базу данных по всему миру, чтобы решить проблему, которую должен решить TelephonyManager
.
Я нахожу это странно, что некоторые системные приложения, кажется, откуда-то знают этот код. Я, например, могу звонить контактам из-за границы, даже если я сохранил их номер без префикса, а WhatsApp также обычно может вывести правильный префикс.
Какой метод используется моим приложением контактов, чтобы вывести правильный приставка? у него есть своя собственная база данных, которой он не поделится с нами? есть ли причина для этого, как некая проблема безопасности, о которой я не знаю? Как WhatsApp делает это?
Я действительно заинтригован этим. может быть, я достаточно погуглил, и есть метод, но многие люди, похоже, решают его с помощью вышеупомянутого подхода к базе данных.
любая помощь в понимании этого будет принята с благодарностью