0

LocationManagerAndroidに関するいくつかの情報/ヘルプについて少し助けが必要です。このコードを使用して、ユーザーの場所に応じてユーザー固有の情報を取得していますが、状況によっては取得しますprovider=null(例外がサーバーにアップロードされ、再現できないため、いつ取得するかはわかりません)。

サンプルコードは次のとおりです。

LocationManager locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);
Criteria crta = new Criteria(); 
crta.setAccuracy(Criteria.ACCURACY_FINE); 
crta.setAltitudeRequired(false); 
crta.setBearingRequired(false); 
crta.setCostAllowed(true); 
crta.setPowerRequirement(Criteria.POWER_LOW); 
String provider = locationManager.getBestProvider(crta, true);
Log.d("","provider : "+provider);
// String provider = LocationManager.GPS_PROVIDER; 
Location location = locationManager.getLastKnownLocation(provider); 
updateWithNewLocation(location); 
locationManager.requestLocationUpdates(provider, 1000, 0, locationListener);

プロバイダーがnullの場合、現在の場所を取得して使用する方法がある場合はどうすればよいですか?

前もって感謝します!

4

1 に答える 1

1

このコードを試して、プロバイダーの少なくとも1つを有効にする必要があることを忘れないでください

LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
Criteria crta = new Criteria();
crta.setAccuracy(Criteria.ACCURACY_FINE);
crta.setAltitudeRequired(true);
crta.setBearingRequired(true);
crta.setCostAllowed(true);
crta.setPowerRequirement(Criteria.POWER_LOW); 
String provider = locationManager.getBestProvider(crta, true);
Log.d("","provider : "+provider);
// String provider = LocationManager.GPS_PROVIDER; 
locationManager.requestLocationUpdates(provider, 1000, 0, locationListener);
Location location = locationManager.getLastKnownLocation(provider); 
//updateWithNewLocation(location); 
于 2012-04-11T09:59:06.773 に答える