Вопрос

Я пытаюсь отправить трансляцию для имитации входящего звонка. Я добавил разрешение в файле 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.

Приложение не использует механизм призывов (вещания). Он просто подделывает графический интерфейс на экране и играет рингтон/вибрацию по умолчанию.

Насколько мне известно, я думаю, что невозможно подделать трансляцию звонка

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top