DDMS не может отправить местоположение в эмулятор. Я попытался отправить только местоположение из DDMS, но эмулятор не смог получить местоположение. Ничего не отображается в журнале DDMS, когда я нажимаю кнопку «Отправить».Отправьте GPS-координаты на эмулятор Android, используя DDMS, telnet или любые другие средства
Я попытался отправить geo fix из telnet, который возвращает OK, но на самом деле не обновляет местоположение, или если это невозможно, я не могу прочитать его через свое приложение.
Приложение работает должным образом в устройстве, оно может захватывать данные местоположения тестового устройства, но не в состоянии захватить данные о местоположении, отправленные в эмулятор, либо через DDMS, либо через telnet.
Я тестирую эмулятор Android 2.2. Может ли кто-нибудь сообщить мне, что не так?
Мое приложение (см. Ниже) написано на C# с использованием Mono для Android и может потребоваться исправление (я новичок на всех Android-устройствах, поэтому я мог что-то пропустить). OnLocationChanged (Location location) просто не срабатывает, как если бы слушатель не был правильно определен. Любая помощь оценивается.
Примечание: При первом запуске этой операции LocationManager.GetLastKnownLocation имеет значение NULL, но материал поставщика теста не доступен. Когда я снова запускаю его, GetLastKnowLocation по-прежнему является нулевым, но доступ к нему и настройкам тестируемого поставщика. Weird.
[Activity(Label = "Location Demo")]
public class LocationActivity : Activity, ILocationListener
{
private TextView _locationText;
private LocationManager _locationManager;
private StringBuilder _builder;
private Geocoder _geocoder;
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
SetContentView(Resource.Layout.LocationActivity);
_geocoder = new Geocoder(this);
_locationText = FindViewById<TextView>(Resource.Id.TextView1);
_locationManager = (LocationManager)GetSystemService(LocationService);
if (_locationManager.GetLastKnownLocation("gps") == null)
{
_locationManager.AddTestProvider("gps", false, false, false, false, false, false, false, 0, 5);
_locationManager.SetTestProviderEnabled("gps", true);
Location loc = new Location("gps");
loc.Latitude = 50;
loc.Longitude = 50;
_locationManager.SetTestProviderLocation("gps", loc);
}
Location lastKnownLocation = _locationManager.GetLastKnownLocation("gps");
if (lastKnownLocation != null)
{
_locationText.Text += string.Format("Last known location, lat: {0}, long: {1}", lastKnownLocation.Latitude, lastKnownLocation.Longitude);
}
else
{
_locationText.Text += string.Format("Last location unknown");
}
_locationManager.RequestLocationUpdates("gps", 5000, 2, this);
}
public void OnLocationChanged(Location location)
{
_locationText.Text += string.Format("Location updated, lat: {0}, long: {1}", location.Latitude, location.Longitude);
}
public void OnProviderDisabled(string provider){}
public void OnProviderEnabled(string provider){}
public void OnStatusChanged(string provider, Android.Locations.Availability availability, Bundle extras){}
}
Kudos to https://stackoverflow.com/users/170333/greg-shackles за то, что вы зашли так далеко.
Что произойдет, если вы удалите код поставщика тестов? Это может переопределить данные о местоположении, которые вы предоставляете. –
Удаление тестового провайдера означает, что GetLastKnownLocation всегда возвращает null – cymorg