Можно ли запланировать события (GPS вкл / выкл, Wi-Fi вкл? Выкл) в Workmanager?

В Android Oreo мы не можем использовать некоторые из приемников неявной широковещательной передачи (состояние сети и т. д.). Вместо этого мы можем использовать планировщик заданий или диспетчер. Но в I / O 2018 Google представил новую библиотеку Workmanager.

Но здесь возникает вопрос, как я могу обрабатывать системные события (прием вызова, изменение состояния сети, включение / выключение GPS и т. д.) В диспетчере работ? или Как я могу запланировать свою работу на определенное время (без учета времени)?

Если у кого-то есть идеи по этому поводу, дайте мне знать. Заранее спасибо.

0
0
173
1

Ответы 1

Вы можете архивировать, просто используя метод setInterval в классе LocationService.

Следуйте инструкциям по созданию слушателя с помощью FusedLocaation, который дает лучший результат по логике местоположения. https://developers.google.com/android/reference/com/google/android/gms/location/FusedLocationProviderClient

LocationRequest locationRequest = LocationRequest.create();
            locationRequest.setInterval(5000); 
            // in milliseconds in you case change into 3600000
            locationRequest.setFastestInterval(1000);
            locationRequest.setPriority(LocationRequest.PRIORITY_BALANCED_POWER_ACCURACY);

Затем запустите fusedLocation с обратным вызовом

       mFusedLocationClient = LocationServices.getFusedLocationProviderClient(locationActivity);                
       mFusedLocationClient.requestLocationUpdates(locationRequest, new LocationCallback() {
            @Override
            public void onLocationResult(LocationResult locationResult) {
                super.onLocationResult(locationResult);
            }

            @Override
            public void onLocationAvailability(LocationAvailability locationAvailability) {
                super.onLocationAvailability(locationAvailability);
            }
        },null);

Спасибо

Другие вопросы по теме