On dirait que Il s'agit d'une modification que Huawei a effectuée elle-même. (raisons factuelles non encore trouvées). En bref, la méthode pour imprimer le détail de l'emplacement a été écrasée.
dumpsys
appelle la méthode "dump" des services système (plus de détails sur cette réponse sur Stack Overflow ), et pour dumpsys location
le service correspondant est LocationManagerService
.
El dump()
méthode pour LocationManagerService
(dans Android 10, mais aussi pas de différences majeures sur les versions précédentes) contient du code comme ceci :
...
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);
}
...
où il va itérer les dernières localisations connues de tous les fournisseurs de localisation et imprimer le nom du fournisseur et sa localisation. Notez que l'emplacement est une instance de Location
objets.
Par défaut, la méthode permettant d'imprimer le détail de l'objet Location
objet ( toString()
) contient un code comme celui-ci :
@Override
public String toString() {
StringBuilder s = new StringBuilder();
s.append("Location[");
s.append(mProvider);
s.append(String.format(" %.6f,%.6f", mLatitude, mLongitude));
...
où il imprimera la latitude et la longitude en 6 chiffres décimaux.
Pour de nombreux appareils, c'est le comportement standard, comme le montre le Nexus 5 avec LineageOS 14.1 (Android 7.1) :
Last Known Locations:
...
fused: Location[fused 1.234567,101.010101 acc=500 et=+12h00m00s000ms]
...
Les chiffres sont modifiés pour des raisons de confidentialité
En remplaçant la méthode, les OEM peuvent personnaliser la façon dont les données sont traitées. dumpsys
affichera le contenu. (Remarque : pendant que Android exige que certains services ne soient pas modifiés l'emplacement n'en fait pas partie)