钛地理定位在 Android 模拟器中不起作用 [英] Titanium Geolocation Not Working in Android Emulator
问题描述
我收到此错误:
[ERROR][GeolocationModule(278)] (KrollRuntimeThread) [633,2564] 无法获取当前位置,位置为空
[ERROR][GeolocationModule( 278)] (KrollRuntimeThread) [633,2564] Unable to get current position, location is null
我遵循了其他人的建议,但没有任何运气.
and I have followed other people's advice without any luck.
有人能把我引向正确的方向吗?我会很感激的.谢谢!
Could someone lead me in the right direction? I would be so grateful. Thank you!
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();
});
推荐答案
我花了一些时间来追踪这个问题,但我想我已经找到了修复"Android 模拟器中缺少位置所需的步骤(来自 这个答案):
It took me some time to track this down, but I think I've found the steps needed to "fix" the lack of a location in the Android emulator (from this answer):
首先,打开 ddms(Dalvik 调试监视器).在 Windows 上,导航到android-sdk\tools 目录并运行 ddms.bat.中的第一行左上角的窗格将读取类似模拟器-####"的内容,例如模拟器-5560.
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.
打开命令提示符窗口.输入'telnet localhost ####'替换您在上面找到的数字.这将打开一个telnetandroid 模拟器的窗口.
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
(我很确定您可以添加海拔作为第三个数字.)GPS图标将出现在模拟器的通知栏中.地理位置是现在可用.此时,我可以在我的应用程序中获取位置数据并在其他应用中,例如地图.
(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.
这篇关于钛地理定位在 Android 模拟器中不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!