- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一个 BroadcastReceiver
捕捉 ACTION_NEW_OUTGOING_CALL
事件。
在 onReceive()
方法中,我将提供的号码发送到新的 ListActivity
,用户可以从列表中选择各种新的目的地号码。
当用户从列表中选择一个新号码时,我将在 URI 字段中使用新号码启动一个新的 ACTION_CALL
Intent 。或者,结果可能是原始数字。
无论新号码是什么,都必须立即调用,不做任何处理。
我怎样才能让 BroadcastReceiver
知道不应再次处理这个结果数?
最佳答案
我通过在我的 BroadcastReceiver
中实现“绕过前缀”解决了这个问题。如果我的客户端应用程序想要直接调用一个号码,它只需在调用 ACTION_CALL
Intent 之前添加前缀。
如果调用的号码有(硬编码)前缀,BroadcastReceiver
会去除前缀并允许调用正常进行:
public void onReceive(Context context, Intent intent)
{
String action = intent.getAction();
if (Intent.ACTION_NEW_OUTGOING_CALL.equals(action)) {
String number = getResultData();
if (number.startsWith(BYPASS_PREFIX)) {
setResultData(number.substring(BYPASS_PREFIX.length()));
} else {
// do additional processing
}
}
}
这一次性解决了两个问题 - 这不仅停止了调用循环,还为我提供了一种方法,通过将前缀存储在电话簿条目中来绕过对特定号码的额外处理。
关于Android - 阻止 NEW_OUTGOING_CALL 事件循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/808645/
我有一个 BroadcastReceiver 捕捉 ACTION_NEW_OUTGOING_CALL 事件。 在 onReceive() 方法中,我将提供的号码发送到新的 ListActivity,用
目前我正在开发一个应用程序,它在 BroadcastReceiver 的帮助下捕获 NEW_OUTGOING_CALL 操作。我通过调用 setResultData(null) 中止调用。之后,我向用
好吧,我编写了一个应用程序,它首先调用一个特定的号码,我使用 NEW_OUTGOING_CALL(一个广播接收器)来捕捉拨号事件。到目前为止,我的 AndroidManifest.xml 上的广播接收
试图拦截拨出电话,并有一个在 上运行良好的解决方案 nexus 1 stock android 2.2 HTC 渴望 2.2 Moto defy 2.1 但不是在运行 2.1 的三星 Galaxy S
我知道如何实现一个 BroadcastReceiver 来通知一个新的呼出电话正在开始。我也知道如何最终挂断电话并在应用程序中处理它。 我想知道的是问用户丢不丢靠谱吗?据我所知,应用程序从 Rroad
我找不到以下文档: android.intent.action.CALL_PRIVILEGED 我看到它在 csipsimple 中用于处理调用。 我想更好地了解如何使用它。例如:之间的关系是什么an
我想在 Nexus 5x(N OS) 设备上使用 adb 连接拨出电话。 我正在发送广播 Intent 并观察到错误: Broadcasting: Intent { act=android.inten
我是一名优秀的程序员,十分优秀!