Регистрация приемника вещания от другого приемника вещания в Android

В настоящее время у меня есть Broadcast Receiver для прослушивания событий состояний вызова. Я зарегистрировал приемник вещания вAndroidManifest.xml как показано ниже.

<receiver android:name=".api.PhoneCallReceiver">
     <intent-filter>
          <action android:name="android.intent.action.PHONE_STATE" />
     </intent-filter>
</receiver>

Когда приложение запускается, этот приемник вещания регистрируется для прослушивания событий состояний вызова и в соответствии сCALL_STATE Я управляю своим заявлением.

Работает нормально, пока телефон не перезагрузится. После перезагрузки телефона этот приемник перестает работать. Я знаю, я должен зарегистрировать приемник для прослушиванияBOOT_COMPLETED событие системы.

То, что я сделал, как показано ниже:

<receiver android:name=".api.PhoneCallReceiver">
     <intent-filter>
          <action android:name="android.intent.action.PHONE_STATE" />
     </intent-filter>
     <intent-filter>
          <action android:name="android.intent.action.BOOT_COMPLETED" />
     </intent-filter>
</receiver>

Я также дал разрешение на получениеBOOT_COMPLETED системное событие.

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

но как-то это не работает. Я думаю о создании нового приемника вещания, который слушаетBOOT_COMPLETED только событие, но проблема в том, что

Итак, мои вопросы: как я могу запустить этот приемник прослушивания телефонных звонков при поступлении любого входящего вызова?

Как я могу зарегистрировать Broadcast Receiver от другого Broadcast Receiver

Нужно ли переносить код существующего приемника вещания в сервис, чтобы я мог запустить сервис из Boot Receiver?

Любая помощь будет оценена.

Ответы на вопрос(1)

Ваш ответ на вопрос