0

エミュレータで実行すると、Monodroidアプリケーションが場所を取得するのに問題があります。私のコードは次のようになります。

LocationManager locationManager =(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クラスを作成することでした。4つのパブリックメソッド(OnLocationChanged(Location)など)を実装しましたが、Visual StudioはAndroid.Runtime.IJavaObjectメソッドがないことについて不平を言いました-ILocationListenerを実装するクラスの簡単な例はありますか?

助けてくれてありがとう。マーティン

4

2 に答える 2

0

私は同じ問題に取り組んでいるので、部分的な答え。

ILocationListenerを実装するリスナークラスは、次のように宣言する必要があります。

public class myLocationListener:Java.Lang.Object、ILOcationListener{//さらに識別したパブリック関数}

私の試みは次のようになります:

Android.Locations.Location iAmHere;
LocationManager myLoc = (LocationManager)GetSystemservice(Context.LocationService);
iAmHere = myLoc.GetLastKnownLocation(Android.Content.Context.LocationService);

しかし、TelNetを使用して地理的修正の場所をプッシュした場合でも、エミュレータではiAmHereがnullになります。

于 2011-02-01T17:11:14.510 に答える
0

でサンプルへの親切なリンクを取得しました

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

これは私のNexusSでは正常に機能しますが、エミュレータでは機能しません。したがって、(おそらく)問題はコードの問題ではありません。

このサンプルの「Activity」でILocationListenerとActivityを実装する手法が気に入りました。これは、別のクラスにラップされたときに頭痛の種であった「listener」関数からデータを取り戻すための優れたソリューションです。

サンプルのバンドルをダウンロードしました。同じことを行う場合は、mp3ファイルを取得する必要があります。名前をvolbeat.mp3に変更し、「Resources」内の「raw」フォルダーに追加します。

于 2011-02-02T14:53:07.680 に答える