2012-01-13 43 views
1

我正在嘗試創建一個簡單的應用程序,以便在使用VS 2010和Mono for Android的Android手機上獲取用戶座標。所有的樣本似乎都是用java編寫的,因爲我不是java開發人員,所以很容易混淆。如果任何人有一些示例代碼使用只有 C#它將不勝感激。Mono for Android使用C#&VS 2010的位置

+0

這個答案似乎相關:http://stackoverflow.com/a/4724618/635634 – 2012-01-13 14:29:33

回答

1

您可以通過實現ILocationListener接口來創建偵聽器。這是一個活性的樣品也作爲一個位置監聽器(雖然它可以是一個單獨的類,如果你想太多):

[Activity(Label = "Location Demo")] 
public class LocationActivity : Activity, ILocationListener 
{ 
    protected override void OnCreate(Bundle savedInstanceState) 
    { 
     base.OnCreate(savedInstanceState); 

     SetContentView(Resource.Layout.Main); 

     var locationManager = (LocationManager)GetSystemService(LocationService); 

     var criteria = new Criteria { Accuracy = Accuracy.NoRequirement }; 
     string bestProvider = locationManager.GetBestProvider(criteria, true); 

     locationManager.RequestLocationUpdates(bestProvider, 5000, 2, this); 
    } 

    public void OnLocationChanged(Location location) 
    { 
    } 

    public void OnProviderDisabled(string provider) 
    { 
    } 

    public void OnProviderEnabled(string provider) 
    { 
    } 

    public void OnStatusChanged(string provider, Availability status, Bundle extras) 
    { 
    } 
} 

我有一個類似的樣品多達here讀取的座標,並將它們打印到屏幕上。

+1

非常好 - 我以前找過你的頁面,所有的作品,或者應該工作,如果我有一個電話來測試它。當我使用仿真器時,我需要設置測試位置提供者(可能還有其他一些東西),我根本無法理解該部分。不過,你完美地回答了這個問題謝謝。 – cymorg 2012-01-13 14:54:14

+0

您也可以在模擬器中模擬位置數據,可以通過Android SDK附帶的DDMS工具或使用Telnet連接到仿真器並使用「geo」命令。更多信息在這裏:http://developer.android.com/guide/topics/location/obtaining-user-location.html#MockData – 2012-01-13 16:02:57

+0

啊,DDMS,另一個RTFM案例 - 再次感謝Greg。 – cymorg 2012-01-13 23:11:57