diff options
| -rw-r--r-- | location/java/android/location/LocationManager.java | 46 |
1 files changed, 32 insertions, 14 deletions
diff --git a/location/java/android/location/LocationManager.java b/location/java/android/location/LocationManager.java index 87b3be9cc26d..ca9d4d3e8812 100644 --- a/location/java/android/location/LocationManager.java +++ b/location/java/android/location/LocationManager.java @@ -2757,9 +2757,14 @@ public class LocationManager { protected boolean registerService() throws RemoteException { Preconditions.checkState(mListenerTransport == null); - mListenerTransport = new GnssStatusListener(); - return mService.registerGnssStatusCallback(mListenerTransport, - mContext.getPackageName(), mContext.getFeatureId()); + GnssStatusListener transport = new GnssStatusListener(); + if (mService.registerGnssStatusCallback(transport, mContext.getPackageName(), + mContext.getFeatureId())) { + mListenerTransport = transport; + return true; + } else { + return false; + } } @Override @@ -2817,10 +2822,14 @@ public class LocationManager { protected boolean registerService() throws RemoteException { Preconditions.checkState(mListenerTransport == null); - mListenerTransport = new GnssMeasurementsListener(); - return mService.addGnssMeasurementsListener(mListenerTransport, - mContext.getPackageName(), mContext.getFeatureId(), - "gnss measurement callback"); + GnssMeasurementsListener transport = new GnssMeasurementsListener(); + if (mService.addGnssMeasurementsListener(transport, mContext.getPackageName(), + mContext.getFeatureId(), "gnss measurement callback")) { + mListenerTransport = transport; + return true; + } else { + return false; + } } @Override @@ -2854,10 +2863,14 @@ public class LocationManager { protected boolean registerService() throws RemoteException { Preconditions.checkState(mListenerTransport == null); - mListenerTransport = new GnssNavigationMessageListener(); - return mService.addGnssNavigationMessageListener(mListenerTransport, - mContext.getPackageName(), mContext.getFeatureId(), - "gnss navigation callback"); + GnssNavigationMessageListener transport = new GnssNavigationMessageListener(); + if (mService.addGnssNavigationMessageListener(transport, mContext.getPackageName(), + mContext.getFeatureId(), "gnss navigation callback")) { + mListenerTransport = transport; + return true; + } else { + return false; + } } @Override @@ -2891,9 +2904,14 @@ public class LocationManager { protected boolean registerService() throws RemoteException { Preconditions.checkState(mListenerTransport == null); - mListenerTransport = new BatchedLocationCallback(); - return mService.addGnssBatchingCallback(mListenerTransport, mContext.getPackageName(), - mContext.getFeatureId(), "batched location callback"); + BatchedLocationCallback transport = new BatchedLocationCallback(); + if (mService.addGnssBatchingCallback(transport, mContext.getPackageName(), + mContext.getFeatureId(), "batched location callback")) { + mListenerTransport = transport; + return true; + } else { + return false; + } } @Override |