2015-10-26 6 views
2

Я написал приложение, которое имеет возможность подвешивать телефонные звонки, когда они получены. Для этого я использую диспетчер телефонии, и это разрешение требуется: android.permission.MODIFY_PHONE_STATEБлокировать входящие вызовы и системную службу

Однако это разрешение делает мое приложение системным приложением, и поэтому я не смогу его поместить в играть в магазин позже. Но я видел приложения в магазине воспроизведения, которые успешно блокируют входящие звонки (например, «Черный список вызовов»). Интересно, кто-нибудь знает, какой API эти приложения используют, чтобы заблокировать входящий звонок, а также разрешить эти приложения в магазине воспроизведения?

Спасибо.

+0

я думаю, что его API 8, не уверен, что –

+0

я не просил уровень API. Я ищу API/классы Android, которые я могу использовать для этого. – user2630165

ответ

0

Вам необходимо использовать класс Broadcastreceiver. , а также нужно добавить эту строку в манифест, чтобы получить пропуск.

<uses-permission android:name="android.permission.READ_PHONE_STATE"> 

следует за этим. http://www.tutorialforandroid.com/2009/01/get-phone-state-when-someone-is-calling_22.html

Удостоверьтесь, что TelephonyManager.CALL_STATE_RINGING - это только входящий звонок. Вы не можете определить состояние исходящего вызова, будет ли он отвечать или отвечать. для исходящего есть только два состояния:

TelephonyManager.CALL_STATE_IDLE 
& 
TelephonyManager.CALL_STATE_OFFHOOK 
+0

Как насчет блокировки вызова? Моя проблема заключается в зависании вызова, и я хочу, чтобы мое приложение не было системным приложением. – user2630165

+0

создайте службу, которая в фоновом режиме и в вашем CALL_STATE_RINGING напишите этот код. ref: http://stackoverflow.com/questions/18065144/end-call-in-android-programmatically – dawncode

 Смежные вопросы

  • Нет связанных вопросов^_^