Parece que esta es una modificación que los Huawei hicieron por sí mismos (no se han encontrado todavía razones de hecho). En resumen, el método para imprimir los detalles del lugar fue sobrescrito.
dumpsys
El comando llama al método de volcado de los servicios del sistema (más detalles en esta respuesta en Stack Overflow ), y para dumpsys location
el servicio respectivo es LocationManagerService
.
El dump()
método para LocationManagerService
(en Android 10, pero tampoco hay grandes diferencias con las versiones anteriores) contiene un código como este:
...
pw.println(" Last Known Locations:");
for (Map.Entry<String, Location> entry : mLastLocation.entrySet()) {
String provider = entry.getKey();
Location location = entry.getValue();
pw.println(" " + provider + ": " + location);
}
...
donde iterará las últimas ubicaciones conocidas de todos los proveedores de ubicación e imprimirá el nombre del proveedor y su ubicación. Tenga en cuenta que la ubicación es un ejemplo de Location
objetos.
Por defecto, el método para imprimir el detalle de la Location
objeto ( toString()
) contiene un código como este:
@Override
public String toString() {
StringBuilder s = new StringBuilder();
s.append("Location[");
s.append(mProvider);
s.append(String.format(" %.6f,%.6f", mLatitude, mLongitude));
...
donde imprimirá la latitud y la longitud en 6 dígitos decimales.
Para muchos dispositivos, este es el comportamiento estándar, como se muestra en Nexus 5 con LineageOS 14.1 (Android 7.1):
Last Known Locations:
...
fused: Location[fused 1.234567,101.010101 acc=500 et=+12h00m00s000ms]
...
Los números han sido cambiados por razones de privacidad
Anulando el método, los fabricantes de equipos originales pueden personalizar cómo dumpsys
mostrará el contenido. (Nota: mientras que Android requiere que algunos servicios no sean modificados la ubicación no es una de ellas)