【问题标题】:Block incoming calls vs a system service阻止来电与系统服务
【发布时间】:2015-10-26 05:05:41
【问题描述】:

我编写了一个应用程序,它可以在接到电话时挂断电话。为此,我正在使用电话管理器,并且需要此权限: android.permission.MODIFY_PHONE_STATE

但是,此权限使我的应用程序成为系统应用程序,因此我以后无法将其放置在 Play 商店中。 但是我在 Play 商店中看到了成功阻止来电的应用程序(例如“呼叫黑名单”)。 我想知道,有谁知道这些应用程序使用什么 API 来阻止来电并允许这些应用程序进入 Play 商店?

谢谢。

【问题讨论】:

  • 我认为它的 API 8,不确定
  • 我没有要求 API 级别。我正在寻找我可以使用的 Android API/类。

标签: android telephonymanager system-services


【解决方案1】:

你需要使用 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

【讨论】:

  • 阻止通话怎么办?我的问题是挂断电话,我希望我的应用不是系统应用。
  • 创建服务,在后台和您的 CALL_STATE_RINGING 中编写此代码。参考:stackoverflow.com/questions/18065144/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-02
  • 1970-01-01
相关资源
最近更新 更多