Appcelerator Geolocation无法在Android上运行

时间:2011-11-11 13:18:16

标签: javascript android geolocation titanium

以下来自Titanium示例的代码在iPhone上运行良好但在Android上运行不正常。有人可以告诉我如何编写它以便它也可以在Android 2.3.3上运行吗?如果我注释掉'Ti.Geolocation.getCurrentPosition'并且它是结束标记,则不会显示错误。

if (!_bounty.captured) {
    var captureButton = Ti.UI.createButton({
        title:L('capture'),
        top:10,
        height:30,
        width:200
    });
    captureButton.addEventListener('click', function() {
        if (Ti.Geolocation.locationServicesEnabled) {
            Ti.Geolocation.accuracy = Ti.Geolocation.ACCURACY_BEST;
            Ti.Geolocation.getCurrentPosition(function(e) {  //*causes error on Android*
                var lng = e.coords.longitude;
                var lat = e.coords.latitude;
                bh.db.bust(_bounty.id, lat, lng);

                bh.net.bustFugitive(Ti.Platform.id, function(_data) {
                    Ti.UI.createAlertDialog({
                        message:_data.message
                    }).show();

                    //on android, give a bit of a delay before closing the window...
                    if (Ti.Platform.osname == 'android') {
                        setTimeout(function() {
                            win.close();
                        },2000);
                    }
                    else {
                        win.close();
                    }
                });
            });
        }
        else {
            Ti.UI.createAlertDialog({
                title:L('geo_error'), 
                message:L('geo_error_details')
            }).show();
        }
    });
    win.add(captureButton);
}

感谢任何帮助。

1 个答案:

答案 0 :(得分:-1)

您必须使用Google API SDK才能在Android上使用地理位置