当我在模拟器中运行时,我很难让我的Monodroid应用程序检索一个位置。我的代码看起来像这样:
LocationManager locationsManager =(LocationManager)threadSurfaceView.Context.GetSystemService(Context.LocationService);
location = locationsManager.GetLastKnownLocation(Android.Content.Context.LocationService);
但是,这似乎总是返回null。我是否必须以某种方式配置模拟器,以便它具有位置服务和/或位置?
我还尝试添加LocationListener:
locationListener = new MyLocationListener();
locationsManager.RequestLocationUpdates(LocationManager.GpsProvider,120000,0,locationListener);
但我遇到的问题是创建MyLocationListener类。我实现了四个公共方法(OnLocationChanged(Location)等),但Visual Studio抱怨缺少Android.Runtime.IJavaObject方法 - 有没有人有一个实现ILocationListener的类的简单示例?
感谢您的帮助。马丁
答案 0 :(得分:0)
部分答案,因为我正在处理同样的问题。
实现ILocationListener的侦听器类需要声明为
public class myLocationListener:Java.Lang.Object,ILOcationListener { //加上你确定的公共功能 }
我的尝试看起来像这样:
Android.Locations.Location iAmHere;
LocationManager myLoc = (LocationManager)GetSystemservice(Context.LocationService);
iAmHere = myLoc.GetLastKnownLocation(Android.Content.Context.LocationService);
但即使我使用TelNet通过
推送地理位置修复位置,模拟器上的iAmHere也为null答案 1 :(得分:0)
我在
处获得了一个样本链接哪个在我的Nexus S上工作正常,但仍无法在模拟器上运行 - 所以(可能)问题不是代码问题。
我喜欢这个获取“Activity”以实现ILocationListener以及Activity的示例中的技术 - 这是一个简单的解决方案,可以将数据从“侦听器”函数中取回,当它被包装到另一个函数中时让我很头疼类。
我下载了样本包,如果你这样做,那么你需要获取一个mp3文件 - 将其重命名为volbeat.mp3并将其添加到“Resources”中的“raw”文件夹中,因为它缺失。