0

これが何度か尋ねられたことは知っていますが、待機時間を設定できる解決策が見つかりませんでした.

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 ループを使用してこれを行う方法がわかりません。

4

0 に答える 0