浏览器版本低!无法浏览完整内容,建议升级或更换浏览器。

文档全面上新

更科技的视觉体验,更高效的页面结构,快前往体验吧!

体验新版

概述

本次导航当前位置距离目的地剩下的距离及时间信息,如下图所示:

guide_termination.png

关键代码

@Override
public void onRemainInfo(BNRGRemainInfo arg0) {
	Log.d(BNRemoteConstants.MODULE_TAG, "onRemainInfo.............distance = " + arg0.getRemainDistance() + ", time = " + arg0.getRemainTime());
 
	final String remainDistance = calculateTotalRemainDistString(arg0.getRemainDistance());
	final String remainTime = calculateArriveTime(arg0.getRemainTime());
	mMainHandler.post(new Runnable() {
 
		@Override
		public void run() {
			mTotalDistTV.setText(remainDistance);
			mArriveTimeTV.setText(remainTime);
		}
	});
}
 
private String calculateTotalRemainDistString(int nDist) {
	StringBuffer builder = new StringBuffer();
	StringUtils.formatDistance(nDist, UnitLangEnum.ZH, builder);
	String totalRemainDistS = builder.toString();
 
	return totalRemainDistS;
}
 
private String calculateArriveTime(int remainTime) {
	long mArriveTime = System.currentTimeMillis();
	Date curDate = new Date(mArriveTime);
	mArriveTime += ( remainTime * 1000 );
	Date arriveDate = new Date(mArriveTime);
 
	SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");
	String mArriveTimeS = sdf.format(arriveDate);
 
    GregorianCalendar curCal = new GregorianCalendar();
    curCal.setTime(curDate);
    GregorianCalendar arriveCal = new GregorianCalendar();
    arriveCal.setTime(arriveDate);
 
	if ( curCal.get(GregorianCalendar.DAY_OF_MONTH) == arriveCal.get(GregorianCalendar.DAY_OF_MONTH) ) {
        if ( 0 == arriveCal.get(GregorianCalendar.HOUR_OF_DAY)) {
            mArriveTimeS = String.format(getString(R.string.nsdk_string_rg_arrive_time_at_wee), mArriveTimeS);
        } else {
            mArriveTimeS = String.format(getString(R.string.nsdk_string_rg_arrive_time), mArriveTimeS);
        }
	} else {
		int interval = getIntervalDays(curDate, arriveDate);
		if( interval == 1 ) {
            if ( arriveCal.get(GregorianCalendar.HOUR_OF_DAY) >= 0 && arriveCal.get(GregorianCalendar.HOUR_OF_DAY) < 4 ) {
                mArriveTimeS = String.format(getString(R.string.nsdk_string_rg_arrive_time),getString(R.string.nsdk_string_rg_wee_hours));
            } else {
                mArriveTimeS = String.format(getString(R.string.nsdk_string_rg_arrive_time),
                        getString(R.string.nsdk_string_rg_tomorrow));
            }
		} else if ( interval == 2 ) {
			mArriveTimeS = String.format(getString(R.string.nsdk_string_rg_arrive_time), 
					getString(R.string.nsdk_string_rg_the_day_after_tomorrow));
		} else if ( interval > 2 ) {
			mArriveTimeS = String.format(getString(R.string.nsdk_string_rg_arrive_time_after_day), "" + interval);
		} else {
			mArriveTimeS = String.format(getString(R.string.nsdk_string_rg_arrive_time), mArriveTimeS);
		}
	}
 
	return mArriveTimeS;
}
  • 文档根本没法用

  • 文档水平很差

  • 文档水平一般

  • 文档不错

  • 文档写的很好

如发现文档错误,或对此文档有更好的建议,请在下方反馈。问题咨询请前往反馈平台提交工单咨询。

提交反馈

拖动标注工具

添加矩形标注

添加箭头标注

完成

取消