Exemplo n.º 1
0
  @Override
  public void onReceive(Context context, Intent intent) {
    String action = intent.getAction();
    Bundle bundle = intent.getExtras();
    Log.e("NaviGuidanceReceiver", action);
    if (action.equals(ACTION)) {

      if (bundle != null) {

        int type = bundle.getInt(ACTION_TYPE);

        switch (type) {
          case MSG_ID_GUIDANCEINFO:
            stringArray = bundle.getStringArray(GUIDANCE_ARRAY_PARAM);
            Log.e("NaviGuidanceReceiver", stringArray[0]);
            if (ScrrenoffActivity.screen != null) {
              // ScrrenoffActivity.screen.currentRoad.setText(stringArray[6]);
              ScrrenoffActivity.screen.nextRoad.setText(stringArray[7]);
              long next_road_distance = Long.parseLong(stringArray[1]);
              int road_icon = Integer.parseInt(stringArray[0]);
              switch (road_icon) {
                case 0:
                  ScrrenoffActivity.screen.maneuverImage.setBackgroundResource(R.drawable.ar_1);
                  break;
                case 1:
                  ScrrenoffActivity.screen.maneuverImage.setBackgroundResource(R.drawable.ar_5);
                  break;
                case 2:
                  ScrrenoffActivity.screen.maneuverImage.setBackgroundResource(R.drawable.ar_3);
                  break;
                case 4:
                  ScrrenoffActivity.screen.maneuverImage.setBackgroundResource(R.drawable.ar_8);
                  break;
                case 5:
                  ScrrenoffActivity.screen.maneuverImage.setBackgroundResource(R.drawable.ar_2);
                  break;
                case 6:
                  ScrrenoffActivity.screen.maneuverImage.setBackgroundResource(R.drawable.ar_4);
                  break;
                default:
                  ScrrenoffActivity.screen.maneuverImage.setBackgroundResource(R.drawable.ar_1);
                  break;
              }
              ScrrenoffActivity.screen.distanceText.setText(
                  GaoDeBroadCast.getDidistance((int) next_road_distance));
              long total_remain_distance = Long.parseLong(stringArray[2]);
              long arrived_time = Long.parseLong(stringArray[4]);
              ScrrenoffActivity.screen.remainDistanceText.setText(
                  GaoDeBroadCast.getRemainDidistance(
                      (int) total_remain_distance, System.currentTimeMillis() + arrived_time));
              MainApplication.gaodeisnavi = true;
              MainApplication.getHander().removeMessages(2);
              MainApplication.getHander().sendEmptyMessageDelayed(2, 20000);
            }
            break;

          default:
            break;
        }
      }
    }
  }