How to send fake call broadcast on android

纵饮孤独 提交于 2019-12-19 04:21:10

问题


I am trying to send a broadcast to simulate an incoming call. I added the permission in AndroidManifest.xml file,

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

When I try to run the program, the phone reboots.(Emulator too).

  Intent intent = new Intent();
    intent.setAction("android.intent.action.PHONE_STATE");
    intent.putExtra(TelephonyManager.EXTRA_STATE, TelephonyManager.CALL_STATE_RINGING);
    intent.putExtra("EXTRA_INCOMING_NUMBER", "923982398");
    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    sendBroadcast(intent);

回答1:


I may be wrong as I can't find anything in the docs but I'd say it's not possible to 'spoof' a call ringing broadcast. It's almost certainly reserved as 'system only'.

Think about it - if apps could do this, it may simply result in 'mischief' rather than anything malicious but it isn't something that I'd like to happen on my phone.

Create your own 'phone ringing' action to use for testing purposes and have your BroadcastReceiver listen for it. When you come to release the app then simply change the BroadcastReceiver's intent filter to listen for the real one.




回答2:


I Downloaded some of the fake Caller Apps from play store and tested them. I found that the App Raises an Event which displays the pre-mentioned GUI on the Top of Lock Screen and adds the entry into call logs using the insert method of ContentResolver.

The app does not use the inbuild Calling (Broadcast) mechanism. it just fakes the GUI on the Screen and plays the Default Ringtone/Vibration.

As per my Knowledge, I think it is not possible to fake a call ringing broadcast



来源:https://stackoverflow.com/questions/6337604/how-to-send-fake-call-broadcast-on-android

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