3

GPS を使用して最初の Android アプリケーションを設計しようとしています。現時点では、クリックすると経度と緯度のトーストメッセージを警告する描画可能なボタンがあります。telnet localhost 5554を使用してからgeo fix #number #numberを使用して値を入力しようとしましたが、結果が表示されません0 0。GPS座標を送信するDDMSの方法も試しましたが、同じ結果が得られました。

私の質問は、ジオフィックスを使用する正しい方法と、座標を送信する DDMS の方法とは正確には何であるかということです。を使用しましたがLocation、どれが正しい選択かわかりません。LocationMangerLocationListener

コードにエラーが存在する場合に備えて、コードが提供されます

@Override
public void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    Button button = (Button) findViewById(R.id.track);
    button.setOnClickListener(this);
    LocationManager location =(LocationManager)getSystemService(Context.LOCATION_SERVICE);
    Location loc = location.getLastKnownLocation(location.GPS_PROVIDER);
    updateWithNewLocation(loc);

  }

 private final LocationListener locationListener = new LocationListener() {
   public void onLocationChanged(Location location) {
     updateWithNewLocation(location);
   }

  private void updateWithNewLocation(Location l) {
  longitude = l.getLongitude();
  latitude = l.getLatitude();
  provider = l.getProvider();     
  }

    public void onClick(View v) { 
     Toast.makeText(this, "Your location is " + 
      longitude + " and " + latitude + " provided by: " + 
      provider, Toast.LENGTH_SHORT).show();          
   }     
}
4

2 に答える 2

3

2つのこと

1)緯度と経度を揮発性にする

2)GPSロケーションマネージャーにリスナーとして登録してみてください

location.requestLocationUpdates(LocationManager.GPS、100、1、locationListener);

これで、locationListenerオブジェクトにコールバックが送信されます。

ここでいくつかのサンプルAndroidGPSコードをチェックできます: http ://www.devx.com/wireless/Article/43005

(警告!このリンクを追加してから、DevXは登録ランディングを追加しました!)

于 2009-10-13T18:32:15.457 に答える
1

行 Location loc = location.getLastKnownLocation(location.GPS_PROVIDER); をコメント化します。

そして、ddms で gps を手動で更新してアプリケーションをテストします

機能する場合は、コードに戻って Location loc = location.getLastKnownLocation("gps"); と入力します。

于 2010-01-21T17:28:52.437 に答える