2013-01-03 3 views
1

에서 작동하지 않음이 오류 얻을 :티타늄 위치 정보가 안드로이드 에뮬레이터

[ERROR][GeolocationModule( 278)] (KrollRuntimeThread) [633,2564] Unable to get current position, location is 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(); 
}); 
+1

DDMS를 사용하여 에뮬레이터의 위치를 ​​올바르게 설정 하시겠습니까? (이 작업을 수행하는 방법에 대해 의문을 제기하십시오.) 사용중인 Titanium SDK 및 Android Emulator의 버전은 무엇입니까? –

답변

1

그것은이를 추적 좀 시간이 걸렸습니다,하지만 난 (this answer에서) 안드로이드 에뮬레이터에서 위치의 부족을 "수정"하는 데 필요한 단계 찾은 것 같아 :

First, open ddms (Dalvik Debug Monitor). On Windows, navigate to the android-sdk\tools directory and run ddms.bat. The first line in the top-left pane will read something like "emulator-####" such as emulator-5560.

Open a command prompt window. Enter 'telnet localhost ####' substituting the number you found above. This will open a telnet window to your android emulator.

Enter the following command (substitute your own longitude & latitude, in that order, if you'd like):

geo fix -82.411629 28.054553

(I'm pretty sure you can add elevation as a third number.) The GPS icon will appear in the emulator's notification bar. Geolocation is now available. At this point, I could get location data in my app and in other apps, such as Maps.

관련 문제