我有一个broadcastReceiver捕获ACTION_NEW_OUTGOING_CALL事件.
在onReceive()方法中,我将提供的数字发送到新的ListActivity,用户可以从列表中选择各种新的目标号码.
当用户从列表中选择一个新号码时,我就会在URI字段中使用新号码开始一个新的ACTION_CALL意图.或者,结果可能是原始数字.
无论新号码是什么,都必须立即拨打,不再进一步处理.
如何让broadcastReceiver知道不应该再次处理这个结果数?
解决方法:
我通过在broadcastReceiver中实现“Bypass Prefix”解决了这个问题.如果我的客户端应用程序想要直接调用一个数字,它只需在调用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事件?全部内容,希望文章能够帮你解决Android – 从循环中停止NEW_OUTGOING_CALL事件?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)