How to detect incoming call with the help of Broadcast Receiver?

断了今生、忘了曾经 提交于 2019-12-01 23:32:32
intent.getAction()=="android.intent.action.PHONE_STATE"

should be

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

Since this is how you compare Strings (with equals()).

Also, the code you use to broadcast, should never broadcast - there is no ".BroadcastMM" action. Try making an explicit one instead:

 Intent intent = new Intent(v.getContext(),BroadcastMM.class);  
 sendBroadcast(intent);

It is also likely that you can't broadcast android.intent.action.PHONE_STATE, so your if won't be executed if you make an explicit Intent.

If you really want to check that your BroadcastReceiver is working, put printouts/Toasts outside all ifs. Then once you establish that the BroadcastReceiver responds, do your check. Keep in mind though, that since you only listen for one Intent-Filter, the if checking if the Intent is a PHONE_STATE Intent is a bit redundant.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!