GeoFence IntentService не запускается, когда приложение находится в фоновом режиме

Я пытаюсь создать простое приложение, которое вызывает номер, когда я добираюсь до места. Я использую IntentService с ResultReceiver. Все работает нормально, когда приложение видно, но ничего не работает, когда приложение находится в фоновом режиме. Уведомления не то, что мне нужно. Мне нужно сделать действие вызова. Возможно ли это вообще в API 26?

Добавлен сервис:

    @Override
public int onStartCommand(Intent intent, int flags, int startId) {

    Intent notificationIntent = new Intent(this, MainActivity.class);
    PendingIntent pendingIntent = PendingIntent.getActivity(this,
            0, notificationIntent, 0);

    Notification notification = new NotificationCompat.Builder(this, NOTIFICATION_CHANNEL_ID)
            .setContentTitle("Example Service")
            .setContentIntent(pendingIntent)
            .build();

    startForeground(1, notification);

    mReceiver = GeoFenceHandler.mGeoFenceReceiver;
    GeofencingEvent geoFenceEvent = GeofencingEvent.fromIntent(intent);

    if (geoFenceEvent.hasError()) {
        int errorCode = geoFenceEvent.getErrorCode();
        deliverResultToReceiver(FAILURE_RESULT, "Error" + errorCode);

    } else {
        int transitionType = geoFenceEvent.getGeofenceTransition();

        //User enter transition
        if (Geofence.GEOFENCE_TRANSITION_ENTER == transitionType) {
            deliverResultToReceiver(SUCCESS_RESULT, ENTER_AREA);

            //User exit transition
        } else if (Geofence.GEOFENCE_TRANSITION_EXIT == transitionType) {
            deliverResultToReceiver(SUCCESS_RESULT, LEFT_AREA);
        }
    }

    stopSelf();

    return START_NOT_STICKY;
}

Но все равно на фоне ничего не происходит.

Спасибо.


person Gladi    schedule 24.07.2019    source источник
comment
eно ничего не работает, когда приложение находится в фоновом режиме. что ТОЧНО не работает?   -  person Marian Paździoch    schedule 07.08.2019


Ответы (1)


Вам нужно превратить вашу службу в службу переднего плана. После Android Oreo вам нужно объявить свою фоновую службу службой переднего плана и иметь видимое уведомление, пока приложение находится в фоновом режиме.

Подробнее читайте в: https://developer.android.com/guide/components/services

person Alex    schedule 24.07.2019
comment
Эй, я сделал это, но без изменений. обновил мой вопрос. Зарегистрировал все так - ничего не срабатывает. - person Gladi; 24.07.2019