【问题标题】:Is it possible schedule events(GPS On/Off, Wifi On?Off) in workmanager?是否可以在工作管理器中安排事件(GPS 开/关、Wifi 开?关)?
【发布时间】:2018-09-18 06:41:03
【问题描述】:

从 android Oreo 我们不能使用一些隐式广播接收器(网络状态等)。取而代之的是,我们可以使用作业调度程序或调度程序。但在 I/O 2018 中,谷歌引入了一个名为 workmanager 的新库。

但问题出现了,我如何在工作管理器中处理系统事件(通话接收、网络状态更改、GPS 开/关等)?或者我如何在特定时间安排我的工作(不使用时间计算)?

如果有人对此有任何想法,请告诉我。提前致谢。

【问题讨论】:

    标签: android service broadcastreceiver android-jobscheduler android-workmanager


    【解决方案1】:

    只需使用 LocationService 类中的 setInterval 方法即可存档。

    按照指南使用 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);
    

    谢谢

    【讨论】:

      猜你喜欢
      • 2016-11-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-24
      • 2016-05-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多