如何在android上发送假呼叫广播

时间:2011-06-13 23:36:59

标签: android android-intent phone-call telephonymanager

我正在尝试发送广播来模拟来电。 我在AndroidManifest.xml文件中添加了权限,

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

当我尝试运行程序时,手机会重新启动。(模拟器也是如此)。

  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);

2 个答案:

答案 0 :(得分:3)

我可能错了,因为我在文档中找不到任何内容,但我会说'欺骗'一个叫广播的电话是不可能的。它几乎肯定被保留为“仅限系统”。

考虑一下 - 如果应用程序可以做到这一点,它可能只会导致'恶作剧'而不是任何恶意行为,但这不是我想在手机上发生的事情。

创建您自己的“电话响铃”操作以用于测试目的,并让您的BroadcastReceiver收听它。当您发布应用程序时,只需更改BroadcastReceiver的intent过滤器以侦听真实过滤器。

答案 1 :(得分:0)

我从Play商店下载了一些虚假的Caller Apps,并对其进行了测试。 我发现应用程序引发了一个事件,该事件在锁屏顶部显示了前面提到的GUI,并使用ContentResolver的insert方法将条目添加到了通话记录中。

该应用程序不使用内置呼叫(广播)机制。它只是在屏幕上伪造GUI并播放默认铃声/振动。

据我所知,我认为不可能伪造呼叫广播