2014-09-04 55 views
0

我试图将位置服务实现到我的Xamarin Android应用程序中,并且在xamarin页面上的“获取当前设备位置”指令中的特定代码行出现问题在这里:http://developer.xamarin.com/recipes/android/os_device_resources/gps/get_current_device_location/Xamarin Android位置服务 - InitializeLocationManager方法

一个我需要使用的方法是在以下几点:

public class MapFragment : Android.Support.V4.App.Fragment, ILocationListener 
{ 

    Location _currentLocation; 
    LocationManager _locationManager; 
    TextView _locationText; 
    TextView _addressText; 
    String _locationProvider; 

// 
//code removed for clarity 
// 

void InitializeLocationManager() 
{ 
    _locationManager = (LocationManager)GetSystemService(LocationService); 
    Criteria criteriaForLocationService = new Criteria 
              { 
               Accuracy = Accuracy.Fine 
              }; 
    IList<string> acceptableLocationProviders = _locationManager.GetProviders(criteriaForLocationService, true); 

    if (acceptableLocationProviders.Any()) 
    { 
     _locationProvider = acceptableLocationProviders.First(); 
    } 
    else 
    { 
     _locationProvider = String.Empty; 
    } 
} 

然而,“GetSystemService(LocationService)”的方法的第二线部分是不承认(不不存在于当前上下文错误中)。

我试着

this.Activity.GetSystemService(this.Activity.LocvationService) 

排位赛,但后来我得到的错误“静态成员Android.contenxt.context.locationservice不能用一个实例引用来访问,与类型名限定它,而不是”

我正在使用Android.support.v4软件包,如果它有所作为(就像Google Map API那样),并且您可以看到它是一个片段类。

有人可以帮助这个吗?

回答

0

尝试:

_locationManager = (LocationManager)Activity.GetSystemService(Context.LocationService); 

为了解释...

LocationServiceAndroid.Content.Context定义的静态字符串属性,用于在应用程序中检索LocationManager的一个实例。 Activity小类Android.Content.Context因此在其类范围内具有LocationService静态属性。

然而片段并没有继承Android.Content.Context,所以没有定义LocationService。调用Activity.GetSystemService(LocationService)未定义,因此编译错误。

+0

非常感谢您的评论。我会尽快给你一个去。 – 2014-09-04 15:03:17