首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >android Broadcastreceiver问题

android Broadcastreceiver问题
EN

Stack Overflow用户
提问于 2012-01-09 15:58:10
回答 2查看 350关注 0票数 0

我正在开发一个应用程序,它阻止所有呼出呼叫,然后在阻止该呼叫后,另一个新的呼叫被发起到一个预定义的号码...

我的问题是,当我使用broadcastreceiver阻塞调用时,我以编程方式发起的第二个调用也会被阻塞……

是否有任何方法在阻塞第一个调用后注销广播,或任何其他方法或技术?

这是我为我的应用程序实现的广播接收器...

代码语言:javascript
复制
public class CallListenerActivity extends BroadcastReceiver {

Uri uri;

    @Override
    public void onReceive(Context context, Intent intent) {
            Bundle bundle = intent.getExtras();

            if(bundle == null)
                return;


            String phonenumber = intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER);

            Log.i("@@@OutgoingCallReceiver",phonenumber);
            Log.i("@@@OutgoingCallReceiver",bundle.toString());

            String info = "Detect Calls sample application\nOutgoing number: " + phonenumber;

           Toast.makeText(context, info, Toast.LENGTH_LONG).show();



           String phoneNumber = "5556";
           Uri uri = Uri.fromParts("tel", phoneNumber, null);

           Intent callIntent = new Intent(Intent.ACTION_CALL, uri);
           callIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
           context.startActivity(callIntent);




    }
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-01-09 17:05:58

你可以试着启动你的原版(CallListenerActivity?注册广播接收器的那个)活动再次使用存储在意图中作为额外的标志。评估您的活动中的意图,如果在附加内容中看到标志,则取消注册广播接收器。然后启动call活动,如示例代码所示。

票数 1
EN

Stack Overflow用户

发布于 2012-01-09 16:05:58

您可以在发起呼叫时使用store a check,并在呼叫完成后对其进行标记。对于此检查,您可以使用SharedPreference

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8785371

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档