Android中的广播接收器之电话快捷启动界面

介绍一个广播接收器的简单使用,实现一个界面的快捷启动,就是在拨打电话的时候,输入一个特定的号码,然后就会启动特定界面。

很简单的,就是用一个广播接收,来接收打电话时发出来的广播,然后捕获它,然后就可以进行我们想要的操作啦,好,直接上代码


public class PhoneReceiver extends BroadcastReceiver
{

        @Override
        public void onReceive(Context context, Intent intent)
        {
                String outPhoneNumber = this.getResultData();
                if(outPhoneNumber.equals("123456"))        //当监听到用户拨打的是123456的时候,就进行下面的操作
                {
                        Intent intent = new Intent(context, MyActivity.class);
                        //这个很重要,如果没有这一句,那就会报错,这一句是因为我们是在一个Receiver里面启动一个activity的,但activity的启动,都是放到一个栈里面的,但Receiver里面没有那个栈,所以我们要在这里启动一个activity,那就必须要指定这行代码
                        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);        
                        context.startActivity(intent);
                        setResultData(null);        //这行代码是把广播的数据设置为null,这样就不会把刚刚那个号码拨打出去啦,只会启动我们的activity
                }
        }
}

最后我们还要在AndroidMainfest文件里面注册这个广播接收器。

<receiver android:name="<span style="font-family: Arial, Helvetica, sans-serif;">PhoneReceiver</span><span style="font-family: Arial, Helvetica, sans-serif;">"></span>
    <intent-filter android:priority="1000"><!-- 把优先级设置高一些,以便第一个拿到广播 -->
    	<action android:name="android.intent.action.NEW_OUTGOING_CALL"/>
    </intent-filter>
</receiver>

加上相应的权限

<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS"/>

结束。现在拨打123456这个号码就会启动MyActivity这个界面了。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值