package com.jiuqi.njt.ui;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.KeyEvent;
import com.amap.api.navi.AMapNavi;
import com.amap.api.navi.AMapNaviView;
import com.amap.api.navi.AMapNaviViewListener;
import com.amap.api.navi.AMapNaviViewOptions;
import com.amap.api.search.core.LatLonPoint;
import com.jiuqi.njt.R;
import com.jiuqi.njt.navicontroller.TTSController;
import com.jiuqi.njt.ui.route.RouteNavActivity;
import com.jiuqi.njt.util.Constants;
/**
*
*导航界面
*
* */
public class SimpleNaviActivity extends Activity implements
AMapNaviViewListener {
//导航View
private AMapNaviView mAmapAMapNaviView;
//是否为模拟导航
private boolean mIsEmulatorNavi = true;
//记录有哪个页面跳转而来,处理返回键
private int mCode=-1;
private LatLonPoint endPoint;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_simplenavi);
Bundle bundle = getIntent().getExtras();
processBundle(bundle);
init(savedInstanceState);
}
private void processBundle(Bundle bundle) {
if (bundle != null) {
mIsEmulatorNavi = bundle.getBoolean(Constants.ISEMULATOR, true);
mCode=bundle.getInt(Constants.ACTIVITYINDEX);
endPoint = getIntent().getParcelableExtra(Constants.PARAM_ENDPOINT);
}
}
/**
* 初始化
*
* @param savedInstanceState
*/
private void init(Bundle savedInstanceState) {
mAmapAMapNaviView = (AMapNaviView) findViewById(R.id.simplenavimap);
mAmapAMapNaviView.onCreate(savedInstanceState);
mAmapAMapNaviView.setAMapNaviViewListener(this);
TTSController ttsManager = TTSController.getInstance(this);// 初始化语音模块
ttsManager.init();
AMapNavi.getInstance(this).setAMapNaviListener(ttsManager);// 设置语音模块播报
TTSController.getInstance(this).startSpeaking();
if (mIsEmulatorNavi) {
// 设置模拟速度
AMapNavi.getInstance(this).setEmulatorNaviSpeed(100);
// 开启模拟导航
AMapNavi.getInstance(this).startNavi(AMapNavi.EmulatorNaviMode);
} else {
// 开启实时导航
AMapNavi.getInstance(this).startNavi(AMapNavi.GPSNaviMode);
}
}
//-----------------------------导航界面回调事件------------------------
/**
* 导航界面返回按钮监听
* */
@Override
public void onNaviCancel() {
Intent intent = new Intent(SimpleNaviActivity.this,
RouteNavActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
Bundle bundle=new Bundle();
bundle.putParcelable(Constants.PARAM_ENDPOINT, endPoint);//记录终点坐标,以便关闭导航时能取到该值
intent.putExtras(bundle);
startActivity(intent);
finish();
}
@Override
public void onNaviSetting() {
}
@Override
public void onNaviMapMode(int arg0) {
// TODO Auto-generated method stub
}
@Override
public void onNaviTurnClick() {
// TODO Auto-generated method stub
}
@Override
public void onNextRoadClick() {
// TODO Auto-generated method stub
}
@Override
public void onScanViewButtonClick() {
// TODO Auto-generated method stub
}
/**
*
* 返回键监听事件
* */
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
Intent intent = new Intent(SimpleNaviActivity.this,
RouteNavActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
Bundle bundle=new Bundle();
bundle.putParcelable(Constants.PARAM_ENDPOINT, endPoint);//记录终点坐标,以便关闭导航时能取到该值
intent.putExtras(bundle);
startActivity(intent);
finish();
}
return super.onKeyDown(keyCode, event);
}
// ------------------------------生命周期方法---------------------------
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
mAmapAMapNaviView.onSaveInstanceState(outState);
}
@Override
public void onResume() {
super.onResume();
mAmapAMapNaviView.onResume();
}
@Override
public void onPause() {
super.onPause();
mAmapAMapNaviView.onPause();
AMapNavi.getInstance(this).stopNavi();
}
@Override
public void onDestroy() {
super.onDestroy();
mAmapAMapNaviView.onDestroy();
TTSController.getInstance(this).stopSpeaking();
}
@Override
public void onLockMap(boolean arg0) {
// TODO Auto-generated method stub
}
}