2013-01-03 82 views
1

不工作我得到这个错误:钛地理位置在Android模拟器

[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模拟器? –

回答

1

我花了一些时间来追踪下来,但我想我已经找到了需要“修复”,在Android模拟器缺乏一个位置(从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.

相关问题