我正在尝试发送广播来模拟来电。 我在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);
答案 0 :(得分:3)
我可能错了,因为我在文档中找不到任何内容,但我会说'欺骗'一个叫广播的电话是不可能的。它几乎肯定被保留为“仅限系统”。
考虑一下 - 如果应用程序可以做到这一点,它可能只会导致'恶作剧'而不是任何恶意行为,但这不是我想在手机上发生的事情。
创建您自己的“电话响铃”操作以用于测试目的,并让您的BroadcastReceiver收听它。当您发布应用程序时,只需更改BroadcastReceiver的intent过滤器以侦听真实过滤器。
答案 1 :(得分:0)
我从Play商店下载了一些虚假的Caller Apps,并对其进行了测试。 我发现应用程序引发了一个事件,该事件在锁屏顶部显示了前面提到的GUI,并使用ContentResolver的insert方法将条目添加到了通话记录中。
该应用程序不使用内置呼叫(广播)机制。它只是在屏幕上伪造GUI并播放默认铃声/振动。
据我所知,我认为不可能伪造呼叫广播