diff options
| -rw-r--r-- | services/core/java/com/android/server/location/GnssLocationProvider.java | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/services/core/java/com/android/server/location/GnssLocationProvider.java b/services/core/java/com/android/server/location/GnssLocationProvider.java index 3fd91dc3b3d5..20711c05b67c 100644 --- a/services/core/java/com/android/server/location/GnssLocationProvider.java +++ b/services/core/java/com/android/server/location/GnssLocationProvider.java @@ -778,6 +778,18 @@ public class GnssLocationProvider implements LocationProviderInterface { return isEnabled(); } }; + + /* + * A cycle of native_init() and native_cleanup() is needed so that callbacks are registered + * after bootup even when location is disabled. This will allow Emergency SUPL to work even + * when location is disabled before device restart. + * */ + boolean isInitialized = native_init(); + if(!isInitialized) { + Log.d(TAG, "Failed to initialize at bootup"); + } else { + native_cleanup(); + } } /** |