android-如何在广播接收器的帮助下检测来电?

android-如何在广播接收器的帮助下检测来电?,第1张

概述我正在尝试通过广播接收器识别传入的呼叫.我无法这样做!实际上,我无法“触发”广播!这是我的代码:activate.setOnClickListener(newOnClickListener(){@OverridepublicvoidonClick(Viewv){Toast.makeText(g

我正在尝试通过广播接收器识别传入的呼叫.我无法这样做!实际上,我无法“触发”广播!

这是我的代码:

activate.setonClickListener(new OnClickListener()        {            @OverrIDe            public voID onClick(VIEw v)            {                Toast.makeText(getApplicationContext(),"Clicked",1).show();                final String broADCAST_ACTION_name = ".broadcastMM";                Intent intent = new Intent();                  intent.setAction(broADCAST_ACTION_name);                        sendbroadcast(intent);             }                                                       }

我不知道是否曾经触发过这个“ sendbroadcast”!在我的广播接收器文件中:

public voID onReceive(Context context, Intent intent)    {        if(intent.getAction()=="androID.intent.action.PHONE_STATE"){        Toast.makeText(c,"broadCast fired!",1).show();}        Bundle extras = intent.getExtras();        String state = extras.getString(TelephonyManager.EXTRA_STATE);        if (state.equals(TelephonyManager.EXTRA_STATE_RINGING)) {            Toast.makeText(context, "Ringing", 1).show();        }}       

我的清单文件:

<receiver androID:name=".broadcastMM" >            <intent-filter>                <action androID:name="androID.intent.action.PHONE_STATE" >                </action>            </intent-filter>        </receiver> <uses-permission androID:name="androID.permission.READ_PHONE_STATE" />

我缺少一些逻辑吗?我刚接触AndroID,因此请帮帮我.

解决方法:

intent.getAction()=="androID.intent.action.PHONE_STATE"

应该

TelephonyManager.ACTION_PHONE_STATE_CHANGED.equals(intent.getAction());

由于这是比较字符串(与equals())的方式.

另外,您用于广播的代码绝不应该广播-没有“ .broadcastMM” *** 作.尝试改写一个明确的代码:

 Intent intent = new Intent(v.getContext(),broadcastMM.class);   sendbroadcast(intent);

您也很可能无法广播androID.intent.action.PHONE_STATE,因此,如果您做出明确的Intent,则if不会被执行.

如果您真的想检查自己的broadcastReceiver是否正常工作,请将打印输出/ Toasts放在所有ifs之外.然后,一旦确定broadcastReceiver响应,请进行检查.不过请记住,由于您仅侦听一个Intent-Filter,因此检查Intent是否为PHONE_STATE Intent的if有点多余.

总结

以上是内存溢出为你收集整理的android-如何在广播接收器的帮助下检测来电?全部内容,希望文章能够帮你解决android-如何在广播接收器的帮助下检测来电?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1094607.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-28
下一篇2022-05-28

发表评论

登录后才能评论

评论列表(0条)

    保存