0

LocationManagerで最初にFine_Locationを取得してから、使用できない場合はCoarse_Locationを取得してください。このタイプの階層をCriteriaAccuracyプロパティに設定できますか?

const string context = LocationService;
LocationManager locationManager = (LocationManager)GetSystemService(context);
Criteria criteria = new Criteria() { Accuracy = Accuracy.Fine | Accuracy.Coarse };
string provider = locationManager.GetBestProvider(criteria, true);
4

2 に答える 2

0

メソッドのドキュメントから取得GetBestProvider()

指定された基準を最もよく満たすプロバイダーの名前を返します。呼び出し元のアクティビティによるアクセスが許可されているプロバイダーのみが返されます。複数のプロバイダーが基準を満たす場合、精度が最も高いプロバイダーが返されます。

これは、あなたが探している動作のように聞こえます。

于 2012-04-06T15:26:36.900 に答える
0

位置をできるだけ正確にしたいが、GPS 信号を取得できない場合に null を返したくない

次に、両方のプロバイダーに登録する必要があります。利用可能なprovider = LocationManager.GetBestProvider(criteria, true);最適なプロバイダーが返されます。このプロバイダーが実際に修正を取得できるかどうかは確認されません。両方のプロバイダーへの登録については、こちらこちらを参照してください

于 2013-07-15T13:02:09.310 に答える