Update GpsStatus to GnssStatus
Budget: $30 – $250 USD
Please see the video showing what the problem is :
https://drive.google.com/file/d/1hpw52C5pNIDl0jD6op089LdjZdyemIh2/view?usp=sharing
As mentioned in the video, we use GpsStatus API (specially GpsStatus.Listener in the "service" class LiveRouteServ) :
public class LiveRouteServ extends Service implements IBaseGpsListener, GpsStatus.Listener
In the doc, it says this API needs to update to GnssStatus.Callback :
https://developer.android.com/reference/android/location/GpsStatus.Listener
*** Please apply the job only if you have experience updating the deprecated class successfully ***
Here is the detailed error message shown in logcat on Android Studio :
=============================================================
2021-12-15 21:00:51.931 16156-16156/com.mnappsstudio.speedometer.speedcamera.detector E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.mnappsstudio.speedometer.speedcamera.detector, PID: 16156
java.lang.RuntimeException: Unable to start service com.mnappsstudio.speedometer.speedcamera.detector.LiveRouteServ@86c7e9c with Intent ( cmp=com.mnappsstudio.speedometer.speedcamera.detector/.LiveRouteServ (has extras) ): java.lang.UnsupportedOperationException: GpsStatus APIs not supported, please use GnssStatus APIs instead
at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:4338)
at android.app.ActivityThread.access$1800(ActivityThread.java:237)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1951)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:223)
at android.app.ActivityThread.main(ActivityThread.java:7664)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
Caused by: java.lang.UnsupportedOperationException: GpsStatus APIs not supported, please use GnssStatus APIs instead
at android.location.LocationManager.addGpsStatusListener(LocationManager.java:1953)
at com.mnappsstudio.speedometer.speedcamera.detector.LiveRouteServ.startUpdates(LiveRouteServ.java:367)
at com.mnappsstudio.speedometer.speedcamera.detector.LiveRouteServ.onStartCommand(LiveRouteServ.java:188)
at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:4320)
at android.app.ActivityThread.access$1800(ActivityThread.java:237)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1951)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:223)
at android.app.ActivityThread.main(ActivityThread.java:7664)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
=============================================================
https://drive.google.com/file/d/1hpw52C5pNIDl0jD6op089LdjZdyemIh2/view?usp=sharing
As mentioned in the video, we use GpsStatus API (specially GpsStatus.Listener in the "service" class LiveRouteServ) :
public class LiveRouteServ extends Service implements IBaseGpsListener, GpsStatus.Listener
In the doc, it says this API needs to update to GnssStatus.Callback :
https://developer.android.com/reference/android/location/GpsStatus.Listener
*** Please apply the job only if you have experience updating the deprecated class successfully ***
Here is the detailed error message shown in logcat on Android Studio :
=============================================================
2021-12-15 21:00:51.931 16156-16156/com.mnappsstudio.speedometer.speedcamera.detector E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.mnappsstudio.speedometer.speedcamera.detector, PID: 16156
java.lang.RuntimeException: Unable to start service com.mnappsstudio.speedometer.speedcamera.detector.LiveRouteServ@86c7e9c with Intent ( cmp=com.mnappsstudio.speedometer.speedcamera.detector/.LiveRouteServ (has extras) ): java.lang.UnsupportedOperationException: GpsStatus APIs not supported, please use GnssStatus APIs instead
at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:4338)
at android.app.ActivityThread.access$1800(ActivityThread.java:237)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1951)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:223)
at android.app.ActivityThread.main(ActivityThread.java:7664)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
Caused by: java.lang.UnsupportedOperationException: GpsStatus APIs not supported, please use GnssStatus APIs instead
at android.location.LocationManager.addGpsStatusListener(LocationManager.java:1953)
at com.mnappsstudio.speedometer.speedcamera.detector.LiveRouteServ.startUpdates(LiveRouteServ.java:367)
at com.mnappsstudio.speedometer.speedcamera.detector.LiveRouteServ.onStartCommand(LiveRouteServ.java:188)
at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:4320)
at android.app.ActivityThread.access$1800(ActivityThread.java:237)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1951)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:223)
at android.app.ActivityThread.main(ActivityThread.java:7664)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
=============================================================