Google Play サービス経由で位置情報を取得する簡単な方法を作成しようとしています。このようなもの(ええ、おそらく他の問題がいくつかあります..):
Location getLastLocation() {
final Location location = new Location("");
locationClient.registerConnectionCallbacks(new GooglePlayServicesClient.ConnectionCallbacks() {
@Override
public void onConnected(final Bundle connectionHint) {
location.set(locationClient.getLastLocation());
locationClient.unregisterConnectionCallbacks(this);
locationClient.disconnect();
}
@Override
public void onDisconnected() {};
});
if (!locationClient.isConnecting() || !locationClient.isConnected()) {
locationClient.connect();
}
return location;
}
明らかに、それは empty を返しますLocation
。では、コールバックが終了するまで待機させるにはどうすればよいでしょうか? もちろん、メインスレッドをブロックすることなく....