【问题标题】:Titanium Geolocation Not Working in Android EmulatorTitanium 地理位置在 Android 模拟器中不起作用
【发布时间】:2013-01-03 20:16:02
【问题描述】:

我收到此错误:

[ERROR][GeolocationModule(278)] (KrollRuntimeThread) [633,2564] 无法获取当前位置,位置为空

我没有任何运气就听从了其他人的建议。

有人能引导我走向正确的方向吗?我会很感激的。谢谢!

var win1 = Titanium.UI.createWindow({
    title : 'map_landing',
    backgroundColor : '#fff'
});

var win2 = Titanium.UI.createWindow({
    title : 'hails_window',
    backgroundColor : '#fff'
});

var win3 = Titanium.UI.createWindow({
    title : 'cabs_window',
    backgroundColor : '#fff'
});

User = {
    location : {}
};

var hail_button = Titanium.UI.createButton({
    title : 'Hail Cab',
    top : 10,
    width : 200,
    height : 50
});

var find_button = Titanium.UI.createButton({
    title : 'Find People',
    bottom : 10,
    width : 200,
    height : 50
});

var options = {
    accessKeyId : '',
    secretAccessKey : ''
}

Ti.Geolocation.purpose = "Receive user location";

Titanium.Geolocation.getCurrentPosition(function(e) {
    if (e.error) {
        alert('HFL cannot get your current location');
        return;
    }

    User.location.longitude = e.coords.longitude;
    User.location.latitude = e.coords.latitude;
    User.location.accuracy = e.coords.accuracy;
    User.location.speed = e.coords.speed;
    User.location.timestamp = e.coords.timestamp;

    var mapview = Titanium.Map.createView({
        mapType : Titanium.Map.STANDARD_TYPE,
        region : {
            latitude : User.location.latitude,
            longitude : User.location.longitude,
            latitudeDelta : 0.01,
            longitudeDelta : 0.01
        },
        animate : true,
        regionFit : true,
        userLocation : true
    });

    win1.add(mapview);
    win1.add(hail_button);
    win1.add(find_button);
    hail_button.addEventListener('click', function(e) {
        alert('hello');
        $.ajax('http://hail.pagodabox.com/add_hail', {
            type : 'POST',
            lat : User.location.latitude,
            lang : User.location.longitude,
            success : function(response) {
                alert(response)
            }
        })
    });

    find_button.addEventListener('click', function(e) {

    });
    win1.open();
});

【问题讨论】:

  • 您确定使用 DDMS 正确设置了模拟器的位置吗? (在问题中说明您是如何做到这一点的。)您使用的是什么版本的 Titanium SDK 和 Android 模拟器?

标签: javascript titanium titanium-mobile


【解决方案1】:

我花了一些时间来追踪这个问题,但我想我已经找到了“修复”Android 模拟器中缺少位置所需的步骤(来自this answer):

首先,打开 ddms(Dalvik 调试监视器)。在 Windows 上,导航到 android-sdk\tools 目录并运行 ddms.bat。中的第一行 左上窗格将显示类似“emulator-####”的内容,例如 模拟器 5560。

打开命令提示符窗口。输入 'telnet localhost ####' 替换您在上面找到的数字。这将打开一个 telnet 安卓模拟器的窗口。

输入以下命令(替换你自己的经度和纬度, 按照这个顺序,如果你愿意的话):

geo fix -82.411629 28.054553

(我很确定您可以将海拔添加为第三个数字。)GPS 图标将出现在模拟器的通知栏中。地理位置是 现在可用。此时,我可以在我的应用程序中获取位置数据 在其他应用中,例如地图。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-07
    • 2017-01-05
    • 1970-01-01
    • 2014-11-16
    • 2017-07-13
    • 2016-11-09
    相关资源
    最近更新 更多