GPS とネットワーク プロバイダーの両方から位置を検出し、Google マップに表示するアプリケーションを実装しようとしています。これは成功しましたが、質問があります。Activity の onCreate() でプロバイダーを取得します (LocationListener を拡張します)。
locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
Criteria criteria = new Criteria();
provider = locationManager.getBestProvider(criteria, false);
location = locationManager.getLastKnownLocation(provider);
それは正常に動作します。私の問題は、onLocationChange() が呼び出されたときに、それを呼び出したプロバイダーが GPS または NETWORK である場合、別の方法で動作する必要があることです。どちらかを知る方法はありますか?より明確にするために:
が呼び出されたときonLocationChanged(Location location)
に、どのプロバイダーが呼び出しを行ったかを知る機会はありますか? プロバイダー文字列でを使用しようとしましたif
が、機能しないようです。