从广播接收器监听呼出发起一项活动 [英] launching an activity from a broadcast receiver that listens to outgoing call

查看:142
本文介绍了从广播接收器监听呼出发起一项活动的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想从广播接收器监听呼出这是5556的问题是推出一项活动,该活动不被推出,但表盘内置的活动被称为,我已经改变了意向的优先级100,但无济于事。我如何获得该活动推出内置呼叫活动的转盘代替? 这里是code:

 包com.messageHider;

进口android.content.BroadcastReceiver;
进口android.content.Context;
进口android.content.Intent;
进口android.widget.Toast;

公共类launchReceiver扩展的BroadcastReceiver {
    @覆盖
    公共无效的onReceive(上下文的背景下,意图意图){
        串号= intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER);
        字符串compare_num =5556;
        如果(number.equals(compare_num))
        {
            意图myintent =新的意图(背景下,messageHider.class);
            myintent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            context.startActivity(myintent);
            abortBroadcast();
        }
    }

}
 

清单文件:

 <接收机器人:名称=。launchReceiver>
    <意图过滤器的Andr​​oid版本:优先级=0>
        <作用机器人:名称=android.intent.action.NEW_OUTGOING_CALL/>
    &所述; /意图滤光器>
< /接收器>
 

解决方案

而不是放弃直播与abortBroadcast的();使用setResultData(空)来结束你的发射活动后的来电。

I am trying to launch an activity from a broadcast receiver that listens to outgoing call which is 5556. The problem is, the activity is not being launched but the dial inbuilt activity is being called, I have changed the priority of the intent to 100 but to no avail. How do I get the activity to launch at dial instead of the inbuilt calling activity? Here is the code:

package com.messageHider;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.widget.Toast;

public class launchReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        String number=intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER);
        String compare_num="5556";
        if(number.equals(compare_num))
        {
            Intent myintent=new Intent(context,messageHider.class);
            myintent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            context.startActivity(myintent);
            abortBroadcast();
        }
    }

}

Manifest file:

<receiver android:name=".launchReceiver">
    <intent-filter android:priority="0">
        <action android:name="android.intent.action.NEW_OUTGOING_CALL"/>
    </intent-filter>
</receiver>

解决方案

Instead of aborting broadcast with abortBroadcast(); use setResultData(null) to end the call after launching your activity.

这篇关于从广播接收器监听呼出发起一项活动的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆