Как обнаружить телефонные звонки, когда приложение убито без использования службы переднего плана в Android?Android

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Как обнаружить телефонные звонки, когда приложение убито без использования службы переднего плана в Android?

Сообщение Anonymous »

Задача задачи < /h2>
Я разрабатываю приложение для Android, которое необходимо обнаружить входящие и исходящие телефонные звонки, даже когда приложение убито. Я внедрил Broadcastreceiver (

Код: Выделить всё

CallReceiver
) прослушать thelephonymanager.action_phone_state_changed , и он работает нормально, когда приложение работает в фоновом режиме.
Однако проблема возникает, когда приложение < Strong> Stopped или убит -Broadcastreceiver больше не получает события телефонных звонков. Я хочу обнаружить телефонные звонки, не полагаясь на услугу переднего плана с постоянным уведомлением .
[*] с использованием Broadcastreceiver
  • Реализованный CallReceiver to to Слушайте ThenkonyManager.action_phone_state_changed .
  • Работает, когда приложение находится в фоновом режиме, но прекращает работу, когда приложение убито . < br/>
[*] с использованием workmanager
  • Br/> Внедренное работника , который регистрирует CallReceiver .
  • не работает, когда приложение убито , потому что Workmanager не предназначено для прослушивания вещания в реальном времени. Сервис (работает, но не идеально)

    Создал CallmonitoringService , который динамически регистрирует приемник.
  • Работает даже когда приложение убито, но требуется постоянное уведомление , которого я хочу избежать.
с использованием связанной службы < /strong> < /p>

Связанная служба < /code> останавливается, когда Приложение убито, поэтому оно не решает проблему. /h2>
Broadcastreceiver (callReceiver) < /h3>

Код: Выделить всё

class CallReceiver : BroadcastReceiver() {
override fun onReceive(context: Context?, intent: Intent?) {
if (context == null || intent?.action != TelephonyManager.ACTION_PHONE_STATE_CHANGED) return

val state = intent.getStringExtra(TelephonyManager.EXTRA_STATE)
val incomingNumber = intent.getStringExtra(TelephonyManager.EXTRA_INCOMING_NUMBER)

when (state) {
TelephonyManager.EXTRA_STATE_RINGING -> {
Log.d("CallReceiver", "Incoming call from: $incomingNumber")
}
TelephonyManager.EXTRA_STATE_OFFHOOK -> {
Log.d("CallReceiver", "Call answered or dialed!")
}
TelephonyManager.EXTRA_STATE_IDLE -> {
Log.d("CallReceiver", "Call ended!")
}
}
}
}
< /code>
 ❓ Как я могу обнаружить телефонные звонки, даже когда приложение убито, без использования службы переднего плана с постоянным уведомлением? < /h2>

 Есть ли способ перезагрузить мой CallReceiver 
, когда приложение убито? ? Обходные пути будут высоко оценены! 🚀


Подробнее здесь: https://stackoverflow.com/questions/794 ... und-servic
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Android»