2014-09-04 59 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