HefnySco / andruav_android_app

14 stars 7 forks source link

GpsStatus APIs not supported, please use GnssStatus APIs instead #16

Closed Jai-GAY closed 1 year ago

Jai-GAY commented 1 year ago

Caused by: java.lang.UnsupportedOperationException: GpsStatus APIs not supported, please use GnssStatus APIs instead at android.location.LocationManager.addGpsStatusListener(LocationManager.java:2462) at ap.andruavmiddlelibrary.sensors.Sensor_GPS.registerSensor(Sensor_GPS.java:527) at ap.sensors.SensorService.RegisterListeners(SensorService.java:326) at ap.sensors.SensorService.onStartCommand(SensorService.java:378) at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:4913) at android.app.ActivityThread.-$$Nest$mhandleServiceArgs(Unknown Source:0)  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2335)  at android.os.Handler.dispatchMessage(Handler.java:106)  at android.os.Looper.loopOnce(Looper.java:240)  at android.os.Looper.loop(Looper.java:351)  at android.app.ActivityThread.main(ActivityThread.java:8364)  at java.lang.reflect.Method.invoke(Native Method)  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:584)  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1013) 

This class was deprecated in API level 24. Use GnssStatus instead.

https://github.com/HefnySco/andruav_android_app/blob/3c968ae342686c4d646d9dd9c9278edcc3bdfe7e/andruavmiddlelibrary/src/main/java/ap/andruavmiddlelibrary/sensors/Sensor_GPS.java#L527

Jai-GAY commented 1 year ago

This code always adds zero and returns zero and the function is not in use https://github.com/HefnySco/andruav_android_app/blob/3c968ae342686c4d646d9dd9c9278edcc3bdfe7e/andruavmiddlelibrary/src/main/java/ap/andruavmiddlelibrary/sensors/Sensor_GPS.java#L369

this code assigns to a global variable (strGpsStats ) and in the ends it was not used. this function important is to get the intSatCount. https://github.com/HefnySco/andruav_android_app/blob/3c968ae342686c4d646d9dd9c9278edcc3bdfe7e/andruavmiddlelibrary/src/main/java/ap/andruavmiddlelibrary/sensors/Sensor_GPS.java#L277

so under GnssStatus.Callback API >= 24, the above can be replaced and achieved by the following. public void onSatelliteStatusChanged(GnssStatus status) { intSatCount=status.getSatelliteCount(); }

the following codes can be deleted. https://github.com/HefnySco/andruav_android_app/blob/3c968ae342686c4d646d9dd9c9278edcc3bdfe7e/andruavmiddlelibrary/src/main/java/ap/andruavmiddlelibrary/sensors/Sensor_GPS.java#L124 https://github.com/HefnySco/andruav_android_app/blob/3c968ae342686c4d646d9dd9c9278edcc3bdfe7e/andruavmiddlelibrary/src/main/java/ap/andruavmiddlelibrary/sensors/Sensor_GPS.java#L126 https://github.com/HefnySco/andruav_android_app/blob/3c968ae342686c4d646d9dd9c9278edcc3bdfe7e/andruavmiddlelibrary/src/main/java/ap/andruavmiddlelibrary/sensors/Sensor_GPS.java#L241

and a permission check should happen here and after L523 https://github.com/HefnySco/andruav_android_app/blob/3c968ae342686c4d646d9dd9c9278edcc3bdfe7e/andruavmiddlelibrary/src/main/java/ap/andruavmiddlelibrary/sensors/Sensor_GPS.java#L523

https://github.com/androidthings/drivers-samples/blob/master/gps/src/main/java/com/example/androidthings/driversamples/GpsActivity.java

Jai-GAY commented 1 year ago

Suggestions and modifications are done.