2

Android マップを使用して学期プロジェクトの車両追跡を行っています。助けを求めています。SMS 経由で車両から位置情報を受信して​​います。新しい SMS を受信したときに、位置情報を表示したり、地図を更新したりしたいです。

一定の間隔を置いた後、または新しい SMS の受信時にマップを更新する方法を知りたいです。

たとえば、 12.3245678 、 52.3333333 12.3245689 、 52.3333334 12.3245680 、 52.3333335 12.3245682 、 52.3333336

GPSトラッカーとネットワークプロバイダーのgetlanitude location.getlangitude()()とgetlantitude()を使用してマップを更新するだけだと思います。

ただし、GeoPoint を手動で設定し、ロケーション リスナーを更新する方法。または、マップで更新する方法として、データベースに位置データがあり、それも役立つ場合があります

4

2 に答える 2

1
public class SMSNotificationListener extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
    // Here you can extract the intent extra ( lat , longs )
    // Even you can check some message code to identify valid message
    // Can call some different MapDisplayActivity with lat , longs 
    // in Intent.putExtra(...)
    }

}

AndroidManifest にレシーバーを追加します -

 <receiver android:name=".SMSNotificationListener">
   <action android:name="android.provider.Telephony.SMS_RECEIVED"/>
 </receiver>

MapDisplayActivity で ---

@Override
protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_map);
  mapView = (MapView) findViewById(R.id.mapview);
  setMaptoProvidedLocation();
}

/**
 * Setting Google Map to provided location 
 */
 private void setMaptoProvidedLocation() {
  Intent intent = getIntent();
  LAT = intent.getIntExtra(DisplayActivity.LAT, DisplayActivity.DEF_LAT);
  LNG = intent.getIntExtra(DisplayActivity.LNG, DisplayActivity.DEF_LNG);

  mapView.setBuiltInZoomControls(true);
  mapView.setSatellite(true);
  mapController = mapView.getController();


  mapController.setZoom(ZOOM_LEVEL - ZOOM_LEVEL / 2);
  GeoPoint vehicleLocation = new GeoPoint(LAT, LNG);
  mapController.animateTo(vehicleLocation);
  // You can also add map overlays ...

}

 //If MapDisplayActivity is in forground and we want to update the new location

  @Override
  public void onNewIntent(Intent intent) {
  super.onNewIntent(intent);
  setIntent(intent);
  Log.d("MapActivity","Got new Data again");
  setMaptoProvidedLocation(false);
  } 
于 2013-01-17T12:33:27.263 に答える
0

さて、あなたはここで多くのことをやっています。

  1. SMS メッセージを傍受するには、これらをリッスンする必要があります。参照: Android – 着信 SMS メッセージをリッスンする

  2. 位置データに基づいてマーカー付きの地図を作成するには、google maps API V.2 を使用します。参照: Google Maps Android API v2これは、位置データからマーカーを使用してマップを作成する方法について知っておく必要があることをすべて教えてくれます。

  3. 固定間隔でデータベースからマップを更新する場合は、希望する固定間隔でデータベースの更新をチェックする asynctask または Timer を作成することをお勧めします。

于 2013-01-17T11:14:18.817 に答える