Эмулятор монодроида получает проблему с местоположением

StackOverflow https://stackoverflow.com/questions/4844499

Вопрос

Мне не удается заставить приложение Monodroid получить местоположение, когда я запускаю его в эмуляторе. Мой код выглядит примерно так:

LocationManager locationsManager= (LocationManager) threadSurfaceView.Context.GetSystemService (Context.LocationService);

location= locationManager.GetLastKnownLocation (Android.Content.Context.LocationService);

Однако всегда кажется, что возвращается значение null. Должен ли я каким-то образом настроить эмулятор, чтобы у него была служба местоположения и / или местоположение?

Я также пробовал добавить LocationListener:

locationListener= new MyLocationListener ();

LocationManager.RequestLocationUpdates (LocationManager.GpsProvider, 120000, 0, locationListener);

Но проблема, с которой я столкнулся, заключалась в создании класса MyLocationListener. Я реализовал четыре общедоступных метода (OnLocationChanged (Location) и т. Д.), Но Visual Studio пожаловалась на отсутствие метода Android.Runtime.IJavaObject - есть ли у кого-нибудь простой пример класса, реализующего ILocationListener?

Спасибо за любую помощь. Мартин

Это было полезно?

Решение

Я получил любезную ссылку на образец в

https://github.com/gshackles/Sample-Projects/blob/master/MonoDroid/MonoDroidSamples/MonoDroidSamples/DemoActivities/LocationDemo/LocationActivity.cs

Что отлично работает на моем Nexus S, но все равно не будет работать на эмуляторе, поэтому (возможно) проблема не в коде.

В этом примере мне понравился метод получения Activity для реализации ILocationListener, а также Activity - изящное решение для получения данных обратно из функции «слушателя», которая доставляла мне головную боль, когда ее переносили в другуюкласс.

Я загрузил набор сэмплов, и если вы сделаете то же самое, вам нужно будет взять mp3-файл - переименовать его в volbeat.mp3 и добавить его в папку "raw" в разделе "Resources", поскольку он отсутствует.

Другие советы

частичный ответ, поскольку я работаю над той же проблемой.

Ваш класс слушателя, реализующий ILocationListener, должен быть объявлен как

открытый класс myLocationListener: Java.Lang.Object, ILOcationListener { // плюс указанные вами публичные функции }

Моя попытка выглядит так:

родовое слово

но iAmHere на эмуляторе имеет значение null, даже когда я использовал TelNet для отправки местоположения гео-исправления через

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top