Как отправить фальшивую трансляцию на Android
-
27-10-2019 - |
Вопрос
Я пытаюсь отправить трансляцию для имитации входящего звонка. Я добавил разрешение в файле 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);
Решение
Я могу ошибаться, так как я ничего не могу найти в документах, но я бы сказал, что невозможно «поддать» звонок по звонке. Это почти наверняка зарезервировано как «только система».
Подумайте об этом - если приложения могут сделать это, это может просто привести к «вреду», а не к чему -либо злонамеренному, но это не то, что я бы хотел на своем телефоне.
Создайте свое собственное действие «Телефонное звонок» для использования для тестирования, и пусть ваш Broadcastreceiver прослушивает его. Когда вы приходите, чтобы выпустить приложение, просто измените намерение Broadcastreceiver, чтобы прослушать реальную.
Другие советы
Я загрузил некоторые из фальшивых приложений для абонентов из Play Store и протестировал их. Я обнаружил, что приложение повышает событие, которое отображает предварительно упомянутый графический интерфейс в верхней части экрана блокировки и добавляет вход в журналы вызовов, используя метод вставки ContentResolver.
Приложение не использует механизм призывов (вещания). Он просто подделывает графический интерфейс на экране и играет рингтон/вибрацию по умолчанию.
Насколько мне известно, я думаю, что невозможно подделать трансляцию звонка