Phone.getDevicePhoneNumber (true) считывает номер с SIM-карты.Проблема в том, что номер не всегда на SIM-карте.Я также видел случаи, когда на SIM-карте был указан неправильный номер.
Не существует гарантированного способа программного получения номера.Что я сделал в прошлом, так это предоставил пользователю номер SIM-карты и попросил его исправить / подтвердить его.