Широковещательный приемник Android O CALL_STATE не срабатывает

У меня есть служба переднего плана, и я регистрирую там приемник CALL_STATE. На pre Android O работает нормально. Другой ресивер в сервисе тоже работает нормально. Я удалил фильтр намерений из манифеста. У меня есть все правильные разрешения.

Есть ли что-нибудь еще, что я должен делать?

В сервисе...

private static final String ACTION="android.intent.action.PHONE_STATE";
 registerReceiver(mCallReceiver , new IntentFilter(ACTION));

person Mark Sheekey    schedule 25.08.2017    source источник
comment
Просто чтобы подтвердить, у вас есть разрешение на выполнение для READ_PHONE_STATE, а не только разрешение на манифест?   -  person CommonsWare    schedule 25.08.2017
comment
Да......   -  person Mark Sheekey    schedule 25.08.2017
comment
...Я только что перепроверил и, честно говоря, думал, что у меня есть необходимое разрешение. Кажется, я этого не делал, и теперь все работает нормально.   -  person Mark Sheekey    schedule 25.08.2017
comment
Хорошо, рад видеть, что это работает!   -  person CommonsWare    schedule 25.08.2017
comment
На самом деле проблема заключалась в том, что я просил разрешения на ЗВОНОК НА ТЕЛЕФОН, я думал, что это также дало мне доступ к READ_PHONE_STATE. Я изменил его, чтобы запросить READ_PHONE_STATE — текст разрешений, представленный пользователю, тот же, но теперь у меня есть все необходимые разрешения.   -  person Mark Sheekey    schedule 25.08.2017
comment
Ах, хорошо, я неправильно понял. Возможно, вы захотите преобразовать этот последний комментарий в ответ, чтобы помочь другим, кто сталкивается с этим вопросом.   -  person CommonsWare    schedule 25.08.2017


Ответы (1)


На самом деле «проблема» заключалась в том, что я просил разрешения «ПОЗВОНИТЬ НА ТЕЛЕФОН», я думал, что это также дало мне доступ к READ_PHONE_STATE. Я изменил его, чтобы запросить «READ_PHONE_STATE» — текст разрешений, представленный пользователю, тот же, но теперь у меня есть все необходимые разрешения.

person Mark Sheekey    schedule 26.08.2017