Как создать сервис Отключение вызова всегда выполняется после убитого приложения через API 26 в android studio java - PullRequest
0 голосов
/ 26 марта 2020

Я использую этот код и этот код, работающий, если приложение активно на экране, и если он закрыт, код не выполняется
как это исправить, если приложение truecaller работает в фоновом режиме, если убито приложение

    package com.islamelwakeel.detectcall;

    import android.content.BroadcastReceiver;
    import android.content.Context;
    import android.content.Intent;
    import android.telephony.TelephonyManager;
    import android.util.Log;
    import android.view.Gravity;
    import android.widget.Toast;

    public class CallReceiver extends BroadcastReceiver {
        @Override
        public void onReceive(Context context, Intent intent) {
    if(intent.getStringExtra(TelephonyManager.EXTRA_STATE).equals(TelephonyManager.EXTRA_STATE_OFFHOOK)){
        showToast(context,"Call started...");
    }
    else if(intent.getStringExtra(TelephonyManager.EXTRA_STATE).equals(TelephonyManager.EXTRA_STATE_IDLE)){
                showToast(context,"Call ended...");
            }
            else if(intent.getStringExtra(TelephonyManager.EXTRA_STATE).equals(TelephonyManager.EXTRA_STATE_RINGING)){
                showToast(context,"Incoming call...");
                Log.d("call","Incoming call...");
            }
        }

        void showToast(Context context,String message){
            Toast toast=Toast.makeText(context,message,Toast.LENGTH_LONG);
            toast.setGravity(Gravity.CENTER,0,0);
            toast.show();
        }
    }

1 Ответ

0 голосов
/ 26 марта 2020

Мой сервис тоже был убит. Я перепробовал много методов, но обнаружил один метод, который работал. Я использовал службу, которая принимает вызовы от системы, чтобы проверить, работает ли еще моя служба. Если это не работает, запустите его. Новый Сервис. Например, NotificationListenerService будет иметь его. Там будут некоторые события все время. И я могу написать код, чтобы перезапустить мой сервис там

Пример.

@Override
public void onNotificationPosted(StatusBarNotification sbn) {
   if(!isMyserviceRunning){
      startService();
   }
}
...