На Android как узнать номер телефона при входящем звонке? - PullRequest
0 голосов
/ 16 января 2012

Я пытаюсь получить номер входящего звонка.Я искал и нашел этот пост , но он устарел, и я не могу заставить его работать с последней версией Google Android (4.0.3).

После прочтения другого постакажется, что самый простой (и, возможно, единственный) способ инициировать входящий вызов - это установить BroadcastReceiver, который реагирует на основе PhoneStateListener, упомянутого: Джон Феминелла .

КогдаЯ настроил это так же, как это отображается в сообщении jakob , отладчик никогда не падает в метод onCallStateChanged () , и я внес изменения, которые были упомянуты в комментарияхв посте jakob .. (onCallStateChange " d " ())

Однако мне все еще не повезло, и я решил, что этот метод захватавходящий_номер устарел и не работает в ICS (4.0.3).Существуют ли другие традиционные или полу-традиционные способы для достижения этой цели?

Ответы [ 2 ]

2 голосов
/ 18 января 2012

Чтобы это работало в более новых версиях Android (4.0.3 и т. Д.), Вам необходимо убедиться, что minSdkVersion равно 3 .. Проблема с моим кодомбыло то, что моя minSdkVersion была 7 ..

Надеюсь, это поможет другим, пытающимся понять это!:)

0 голосов
/ 16 января 2012

Что якоб не упоминает, так это то, что вы должны зарегистрировать PhoneStateListener перед его использованием.Поместите следующий код куда-нибудь, прежде чем вы захотите перехватить номер входящих вызовов (например, в методе onCreate вашей активности):

TelephonyManager manager=(TelephonyManager)getSystemService(TELEPHONY_SERVICE);
manager.listen(new CustomPhoneStateListener(), PhoneStateListener.LISTEN_CALL_STATE);

Затем должен быть запущен метод onCallStateChanged.Я не знал, что этот метод устарел в 4.0.3.Но я думаю, что в качестве быстрого решения все должно быть в порядке.

Надеюсь, что вам помогли.Приветствия

...