0

Built in Eclipse ツールを使用して Android Emulator に座標を送信するオプションをテストしていますが、座標を受信して​​いないようです。次の簡単なコードがあります。

public class Main extends MapActivity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    MapView view = (MapView) findViewById(R.id.themap);
    view.setBuiltInZoomControls(true);

    final MapController mp = view.getController();

    LocationManager manager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);

    LocationListener listener = new LocationListener() {

        public void onStatusChanged(String provider, int status, Bundle extras) {
            // TODO Auto-generated method stub

        }

        public void onProviderEnabled(String provider) {
            // TODO Auto-generated method stub

        }

        public void onProviderDisabled(String provider) {
            // TODO Auto-generated method stub

        }

        public void onLocationChanged(final Location location) {
            // TODO Auto-generated method stub
            mp.setCenter(new GeoPoint((int)location.getLatitude(), (int)location.getLongitude()));

        }
    };
    manager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, listener);

}



@Override
protected boolean isRouteDisplayed() {
    // TODO Auto-generated method stub
    return false;
}
}

マニフェストに ACCESS_FINE_LOCATION と INTERNET の権限があります。誰かが何か説明があれば、私は感謝します。

4

2 に答える 2

0

これは私にとってはうまくいきます。

リスナーの実装...

public class MyLocationListener implements LocationListener {
    public static final String TAG = "MyLocationListener";

    private Context context;

    public MyLocationListener(Context c) {
        this.context = c;
    }

public void onLocationChanged(android.location.Location location) {
        Log.d(TAG,"LocationChanged: Lat: "+location.getLatitude()+" Lng: "+location.getLongitude());
    }
}

使用法...

MyLocationListener locationListener = new MyLocationListener(this);
// Acquire a reference to the system Location Manager
LocationManager locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);
// Register the listener with the Location Manager to receive location updates
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0,locationListener);
于 2012-06-21T01:10:14.153 に答える
0

追加しましたか

<uses-library android:name="com.google.android.maps" />

マニフェストのアプリケーション タグに? Google マップのデータを受け取るには、Google からの SDK デバッグ証明書の MD5 フィンガープリントも必要です。ここで入手できます。

onLocationChanged メソッド内にブレークポイントを配置して、ロケーション コマンドをエミュレータに送信するときに停止するかどうかを確認してください。これは、証明書がまだない場合にも機能するはずです。

于 2012-05-19T12:06:46.113 に答える