Pouvez-vous s'il vous plaît m'aider à vérifier si le service de localisation est activé ou non dans Appcelerator. Je travaille avec Titanium SDK 6.1.2 et Samsung S5 avec Marshmellow OS. Même si le GPS est activé/non dans l'appareil, mais chaque fois qu'il en résulte faux. Merci d'avance.Comment vérifier si le service de localisation est activé ou non dans Appcelerator
Répondre
Tout d'abord, vous devez vérifier Location Autorisations pour l'application dans Android & puis vous devez vérifier si le service de localisation est activé dans le périphérique ou non.
Les deux sont des déclarations différentes.
Le premier vérifie l'autorisation d'accès à l'emplacement & La deuxième concerne la vérification de l'activation ou de la désactivation du service de localisation.
Sans vérification emplacement Permission d'abord sur Android, vous ne pouvez pas vérifier l'emplacement état marche/arrêt, sinon il sera toujours conduire à faux statut.
tout d'abord ajouter ceci tiapp.xml dans ios -> plist -> dict
<key>NSLocationAlwaysUsageDescription</key>
<string>Determine Current Location</string>
Maintenant, voici le code cross-compatible pour Android/iOS.
function checkLocationEnabledOrNot(_callback, _args) {
if (Titanium.Geolocation.locationServicesEnabled) {
_callback(_args);
} else {
alert("Turn on location on your device.");
}
}
// pass _callback method you want to call after successful access to location
// you can also pass arguments as 2nd parameter to the function you want to call
function startLocationProcess(_callback, _args) {
Ti.Geolocation.accuracy = Ti.Geolocation.ACCURACY_HIGH;
if (OS_IOS) {
checkLocationEnabledOrNot(_callback, _args);
} else if (OS_ANDROID) {
if (Ti.Geolocation.hasLocationPermissions()) {
checkLocationEnabledOrNot(_callback, _args);
} else {
Ti.Geolocation.requestLocationPermissions(Ti.Geolocation.AUTHORIZATION_ALWAYS, function (locationEvent) {
if (locationEvent.success) {
checkLocationEnabledOrNot(_callback, _args);
} else {
alert("Location permissions are required to access locations.");
}
});
}
}
}
Maintenant, sur un bouton clic tout ce que vous voulez faire après vérification emplacement, vous pouvez simplement le faire comme ceci:
function anotherFunction(name) {
alert(name);
}
$.someButton.addEventListener('click', function (e) {
startLocationProcess(anotherFunction, "Hello D.Ish");
});