これが何度か尋ねられたことは知っていますが、待機時間を設定できる解決策が見つかりませんでした.
GPS 経由でユーザーの現在地を取得するために使用するコードを次に示します。
/**
* Finds users location using gps
* satelite network.
*
* @param FragmentActivity
* @return Location
*/
private static Location gpsLocation(FragmentActivity context)
{
// Fetch LocationManager service & instance of UserLocator
LocationManager provider = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
UserLocator locator = new UserLocator();
// Attempt to get a fix on users location
provider.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locator);
// Return users location using GPS Service
return locator.location;
}
/**
* Use to listen for user location updates
* TODO: Reimplement as a anonymous class
*/
class UserLocator implements LocationListener
{
// Public accessor
public Location location;
public void onLocationChanged(Location location)
{
if(location != null)
{
// We have a fix on users location
this.location = location;
}
}
public void onProviderDisabled(String provider) {}
public void onProviderEnabled(String provider) {}
public void onStatusChanged(String provider, int status, Bundle extras) {}
}
ここで、ユーザーの場所を取得するために実際にgpsLocation()
メソッドに 30 秒を与えたいと思いますが、wait(100) または for ループを使用してこれを行う方法がわかりません。