1

次のエラーが表示されます。

[エラー][GeolocationModule( 278)] (KrollRuntimeThread) [633,2564] 現在の位置を取得できません。場所が null です

私は他の人のアドバイスに従いましたが、うまくいきませんでした。

誰かが私を正しい方向に導くことができますか? とても感謝しています。ありがとうございました!

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();
});
4

1 に答える 1

1

これを追跡するのに少し時間がかかりましたが、Androidエミュレーターの場所の欠如を「修正」するために必要な手順を見つけたと思います(この回答から):

まず、ddms (Dalvik Debug Monitor) を開きます。Windows では、android-sdk\tools ディレクトリに移動し、ddms.bat を実行します。左上のペインの最初の行は、emulator-5560 のように「emulator-####」のように表示されます。

コマンド プロンプト ウィンドウを開きます。上で見つけた番号を置き換えて、「telnet localhost ####」と入力します。これにより、Android エミュレーターへの telnet ウィンドウが開きます。

次のコマンドを入力します (必要に応じて、自分の経度と緯度をこの順序で置き換えてください)。

geo fix -82.411629 28.054553

(高度を 3 番目の数値として追加できると確信しています。) GPS アイコンがエミュレーターの通知バーに表示されます。位置情報が利用できるようになりました。この時点で、自分のアプリとマップなどの他のアプリで位置データを取得できました。

于 2013-07-26T23:08:56.583 に答える