私はいくつかのコードを持っています:
マニフェスト
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
活動分野
private LocationManager locationManager;
private LocationListener mlocListener;
onCreate 初期化
locationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
mlocListener = new MyLocationListener();
locationManager.requestLocationUpdates( LocationManager.GPS_PROVIDER, 0, 0, mlocListener);
クラス MyLocationListener
public class MyLocationListener implements LocationListener{
@Override
public void onLocationChanged(Location loc){
}
@Override
public void onProviderDisabled(String provider){
Toast.makeText( getApplicationContext(), "Gps Disabled", Toast.LENGTH_SHORT ).show();
}
@Override
public void onProviderEnabled(String provider){
Toast.makeText( getApplicationContext(),"Gps Enabled",Toast.LENGTH_SHORT).show();
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras){
}
}
そして私はボタン、onclick =ユーザーのGPS位置を取得しています
public void getUserLocation(View v){
boolean enabled = locationManager
.isProviderEnabled(LocationManager.GPS_PROVIDER);
if (!enabled) {
Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
startActivity(intent);
} else {
Location location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
Toast.makeText(getApplicationContext(), String.valueOf(location.getLatitude()) + " " + String.valueOf(location.getLongitude()), Toast.LENGTH_SHORT).show();
}
}
getLastKnownLocation でエラーが発生しました。locationManager に getLastKnownLocation があることを確認するにはどうすればよいですか?? requestLocationUpdates 自動で場所を取得する必要がありますね??
興味深いことに、requestLocationUpdates (minTime と minDistance) のどのパラメーターを使用する方がよいでしょうか?? ユーザーのバッテリーをあまり食べたくない