我正在开发一款带有地理位置服务的应用程序,在iOS上没有问题,但是当我尝试在Android上测试时,会出现位置错误。
[ERROR] : GeolocationModule: (main) [39266,89619] Unable to get current position, location is null
我不知道发生了什么,因为我有其他应用程序使用几乎相同的代码运行良好。
非常感谢您的帮助。
这是预览.
我正在使用SDK 7.0.2GA 提前致谢。
::编辑::
我根据建议对代码进行了一些更改。 现在应用程序卡在“location”事件中,并一直停留在那里。
感谢您的帮助。
function SolicitarServicio( win, idservicio, datos, datosCompletos ){
if(Titanium.Geolocation.hasLocationPermissions( Titanium.Geolocation.AUTHORIZATION_WHEN_IN_USE)) {
IniciarSolicitudDeServicios( win, idservicio, datos, datosCompletos );
}
else{
Ti.Geolocation.requestLocationPermissions(Ti.Geolocation.AUTHORIZATION_WHEN_IN_USE, function(e) {
if(!e.success){
Ti.API.info("*** No premissions: " + e.error );
Utiles.Alerta(L("error_permisos_geolocalizacion"));
return false;
}
else{
IniciarSolicitudDeServicios( win, idservicio, datos, datosCompletos );
}
});
}
function IniciarSolicitudDeServicios( win, idservicio, datos, datosCompletos ) {
if( params.isAndroid ){
var gpsProvider = Ti.Geolocation.Android.createLocationProvider({
name: Ti.Geolocation.PROVIDER_GPS,
});
Ti.Geolocation.Android.addLocationProvider(gpsProvider);
}
preloader.show(win);
// The app stucks here, the if( e.success ) never happend
Titanium.Geolocation.addEventListener("location",function(e){
if(e.success){
preloader.hide(win);
var latitud = e.coords.latitude;
var longitud = e.coords.longitude;
Ti.API.info("*** Now get the coords and show te window");
var Button = require("src/common/Button");
var WindowTotalBeige = require("src/common/ventanaTotal");
var winServicio = new WindowTotalBeige("S", "G U A P P U R A" );
var vistaAgenda = require("src/vistas/solicitarServicio");
vistaAgenda.SolicitarServicio( winServicio, idservicio, datos, latitud, longitud, datosCompletos );
winServicio.open();
}
else{
preloader.hide(win);
Utiles.Alerta( "ERROR: " +e.code + " " + e.error );
}
});
}
}
问题已解决! 将SDK更新至7.1.0 RC版本 无代码更改。