package com.wise.wawc;
import java.io.File;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.List;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import com.baidu.mapapi.search.MKAddrInfo;
import com.baidu.mapapi.search.MKBusLineResult;
import com.baidu.mapapi.search.MKDrivingRouteResult;
import com.baidu.mapapi.search.MKPoiResult;
import com.baidu.mapapi.search.MKSearch;
import com.baidu.mapapi.search.MKSearchListener;
import com.baidu.mapapi.search.MKShareUrlResult;
import com.baidu.mapapi.search.MKSuggestionResult;
import com.baidu.mapapi.search.MKTransitRouteResult;
import com.baidu.mapapi.search.MKWalkingRouteResult;
import com.baidu.platform.comapi.basestruct.GeoPoint;
import com.iflytek.cloud.speech.RecognizerListener;
import com.iflytek.cloud.speech.RecognizerResult;
import com.iflytek.cloud.speech.SpeechConstant;
import com.iflytek.cloud.speech.SpeechError;
import com.iflytek.cloud.speech.SpeechListener;
import com.iflytek.cloud.speech.SpeechRecognizer;
import com.iflytek.cloud.speech.SpeechUser;
import com.wise.data.CarData;
import com.wise.data.DevicesData;
import com.wise.extend.HScrollLayout;
import com.wise.extend.OnViewChangeListener;
import com.wise.pubclas.Constant;
import com.wise.pubclas.GetSystem;
import com.wise.pubclas.NetThread;
import com.wise.pubclas.Variable;
import com.wise.service.JsonParser;
import com.wise.sql.DBExcute;
import com.wise.sql.DBHelper;
import android.app.AlertDialog;
import android.content.BroadcastReceiver;
import android.content.ContentValues;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.v4.app.Fragment;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.view.animation.LinearInterpolator;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;
public class Fragment_home extends Fragment{
private static final int Get_carLimit = 1; // 获取车辆限行
private static final int Get_RealTimeWeather = 2; // 获取实时天气
private static final int Get_Fuel = 3; // 获取城市油价
private static final int Get_Cars = 4; // 获取车辆数据
private static final int Get_CarsLogo = 5; // 获取车辆图标
private static final int Get_Devicesdata = 6; // 获取终端信息
private static final int Get_persion = 7;// 获取个人信息
private static final int Get_device_info = 8; // 获取单个车辆定位,里程信息
private static final int Get_car_info = 9; // 获取单个车辆信息
private static final int Refresh = 10; // 刷新车辆信息
LinearLayout ll_image;
TextView tv_item_weather_date, tv_item_weather_wd, tv_item_weather,
tv_item_weather_sky, tv_item_weather_temp1,
tv_item_weather_index_xc, tv_item_weather_city, tv_item_oil_90,
tv_item_oil_93, tv_item_oil_97, tv_item_oil_0, Tv_xx;
HScrollLayout ScrollLayout_car;
private ImageView saySomething = null; // 语音识别
private SpeechRecognizer iatRecognizer; // 识别对象
private StringBuffer sb = null;
ImageView voiceImage, iv_car_remind, iv_car_status, iv_car_traffic;
VoiceDialog voiceDialog = null;
String LocationCityCode = "";// 城市编码
String LocationCity = "";// 城市
int DefaultVehicleID;// 默认选中车辆id
boolean isNeedGetLogoFromUrl = false;
MKSearch mkSearch;
boolean isRefresh = true;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
return inflater.inflate(R.layout.activity_home, container, false);
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
mkSearch = new MKSearch();
//mkSearch.init(app.mBMapManager, mkSearchListener);
ll_image = (LinearLayout) getActivity().findViewById(R.id.ll_image);
ImageView iv_activity_home_menu = (ImageView) getActivity().findViewById(R.id.iv_activity_home_menu);
iv_activity_home_menu.setOnClickListener(onClickListener);
ImageView iv_activity_car_home_search = (ImageView) getActivity().findViewById(R.id.iv_activity_car_home_search);
iv_activity_car_home_search.setOnClickListener(onClickListener);
Button bt_activity_home_help = (Button) getActivity().findViewById(R.id.bt_activity_home_help);
bt_activity_home_help.setOnClickListener(onClickListener);
Button bt_activity_home_risk = (Button) getActivity().findViewById(R.id.bt_activity_home_risk);
bt_activity_home_risk.setOnClickListener(onClickListener);
iv_car_remind = (ImageView) getActivity().findViewById(R.id.iv_car_remind);
iv_car_status = (ImageView) getActivity().findViewById(R.id.iv_car_status);
iv_car_traffic = (ImageView) getActivity().findViewById(R.id.iv_car_traffic);
ScrollLayout_car = (HScrollLayout) getActivity().findViewById(R.id.ScrollLayout_car);
ScrollLayout_car.setOnViewChangeListener(new OnViewChangeListener() {
@Override
public void OnViewChange(int view) {
if (Variable.carDatas.size() != 0) {
DefaultVehicleID = view;
iv_car_traffic.setVisibility(View.GONE);
iv_car_status.setVisibility(View.GONE);
changeImage(view);
saveVehicleID(view);
notiRemind(view);
getCarInfo(view);
getCarRemindFromUrl(view);
carLimit(view);
}
}
@Override
public void OnLastView() {
}
});
Button bt_activity_home_vehicle_status = (Button) getActivity().findViewById(R.id.bt_activity_home_vehicle_status);
bt_activity_home_vehicle_status.setOnClickListener(onClickListener);
Button bt_activity_home_car_remind = (Button) getActivity().findViewById(R.id.bt_activity_home_car_remind);
bt_activity_home_car_remind.setOnClickListener(onClickListener);
Button bt_activity_home_traffic = (Button) getActivity().findViewById(R.id.bt_activity_home_traffic);
bt_activity_home_traffic.setOnClickListener(onClickListener);
Button bt_activity_home_share = (Button) getActivity().findViewById(R.id.bt_activity_home_share);
bt_activity_home_share.setOnClickListener(onClickListener);
saySomething = (ImageView) getActivity().findViewById(R.id.iv_home_say_something);
saySomething.setOnClickListener(onClickListener);
// 用户登录(使用SpeechRecognizer类需要授权)
SpeechUser.getUser().login(getActivity(), null, null,
"appid=" + Variable.MscKey, listener);
iatRecognizer = SpeechRecognizer.createRecognizer(getActivity());
HScrollLayout ScrollLayout_other = (HScrollLayout) getActivity().findViewById(R.id.ScrollLayout_other);
tv_item_weather_date = (TextView) getActivity().findViewById(R.id.tv_item_weather_date);
tv_item_weather_wd = (TextView) getActivity().findViewById(R.id.tv_item_weather_wd);
tv_item_weather = (TextView) getActivity().findViewById(R.id.tv_item_weather);
tv_item_weather_sky = (TextView) getActivity().findViewById(R.id.tv_item_weather_sky);
tv_item_weather_temp1 = (TextView) getActivity().findViewById(R.id.tv_item_weather_temp1);
tv_item_weather_index_xc = (TextView) getActivity().findViewById(R.id.tv_item_weather_index_xc);
tv_item_weather_city = (TextView) getActivity().findViewById(R.id.tv_item_weather_city);
tv_item_weather_city.setOnClickListener(onClickListener);
Tv_xx = (TextView) getActivity().findViewById(R.id.Tv_xx);
tv_item_oil_90 = (TextView) getActivity().findViewById(R.id.tv_item_oil_90);
tv_item_oil_93 = (TextView) getActivity().findViewById(R.id.tv_item_oil_93);
tv_item_oil_97 = (TextView) getActivity().findViewById(R.id.tv_item_oil_97);
tv_item_oil_0 = (TextView) getActivity().findViewById(R.id.tv_item_oil_0);
final ImageView iv_weather = (ImageView) getActivity().findViewById(R.id.iv_weather);
final ImageView iv_oil = (ImageView) getActivity().findViewById(R.id.iv_oil);
// tv_item_oil_update =
// (TextView)oilView.findViewById(R.id.tv_item_oil_update);
ScrollLayout_other.setOnViewChangeListener(new OnViewChangeListener() {
@Override
public void OnViewChange(int view) {
switch (view) {
case 0:
iv_weather.setImageResource(R.drawable.home_body_cutover_press);
iv_oil.setImageResource(R.drawable.home_body_cutover);
break;
case 1:
iv_weather.setImageResource(R.drawable.home_body_cutover);
iv_oil.setImageResource(R.drawable.home_body_cutover_press);
break;
}
}
@Override
public void OnLastView() {
}
});
getSp();
GetOldWeather();// 获取本地存储的数据
GetRealTimeWeather();
GetFuel();
registerBroadcastReceiver();
GetDBCars();
GetDevicesDB();
if (isNeedGetLogoFromUrl) {
new Thread(new getLogoThread()).start();
}
showCar();
GetDBPersionRemindData();
new Thread(new TimingThread()).start();
}
private void changeImage(int index) {
for (int i = 0; i < Variable.carDatas.size(); i++) {
ImageView imageView = (ImageView) ll_image.getChildAt(i);
if (index == i) {
imageView.setImageResource(R.drawable.home_body_cutover_press);
} else {
imageView.setImageResource(R.drawable.home_body_cutover);
}
}
}
private void saveVehicleID(int index) {
SharedPreferences preferences = getActivity().getSharedPreferences(
Constant.sharedPreferencesName, Context.MODE_PRIVATE);
Editor editor = preferences.edit();
editor.putInt(Constant.DefaultVehicleID, index);
editor.commit();
}
private TextView[][] mTextViews;
// 显示车辆
private void showCar() {
ScrollLayout_car.removeAllViews();
mTextViews = new TextView[Variable.carDatas.size()][2];
if (Variable.carDatas.size() == 0) {
View view = LayoutInflater.from(getActivity()).inflate(
R.layout.item_home_car, null);
ScrollLayout_car.addView(view);
ImageView iv_carLogo = (ImageView) view
.findViewById(R.id.iv_carLogo);
iv_carLogo.setImageResource(R.drawable.body_nothing_icon);
TextView tv_car_number = (TextView) view
.findViewById(R.id.tv_car_number);
tv_car_number.setOnClickListener(onClickListener);
tv_car_number.setText("点击添加车辆");
TextView tv_activity_home_car_adress = (TextView) view
.findViewById(R.id.tv_activity_home_car_adress);
tv_activity_home_car_adress.setVisibility(view.INVISIBLE);
TextView tv_updateTime = (TextView) view
.findViewById(R.id.tv_updateTime);
tv_updateTime.setVisibility(view.INVISIBLE);
} else {
for (int i = 0; i < Variable.carDatas.size(); i++) {
CarData carData = Variable.carDatas.get(i);
View view = LayoutInflater.from(getActivity()).inflate(
R.layout.item_home_car, null);
ScrollLayout_car.addView(view);
TextView tv_car_number = (TextView) view
.findViewById(R.id.tv_car_number);
tv_car_number.setOnClickListener(onClickListener);
ImageView iv_carLogo = (ImageView) view
.findViewById(R.id.iv_carLogo);
TextView tv_activity_home_car_adress = (TextView) view
.findViewById(R.id.tv_activity_home_car_adress);
tv_activity_home_car_adress.setText("车辆位置获取中...");
tv_activity_home_car_adress.setOnClickListener(onClickListener);
mTextViews[i][0] = tv_activity_home_car_adress;
TextView tv_updateTime = (TextView) view
.findViewById(R.id.tv_updateTime);
mTextViews[i][1] = tv_updateTime;
tv_car_number.setText(carData.getObj_name());
Bitmap bimage = BitmapFactory.decodeFile(carData.getLogoPath());
if (bimage != null) {
iv_carLogo.setImageBitmap(bimage);
} else {
iv_carLogo.setImageResource(R.drawable.body_nothing_icon);
}
}
}
ll_image.removeAllViews();
for (int i = 0; i < Variable.carDatas.size(); i++) {
ImageView imageView = new ImageView(getActivity());
imageView.setImageResource(R.drawable.home_body_cutover_press);
imageView.setPadding(5, 0, 5, 0);
ll_image.addView(imageView);
}
if (Variable.carDatas.size() != 0) {
if (DefaultVehicleID >= Variable.carDatas.size()) {// 默认第一个车
DefaultVehicleID = 0;
}
iv_car_traffic.setVisibility(View.GONE);
iv_car_status.setVisibility(View.GONE);
changeImage(DefaultVehicleID);
saveVehicleID(DefaultVehicleID);
notiRemind(DefaultVehicleID);
carLimit(DefaultVehicleID);
getCarInfo(DefaultVehicleID);
getCarRemindFromUrl(DefaultVehicleID);
handler.postDelayed(new Runnable() {
@Override
public void run() {
if (DefaultVehicleID >= Variable.carDatas.size()) {// 默认第一个车
DefaultVehicleID = 0;
Variable.carDatas.get(0).setCheck(true);
} else {
Variable.carDatas.get(DefaultVehicleID).setCheck(true);
}
ScrollLayout_car.snapFastToScreen(DefaultVehicleID);
for (int i = 0; i < Variable.carDatas.size(); i++) {
if (i == DefaultVehicleID) {
Variable.carDatas.get(i).setCheck(true);
} else {
Variable.carDatas.get(i).setCheck(false);
}
}
}
}, 500);
}
}
OnClickListener onClickListener = new OnClickListener() {
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.iv_activity_home_menu:
ActivityFactory.A.LeftMenu();
break;
case R.id.iv_activity_car_home_search:
ActivityFactory.A.RightMenu();
break;
case R.id.bt_activity_home_help:// 救援
if (Variable.carDatas == null || Variable.carDatas.size() == 0) {
} else {
new AlertDialog.Builder(getActivity())
.setTitle("列表框")
.setItems(new String[] { "拨打电话", "位置分享" },
new DialogInterface.OnClickListener() {
@Override
public void onClick(
DialogInterface dialog,
int which) {
if (which == 0) {
Intent intent = new Intent(
Intent.ACTION_DIAL,
Uri.parse("tel:"
+ Variable.carDatas
.get(DefaultVehicleID)
.getMaintain_tel()));
getActivity()
.startActivity(intent);
} else {
Intent intent_help = new Intent(
getActivity(),
ShareLocationActivity.class);
intent_help.putExtra("reason",
"救援");
intent_help.putExtra("index",
DefaultVehicleID);
getActivity()
.startActivity(intent_help);
}
}
}).setNegativeButton("确定", null).show();
}
break;
case R.id.bt_activity_home_risk:// 报险
if (Variable.carDatas == null || Variable.carDatas.size() == 0) {
} else {
new AlertDialog.Builder(getActivity())
.setTitle("列表框")
.setItems(new String[] { "拨打电话", "位置分享" },
new DialogInterface.OnClickListener() {
@Override
public void onClick(
DialogInterface dialog,
int which) {
if (which == 0) {
Intent intent = new Intent(
Intent.ACTION_DIAL,
Uri.parse("tel:"
+ Variable.carDatas
.get(DefaultVehicleID)
.getMaintain_tel()));
getActivity()
.startActivity(intent);
} else {
Intent intent_risk = new Intent(
getActivity(),
ShareLocationActivity.class);
intent_risk.putExtra("reason",
"报险");
intent_risk.putExtra("index",
DefaultVehicleID);
getActivity()
.startActivity(intent_risk);
}
}
}).setNegativeButton("确定", null).show();
}
break;
case R.id.bt_activity_home_share:// 位置分享
if (Variable.carDatas == null || Variable.carDatas.size() == 0) {
AddCarNote();
} else {
ToShare();
}
break;
case R.id.bt_activity_home_traffic:// 车辆违章
if (Variable.carDatas == null || Variable.carDatas.size() == 0) {
AddCarNote();
} else {
getActivity().startActivity(new Intent(
getActivity(), TrafficActivity.class));
}
break;
case R.id.bt_activity_home_car_remind:// 车务提醒
if (Variable.carDatas == null || Variable.carDatas.size() == 0) {
AddCarNote();
} else {
Intent eventIntent = new Intent(getActivity(),
CarRemindActivity.class);
eventIntent.putExtra("isJump", true);
getActivity().startActivity(eventIntent);
}
break;
case R.id.bt_activity_home_vehicle_status:// 爱车车况
Toast.makeText(getActivity(), R.string.new_version,
Toast.LENGTH_SHORT).show();
// TurnVehicleStatus();
break;
case R.id.tv_activity_home_car_adress: // 车辆位置
Intent intent_adress = new Intent(getActivity(),
CarLocationActivity.class);
intent_adress.putExtra("index", DefaultVehicleID);
getActivity().startActivity(intent_adress);
break;
case R.id.tv_car_number: // 我的爱车
if (Variable.carDatas.size() == 0) {
Intent intent = new Intent(getActivity(),NewVehicleActivity.class);
getActivity().startActivity(intent);
} else {
Intent intent = new Intent(getActivity(),MyVehicleActivity.class);
intent.putExtra("isJump", true);
getActivity().startActivity(intent);
}
break;
case R.id.iv_home_say_something:
iatRecognizer = SpeechRecognizer
.createRecognizer(getActivity());
iatRecognizer.setParameter(SpeechConstant.CLOUD_GRAMMAR, null);
iatRecognizer.setParameter(SpeechConstant.DOMAIN, "iat");
iatRecognizer.setParameter(SpeechConstant.SAMPLE_RATE, "16000");
iatRecognizer.startListening(recognizerListener);
// 显示语音识别Dialog
voiceDialog = new VoiceDialog(getActivity());
voiceDialog.show();
voiceDialog.setCancelable(true);
break;
case R.id.tv_item_weather_city:
startActivityForResult(new Intent(getActivity(),
SelectCityActivity.class), 0);
break;
}
}
};
Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
switch (msg.what) {
case Get_RealTimeWeather:
JudgeRealTimeWeather(msg.obj.toString());
jsonRealTimeWeather(msg.obj.toString());
break;
case Get_Fuel:
SaveAndJsonFuel(msg.obj.toString());
break;
case Get_Cars:
jsonCars(msg.obj.toString());
showCar();
GetDevicesData();
break;
case Get_CarsLogo:
showCar();
break;
case Get_persion:
jsonCarRemind(msg.obj.toString());
break;
case Get_Devicesdata:
jsonDevice(msg.obj.toString());
JudgeDevice(msg.obj.toString());
break;
case Get_car_info:
jsonCarInfo(msg.obj.toString());
break;
case Get_device_info:
jsonDeviceInfo(msg.obj.toString());
break;
case Refresh:
iv_car_traffic.setVisibility(View.GONE);
iv_car_status.setVisibility(View.GONE);
notiRemind(DefaultVehicleID);
getCarRemindFromUrl(DefaultVehicleID);
getCarInfo(DefaultVehicleID);
break;
case Get_carLimit:
jsonCarLinit(msg.obj.toString());
break;
}
}
};
private void getSp() {
SharedPreferences preferences = getActivity().getSharedPreferences(
Constant.sharedPreferencesName, Context.MODE_PRIVATE);
LocationCityCode = preferences.getString(Constant.LocationCityCode,
"101280601");
LocationCity = preferences.getString(Constant.LocationCity, "深圳");
String LocationCityFuel = preferences.getString(
Constant.LocationCityFuel, "");
Variable.cust_id = preferences.getString(Constant.sp_cust_id, "");
Variable.auth_code = preferences.getString(Constant.sp_auth_code, "");
// 默认显示车的object_id
DefaultVehicleID = preferences.getInt(Constant.DefaultVehicleID, 0);
tv_item_weather_city.setText(LocationCity);
jsonFuel(LocationCityFuel);
}
boolean isHaveOldFutureWeather = false;
boolean isHaveOldRealTimeWeather = false;
/**
* 获取本地存储的天气
*/
private void GetOldWeather() {
// 查询
DBHelper dbHelper = new DBHelper(getActivity());
SQLiteDatabase db = dbHelper.getReadableDatabase();
// 实时天气
Cursor cursor = db.rawQuery("select * from " + Constant.TB_Base
+ " where Title=?", new String[] { "RealTimeWeather" });
if (cursor.moveToFirst()) {
String Content = cursor.getString(cursor.getColumnIndex("Content"));
isHaveOldRealTimeWeather = true;
// 解析数据
jsonRealTimeWeather(Content);
}
cursor.close();
db.close();
}
/**
* 获取本地车辆信息
*/
private void GetDBCars() {
Variable.carDatas.clear();
if (Variable.cust_id != null) {
DBHelper dbHelper = new DBHelper(getActivity());
SQLiteDatabase db = dbHelper.getReadableDatabase();
Cursor cursor = db.rawQuery("select * from " + Constant.TB_Vehicle
+ " where Cust_id=?", new String[] { Variable.cust_id });
while (cursor.moveToNext()) {
int obj_id = cursor.getInt(cursor.getColumnIndex("obj_id"));
String obj_name = cursor.getString(cursor
.getColumnIndex("obj_name"));
String car_brand = cursor.getString(cursor
.getColumnIndex("car_brand"));
String car_series = cursor.getString(cursor
.getColumnIndex("car_series"));
String car_type = cursor.getString(cursor
.getColumnIndex("car_type"));
String engine_no = cursor.getString(cursor
.getColumnIndex("engine_no"));
String frame_no = cursor.getString(cursor
.getColumnIndex("frame_no"));
String insurance_company = cursor.getString(cursor
.getColumnIndex("insurance_company"));
String insurance_date = cursor.getString(cursor
.getColumnIndex("insurance_date"));
String annual_inspect_date = cursor.getString(cursor
.getColumnIndex("annual_inspect_date"));
String maintain_company = cursor.getString(cursor
.getColumnIndex("maintain_company"));
String maintain_last_mileage = cursor.getString(cursor
.getColumnIndex("maintain_last_mileage"));
maintain_last_mileage = maintain_last_mileage == null ? "1970-01-01"
: maintain_last_mileage;
String maintain_next_mileage = cursor.getString(cursor
.getColumnIndex("maintain_next_mileage"));
String buy_date = cursor.getString(cursor
.getColumnIndex("buy_date"));
String reg_no = cursor.getString(cursor
.getColumnIndex("reg_no"));
String vio_location = cursor.getString(cursor
.getColumnIndex("vio_location"));
String device_id = cursor.getString(cursor
.getColumnIndex("device_id"));
String serial = cursor.getString(cursor
.getColumnIndex("serial"));
String maintain_last_date = cursor.getString(cursor
.getColumnIndex("maintain_last_date"));
String car_brand_id = cursor.getString(cursor
.getColumnIndex("car_brand_id"));
String car_series_id = cursor.getString(cursor
.getColumnIndex("car_series_id"));
String car_type_id = cursor.getString(cursor
.getColumnIndex("car_type_id"));
String vio_city_name = cursor.getString(cursor
.getColumnIndex("vio_city_name"));
String insurancetel = cursor.getString(cursor
.getColumnIndex("insurance_tel"));
String maintain_tel = cursor.getString(cursor
.getColumnIndex("maintain_tel"));
String gas_no = cursor.getString(cursor
.getColumnIndex("gas_no"));
CarData carData = new CarData();
carData.setCheck(false);
carData.setObj_id(obj_id);
carData.setType(0);
carData.setObj_name(obj_name);
carData.setCar_brand(car_brand);
carData.setCar_series(car_series);
carData.setCar_type(car_type);
carData.setCar_brand_id(car_brand_id);
carData.setCar_series_id(car_series_id);
carData.setCar_type_id(car_type_id);
carData.setVio_city_name(vio_city_name);
carData.setMaintain_tel(maintain_tel);
carData.setInsurance_tel(insurancetel);
carData.setGas_no(gas_no);
carData.setEngine_no(engine_no);
carData.setFrame_no(frame_no);
carData.setInsurance_company(insurance_company);
carData.setInsurance_date(insurance_date);
carData.setAnnual_inspect_date(annual_inspect_date);
carData.setMaintain_company(maintain_company);
carData.setMaintain_last_mileage(maintain_last_mileage);
carData.setMaintain_next_mileage(maintain_next_mileage);
carData.setMaintain_last_date(maintain_last_date);
carData.setBuy_date(buy_date);
carData.setRegNo(reg_no);
carData.setVio_location(vio_location);
carData.setAdress(Variable.Adress);
carData.setLat(String.valueOf(Variable.Lat));
carData.setLon(String.valueOf(Variable.Lon));
carData.setDevice_id(device_id);
String imagePath = Constant.VehicleLogoPath + car_brand
+ ".png";// SD卡路径
if (new File(imagePath).isFile()) {// 存在
carData.setLogoPath(imagePath);
} else {
isNeedGetLogoFromUrl = true;
carData.setLogoPath("");
}
Variable.carDatas.add(carData);
}
cursor.close();
db.close();
}
}
class getLogoThread extends Thread {
@Override
public void run() {
super.run();
getVehicleLogo();
}
}
/**
* 获取图片
*/
private void getVehicleLogo() {
List<Brand> brands = new ArrayList<Brand>();
// 读取车的品牌
String url = Constant.BaseUrl + "base/car_brand";
String result = GetSystem.getStringFromURL(url);
if (!result.equals("")) {
try {
JSONArray jsonArray = new JSONArray(result);
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject jsonObject = jsonArray.getJSONObject(i);
Brand brand = new Brand();
brand.setName(jsonObject.getString("name"));
if (jsonObject.opt("url_icon") != null) {
brand.setUrl_icon(jsonObject.getString("url_icon"));
}
brands.add(brand);
}
} catch (Exception e) {
e.printStackTrace();
}
}
for (int i = 0; i < Variable.carDatas.size(); i++) {
String brand = Variable.carDatas.get(i).getCar_brand();
String imagePath = Constant.VehicleLogoPath + brand + ".png";// SD卡路径
if (new File(imagePath).isFile()) {// 存在
System.out.println("文件存在");
} else {// 不存在
for (int j = 0; j < brands.size(); j++) {
String name = brands.get(j).getName();
if (name.equals(brand)) {
String imageUrl = Constant.ImageUrl
+ brands.get(j).getUrl_icon();
Bitmap bitmap = GetSystem.getBitmapFromURL(imageUrl);
if (bitmap != null) {
GetSystem.saveImageSD(bitmap,
Constant.VehicleLogoPath, brand + ".png",
100);
Variable.carDatas.get(i).setLogoPath(imagePath);
}
break;
}
}
}
}
Message message = new Message();
message.what = Get_CarsLogo;
handler.sendMessage(message);
}
private class Brand {
String name;
String url_icon;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getUrl_icon() {
return url_icon;
}
public void setUrl_icon(String url_icon) {
this.url_icon = url_icon;
}
}
/**
* 判断实时天气是插入数据库or更新数据库
*
* @param result
*/
private void JudgeRealTimeWeather(String result) {
if (isHaveOldRealTimeWeather) {// 更新
UpdateWeather(result, "RealTimeWeather");
} else {// 插入
InsertWeather(result, "RealTimeWeather");
}
}
/**
* 更新天气
*
* @param result
* @param Title
*/
private void UpdateWeather(String result, String Title) {
DBExcute dbExcute = new DBExcute();
ContentValues values = new ContentValues();
values.put("Content", result);
dbExcute.UpdateDB(getActivity(), values, Title);
}
/**
* 插入天气
*
* @param result
* @param Title
*/
private void InsertWeather(String result, String Title) {
DBExcute dbExcute = new DBExcute();
ContentValues values = new ContentValues();
values.put("Title", Title);
values.put("Content", result);
dbExcute.InsertDB(getActivity(), values, Constant.TB_Base);
}
/**
* 解析实时数据
*
* @param result
*/
private void jsonRealTimeWeather(String result) {
try {
String Weather = "";
JSONObject jsonObject1 = new JSONObject(result)
.getJSONObject("today");
if (jsonObject1.opt("date_y") != null) {
String date_y = jsonObject1.getString("date_y");
Weather += date_y;
}
if (jsonObject1.opt("week") != null) {
String week = jsonObject1.getString("week");
Weather += " " + week;
}// weather
if (jsonObject1.opt("weather") != null) {
tv_item_weather_sky.setText(jsonObject1.getString("weather"));
}
if (jsonObject1.opt("temperature") != null) {
tv_item_weather_temp1.setText(jsonObject1
.getString("temperature"));
}
if (jsonObject1.opt("wash_index") != null) {
tv_item_weather_index_xc.setText(jsonObject1
.getString("wash_index"));
}
tv_item_weather_date.setText(Weather);
String weather = "";
JSONObject jsonObject = new JSONObject(result).getJSONObject("sk");
if (jsonObject.opt("temp") != null) {
tv_item_weather_wd.setText(jsonObject.getString("temp") + "°");
}
if (jsonObject.opt("wind_direction") != null) {
weather += jsonObject.getString("wind_direction");
}
if (jsonObject.opt("wind_strength") != null) {
weather += jsonObject.getString("wind_strength");
}
if (jsonObject.opt("humidity") != null) {
weather += " 湿度" + jsonObject.getString("humidity");
}
tv_item_weather.setText(weather);
} catch (JSONException e) {
e.printStackTrace();
}
}
/**
* 解析油价
*
* @param result
*/
private void jsonFuel(String result) {
if (!result.equals("")) {
try {
JSONObject jsonObject = new JSONObject(result);
if (!result.equals("")) {
if (jsonObject.opt("fuel90") == null) {
tv_item_oil_90.setText(jsonObject.getString("----"));
} else {
tv_item_oil_90.setText(jsonObject.getString("fuel90"));
}
if (jsonObject.opt("fuel93") == null) {
tv_item_oil_93.setText(jsonObject.getString("----"));
} else {
tv_item_oil_93.setText(jsonObject.getString("fuel93"));
}
if (jsonObject.opt("fuel97") == null) {
tv_item_oil_97.setText(jsonObject.getString("----"));
} else {
tv_item_oil_97.setText(jsonObject.getString("fuel97"));
}
if (jsonObject.opt("fuel0") == null) {
tv_item_oil_0.setText(jsonObject.getString("----"));
} else {
tv_item_oil_0.setText(jsonObject.getString("fuel0"));
}
}
} catch (JSONException e) {
e.printStackTrace();
}
}
}
/**
* 保存并解析油价
*
* @param result
*/
private void SaveAndJsonFuel(String result) {
try {
JSONObject jsonObject = new JSONArray(result).getJSONObject(0);
String fuel_price = jsonObject.getString("fuel_price");
// 存储
SharedPreferences preferences = getActivity().getSharedPreferences(
Constant.sharedPreferencesName, Context.MODE_PRIVATE);
Editor editor = preferences.edit();
editor.putString(Constant.LocationCityFuel, fuel_price);
editor.commit();
// 解析
jsonFuel(fuel_price);
} catch (JSONException e) {
e.printStackTrace();
}
}
/**
* 解析车辆数据
*
* @param result
*/
private void jsonCars(String result) {
Variable.carDatas.clear();
try {
JSONArray jsonArray = new JSONArray(result);
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject jsonObject = jsonArray.getJSONObject(i);
int obj_id = jsonObject.getInt("obj_id");
String Cust_id = jsonObject.getString("cust_id");
String obj_name = jsonObject.getString("obj_name");
String car_brand = jsonObject.getString("car_brand");
String car_series = jsonObject.getString("car_series");
String car_type = jsonObject.getString("car_type");
String engine_no = jsonObject.getString("engine_no");
String frame_no = jsonObject.getString("frame_no");
String insurance_company = jsonObject
.getString("insurance_company");
String reg_no = "";
String vio_location = "";
if (jsonObject.opt("reg_no") != null) {
reg_no = jsonObject.getString("reg_no");
}
if (jsonObject.opt("vio_location") != null) {
vio_location = jsonObject.getString("vio_location");
}
String device_id = "";
if (jsonObject.opt("device_id") != null) {
device_id = jsonObject.getString("device_id");
}
String maintain_last_date = "1970-01-01 00:00:00";
if (jsonObject.opt("maintain_last_date") != null) {
maintain_last_date = GetSystem.ChangeTimeZone(jsonObject
.getString("maintain_last_date").replace("T", " ")
.substring(0, 19));
}
String annual_inspect_date = GetSystem
.ChangeTimeZone(jsonObject
.getString("annual_inspect_date")
.replace("T", " ").substring(0, 19));
String insurance_date = GetSystem.ChangeTimeZone(jsonObject
.getString("insurance_date").replace("T", " ")
.substring(0, 19));
String maintain_company = jsonObject
.getString("maintain_company");
String maintain_last_mileage = jsonObject
.getString("maintain_last_mileage");
String maintain_next_mileage = jsonObject
.getString("maintain_next_mileage");
String buy_date = GetSystem.ChangeTimeZone(jsonObject
.getString("buy_date").replace("T", " ")
.substring(0, 19));
String car_brand_id = jsonObject.getString("car_brand_id");
String car_series_id = jsonObject.getString("car_series_id");
String car_type_id = jsonObject.getString("car_type_id");
String vio_city_name = jsonObject.getString("vio_city_name");
String insurancetel = jsonObject.getString("insurance_tel");
String maintain_tel = jsonObject.getString("maintain_tel");
String gas_no = jsonObject.getString("gas_no");
buy_date = buy_date.substring(0, 10);
CarData carData = new CarData();
carData.setCheck(false);
carData.setObj_id(obj_id);
carData.setType(0);
carData.setObj_name(obj_name);
carData.setCar_brand(car_brand);
carData.setCar_brand_id(car_brand_id);
carData.setCar_series_id(car_series_id);
carData.setCar_type_id(car_type_id);
carData.setVio_city_name(vio_city_name);
carData.setMaintain_tel(maintain_tel);
carData.setInsurance_tel(insurancetel);
carData.setGas_no(gas_no);
carData.setCar_series(car_series);
carData.setCar_type(car_type);
carData.setEngine_no(engine_no);
carData.setFrame_no(frame_no);
carData.setInsurance_company(insurance_company);
carData.setInsurance_date(insurance_date);
carData.setAnnual_inspect_date(annual_inspect_date);
carData.setMaintain_company(maintain_company);
carData.setMaintain_last_mileage(maintain_last_mileage);
carData.setMaintain_next_mileage(maintain_next_mileage);
carData.setMaintain_last_date(maintain_last_date);
carData.setBuy_date(buy_date);
carData.setRegNo(reg_no);
carData.setVio_location(vio_location);
carData.setDevice_id(device_id);
String imagePath = Constant.VehicleLogoPath + car_brand
+ ".png";// SD卡路径
if (new File(imagePath).isFile()) {// 存在
carData.setLogoPath(imagePath);
} else {
isNeedGetLogoFromUrl = true;
carData.setLogoPath("");
}
Variable.carDatas.add(carData);
// 存储在数据库
DBExcute dbExcute = new DBExcute();
ContentValues values = new ContentValues();
values.put("obj_id", obj_id);
values.put("Cust_id", Cust_id);
values.put("obj_name", obj_name);
values.put("car_brand", car_brand);
values.put("car_series", car_series);
values.put("car_type", car_type);
values.put("engine_no", engine_no);
values.put("frame_no", frame_no);
values.put("insurance_company", insurance_company);
values.put("insurance_date", insurance_date);
values.put("annual_inspect_date", annual_inspect_date);
values.put("maintain_company", maintain_company);
values.put("maintain_last_mileage", maintain_last_mileage);
values.put("maintain_last_date", maintain_last_date);
values.put("maintain_next_mileage", maintain_next_mileage);
values.put("buy_date", buy_date);
values.put("reg_no", reg_no);
values.put("vio_location", vio_location);
values.put("device_id", device_id);
values.put("car_brand_id", car_brand_id);
values.put("car_series_id", car_series_id);
values.put("car_type_id", car_type_id);
values.put("vio_city_name", vio_city_name);
values.put("insurance_tel", insurancetel);
values.put("maintain_tel", maintain_tel);
values.put("gas_no", gas_no);
dbExcute.InsertDB(getActivity(), values,
Constant.TB_Vehicle);
}
if (Variable.carDatas.size() > 0) {
Variable.carDatas.get(0).setCheck(true);
}
if (isNeedGetLogoFromUrl) {
new Thread(new getLogoThread()).start();
}
} catch (JSONException e) {
e.printStackTrace();
}
}
/**
* 获取实时天气
*/
private void GetRealTimeWeather() {
try {
String url = Constant.BaseUrl + "base/weather2?city="
+ URLEncoder.encode(LocationCity, "UTF-8");
new Thread(new NetThread.GetDataThread(handler, url,
Get_RealTimeWeather)).start();
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 获取城市油价
*/
private void GetFuel() {
try {
String url = Constant.BaseUrl + "base/city/"
+ URLEncoder.encode(LocationCity, "UTF-8");
new Thread(new NetThread.GetDataThread(handler, url, Get_Fuel))
.start();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
/**
* 获取用户下车辆数据
*/
private void GetCars() {
String url = Constant.BaseUrl + "customer/" + Variable.cust_id
+ "/vehicle?auth_code=" + Variable.auth_code;
new Thread(new NetThread.GetDataThread(handler, url, Get_Cars)).start();
}
private void ToShare() {
CarData carData = Variable.carDatas.get(DefaultVehicleID);
String url = "http://api.map.baidu.com/geocoder?location="
+ carData.getLat() + "," + carData.getLon()
+ "&coord_type=bd09ll&output=html";
StringBuffer sb = new StringBuffer();
sb.append("【位置】 ");
if (carData.getGps_time() != null && !carData.getGps_time().equals("")) {
try {
sb.append(carData.getGps_time().substring(5, 16) + " ");
} catch (Exception e) {
e.printStackTrace();
sb.append(carData.getGps_time() + " ");
}
}
sb.append(carData.getObj_name());
sb.append(" 位于" + carData.getAdress() + " ");
sb.append(url);
GetSystem.share(getActivity(), sb.toString(), "",
Float.valueOf(carData.getLat()),
Float.valueOf(carData.getLon()), "位置", url);
}
private void registerBroadcastReceiver() {
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction(Constant.A_Login);
intentFilter.addAction(Constant.A_UpdateCar);
getActivity().registerReceiver(broadcastReceiver, intentFilter);
}
private BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (action.equals(Constant.A_Login)) {
if ((Variable.carDatas == null)
|| (Variable.carDatas.size() == 0)) {
GetDBCars();
showCar();
GetDevicesDB();
}
if ((Variable.carDatas == null)
|| (Variable.carDatas.size() == 0)) {
GetCars();
}
GetDBPersionRemindData();
} else if (action.equals(Constant.A_UpdateCar)) {
showCar();
}
}
};
@Override
public void onResume() {
super.onResume();
// TODO 考虑到车务提醒修改信息后返回
if (Variable.carDatas == null || Variable.carDatas.size() == 0) {
} else {
GetDBPersionRemindData();
notiRemind(DefaultVehicleID);
getCarRemindFromUrl(DefaultVehicleID);
}
}
@Override
public void onDestroy() {
super.onDestroy();
getActivity().unregisterReceiver(broadcastReceiver);
mkSearch.destory();
isRefresh = false;
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == 1) {
getSp();
GetRealTimeWeather();
GetFuel();
}
}
/**
* 用户授权回调监听器.
*/
private SpeechListener listener = new SpeechListener() {
public void onData(byte[] arg0) {
}
public void onCompleted(SpeechError error) {
if (error != null) {
Toast.makeText(getActivity(), "授权失败" + error,
Toast.LENGTH_SHORT).show();
}
}
public void onEvent(int arg0, Bundle arg1) {
}
};
// 更改语音识别ui布局
RecognizerListener recognizerListener = new RecognizerListener() {
public void onBeginOfSpeech() {
sb = new StringBuffer();
Toast.makeText(getActivity(), "开始说话", 0).show();
}
public void onError(SpeechError err) {
voiceDialog.dismiss();
Toast.makeText(getActivity(), "识别出错,稍后再试", 0).show();
Log.e("错误码:", err + "");
}
public void onEndOfSpeech() {
}
public void onEvent(int eventType, int arg1, int arg2, String msg) {
}
public void onResult(RecognizerResult results, boolean isLast) {
voiceDialog.dismiss();
String text = JsonParser.parseIatResult(results.getResultString());
sb.append(text);
Toast.makeText(getActivity(), sb.toString(), 0).show();
}
public void onVolumeChanged(int volume) {
if (volume == 0) {
voiceImage.clearAnimation();
} else {
Animation animation = voiceImage.getAnimation();
if (animation == null) {
animation = AnimationUtils.loadAnimation(getActivity(),
R.anim.tip);
LinearInterpolator lin = new LinearInterpolator();
animation.setInterpolator(lin);
voiceImage.startAnimation(animation);
}
}
}
};
class VoiceDialog extends AlertDialog {
public VoiceDialog(Context context) {
super(context);
}
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.voice_dialog);
voiceImage = (ImageView) findViewById(R.id.do_something_voice_image);
}
}
/**
* 得到车的违章和车况
*
* @param index
*/
private void getCarInfo(int index) {
if (Variable.carDatas == null || Variable.carDatas.size() == 0) {
} else {
String url = Constant.BaseUrl + "vehicle/"
+ Variable.carDatas.get(index).getObj_id() + "?auth_code="
+ Variable.auth_code;
new Thread(new NetThread.GetDataThread(handler, url, Get_car_info))
.start();
}
}
private void jsonCarInfo(String result) {
try {
if (!result.equals("")) {
JSONObject jsonObject = new JSONObject(result);
if (jsonObject.getString("obj_id").equals(
Variable.carDatas.get(DefaultVehicleID).getObj_id())) {
if (jsonObject.opt("vio_count") != null) {
iv_car_traffic.setVisibility(View.VISIBLE);
}
if (jsonObject.opt("fault_count") != null) {
iv_car_status.setVisibility(View.VISIBLE);
}
if (jsonObject.opt("alert_count") != null) {
iv_car_status.setVisibility(View.VISIBLE);
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
private void carLimit(int index) {
if (Variable.carDatas == null || Variable.carDatas.size() == 0) {
} else {
CarData carData = Variable.carDatas.get(index);
try {
String url = Constant.BaseUrl + "base/ban?city="
+ URLEncoder.encode(LocationCity, "UTF-8")
+ "&obj_name="
+ URLEncoder.encode(carData.getObj_name(), "UTF-8");
new Thread(new NetThread.GetDataThread(handler, url,
Get_carLimit)).start();
} catch (Exception e) {
e.printStackTrace();
}
}
}
private void jsonCarLinit(String result) {
try {
JSONObject jsonObject = new JSONObject(result);
String limit = jsonObject.getString("limit");
Tv_xx.setText(limit);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 车辆提醒
*
* @param index
*/
private void notiRemind(int index) {
if (Variable.carDatas == null || Variable.carDatas.size() == 0) {
} else {
CarData carData = Variable.carDatas.get(index);
if (GetSystem.isTimeOut(carData.getAnnual_inspect_date())
|| GetSystem.isTimeOut(carData.getInsurance_date())
|| GetSystem.isTimeOut(annual_inspect_date)
|| GetSystem.isTimeOut(change_date)) {
iv_car_remind.setVisibility(View.VISIBLE);
} else {
iv_car_remind.setVisibility(View.GONE);
}
// 里程和位置在下一个url获取
}
}
String annual_inspect_date;
String change_date;
/**
* 获取个人证件信息
*/
private void GetDBPersionRemindData() {
DBHelper dbHelper = new DBHelper(getActivity());
SQLiteDatabase db = dbHelper.getReadableDatabase();
Cursor cursor = db.rawQuery("select * from " + Constant.TB_Account
+ " where cust_id=?", new String[] { Variable.cust_id });
if (cursor.getCount() == 0) {
if (Variable.cust_id == null || Variable.cust_id.equals("")) {
} else {
String url = Constant.BaseUrl + "customer/" + Variable.cust_id
+ "?auth_code=" + Variable.auth_code;
new Thread(new NetThread.GetDataThread(handler, url,
Get_persion)).start();
}
} else {
if (cursor.moveToFirst()) {
annual_inspect_date = cursor.getString(cursor
.getColumnIndex("annual_inspect_date"));
change_date = cursor.getString(cursor
.getColumnIndex("change_date"));
}
}
cursor.close();
db.close();
}
private void jsonCarRemind(String result) {
try {
JSONObject jsonObject = new JSONObject(result);
DBExcute dbExcute = new DBExcute();
ContentValues values = new ContentValues();
if (jsonObject.opt("contacts") != null) {
String contacts = jsonObject.getString("contacts");
values.put("Consignee", contacts);
}
if (jsonObject.opt("address") != null) {
String address = jsonObject.getString("address");
values.put("Adress", address);
}
if (jsonObject.opt("tel") != null) {
String tel = jsonObject.getString("tel");
values.put("Phone", tel);
}
if (jsonObject.opt("annual_inspect_date") != null) {
annual_inspect_date = GetSystem.ChangeTimeZone(jsonObject
.getString("annual_inspect_date").replace("T", " ")
.substring(0, 19));
values.put("annual_inspect_date", annual_inspect_date);
}
if (jsonObject.opt("change_date") != null) {
change_date = GetSystem.ChangeTimeZone(jsonObject
.getString("change_date").replace("T", " ")
.substring(0, 19));
values.put("change_date", change_date);
}
values.put("cust_id", Variable.cust_id);
dbExcute.InsertDB(getActivity(), values, Constant.TB_Account);
} catch (JSONException e) {
e.printStackTrace();
}
}
private void GetDevicesDB() {
DBHelper dbHelper = new DBHelper(getActivity());
SQLiteDatabase db = dbHelper.getReadableDatabase();
Cursor cursor = db.rawQuery("select * from " + Constant.TB_Base
+ " where Title=? and Cust_id=?", new String[] { "Devices",
Variable.cust_id });
if (cursor.moveToFirst()) {
String Content = cursor.getString(cursor.getColumnIndex("Content"));
// 解析数据
jsonDevice(Content);
isHaveDevices = true;
}
cursor.close();
db.close();
}
/**
* 解析终端数据
*
* @param result
*/
private void jsonDevice(String result) {
List<DevicesData> devicesDatas = new ArrayList<DevicesData>();
if (result == null || result.equals("")) {
} else {
try {
JSONArray jsonArray = new JSONArray(result);
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject jsonObject = jsonArray.getJSONObject(i);
DevicesData devicesData = new DevicesData();
devicesData.setDevice_id(jsonObject.getString("device_id"));
devicesData.setHardware_version(jsonObject
.getString("hardware_version"));
devicesData.setSerial(jsonObject.getString("serial"));
devicesData.setService_end_date(jsonObject
.getString("service_end_date"));
devicesData.setSim(jsonObject.getString("sim"));
devicesData.setSoftware_version(jsonObject
.getString("software_version"));
devicesData.setStatus(jsonObject.getString("status"));
devicesData.setType(0);
devicesDatas.add(devicesData);
for (int j = 0; j < Variable.carDatas.size(); j++) {
CarData carData = Variable.carDatas.get(j);
if (carData.getDevice_id() != null
&& carData.getDevice_id().equals(
jsonObject.getString("device_id"))) {
carData.setSerial(jsonObject.getString("serial"));
DBExcute dbExcute = new DBExcute();
ContentValues values = new ContentValues();
values.put("serial", jsonObject.getString("serial"));
dbExcute.UpdateDB(getActivity(), values, "obj_id=?",
new String[] { String.valueOf(carData
.getObj_id()) },
Constant.TB_Vehicle);
break;
}
}
}
} catch (JSONException e) {
e.printStackTrace();
}
}
Variable.devicesDatas = devicesDatas;
}
/**
* 从服务器读取我的终端
*/
public void GetDevicesData() {
String url = Constant.BaseUrl + "customer/" + Variable.cust_id
+ "/device?auth_code=" + Variable.auth_code;
new Thread(new NetThread.GetDataThread(handler, url, Get_Devicesdata))
.start();
}
boolean isHaveDevices = false;
/**
* 判断更新还是插入
*
* @param result
*/
private void JudgeDevice(String result) {
if (isHaveDevices) {// 更新
UpdateDevice(result, "Devices");
} else {// 插入
InsertDevice(result, "Devices");
}
}
private void UpdateDevice(String result, String Title) {
DBExcute dbExcute = new DBExcute();
ContentValues values = new ContentValues();
values.put("Content", result);
dbExcute.UpdateDB(getActivity(), values, Title);
}
private void InsertDevice(String result, String Title) {
DBExcute dbExcute = new DBExcute();
ContentValues values = new ContentValues();
values.put("Cust_id", Variable.cust_id);
values.put("Title", Title);
values.put("Content", result);
dbExcute.InsertDB(getActivity(), values, Constant.TB_Base);
}
/**
* 查询车的定位信息,车务提醒里程
*
* @param index
*/
private void getCarRemindFromUrl(int index) {
if (Variable.carDatas == null || Variable.carDatas.size() == 0) {
} else {
String device_id = Variable.carDatas.get(index).getDevice_id();
if (device_id == null || device_id.equals("")) {
try {
String AddrStr = Variable.Adress;
String Lat = String.valueOf(Variable.Lat);
String Lon = String.valueOf(Variable.Lon);
if (AddrStr == null || AddrStr.equals("")) {
mTextViews[DefaultVehicleID][0]
.setText("未绑定终端,正在获取手机位置...");
} else {
mTextViews[DefaultVehicleID][0].setText(AddrStr);
}
Variable.carDatas.get(DefaultVehicleID).setLat(Lat);
Variable.carDatas.get(DefaultVehicleID).setLon(Lon);
Variable.carDatas.get(DefaultVehicleID).setGps_time(
Variable.gpsTime);
Variable.carDatas.get(DefaultVehicleID).setAdress(AddrStr);
mTextViews[DefaultVehicleID][1].setText(GetSystem
.sortHomeTime(Variable.gpsTime));
} catch (Exception e) {
e.printStackTrace();
}
} else {
String url = Constant.BaseUrl + "device/" + device_id
+ "/active_gps_data?auth_code=" + Variable.auth_code;
new Thread(new NetThread.GetDataThread(handler, url,
Get_device_info)).start();
}
}
}
private void jsonDeviceInfo(String result) {
try {
JSONObject jsonObject = new JSONObject(result);
if (jsonObject.getString("device_id").equals(
Variable.carDatas.get(DefaultVehicleID).getDevice_id())) {
JSONObject jsonData = jsonObject
.getJSONObject("active_gps_data");
int mileage = jsonData.getInt("mileage");
String next_mileage = Variable.carDatas.get(DefaultVehicleID)
.getMaintain_next_mileage();
int next_mileages = 0;
if (!next_mileage.equals("")) {
next_mileages = Integer.valueOf(next_mileage);
}
if (next_mileages <= mileage) {
iv_car_remind.setVisibility(View.VISIBLE);
}
String lat = jsonData.getString("lat");
String lon = jsonData.getString("lon");
Variable.carDatas.get(DefaultVehicleID).setLat(lat);
Variable.carDatas.get(DefaultVehicleID).setLon(lon);
String gps_time = jsonData.getString("gps_time")
.replace("T", " ").substring(0, 19);
Variable.carDatas.get(DefaultVehicleID).setGps_time(
gps_time.substring(5, 16));
GeoPoint point = new GeoPoint(GetSystem.StringToInt(lat),
GetSystem.StringToInt(lon));
mTextViews[DefaultVehicleID][1].setText(GetSystem
.sortHomeTime(gps_time));
mkSearch.reverseGeocode(point);
}
} catch (JSONException e) {
e.printStackTrace();
}
}
MKSearchListener mkSearchListener = new MKSearchListener() {
@Override
public void onGetWalkingRouteResult(MKWalkingRouteResult arg0, int arg1) {
}
@Override
public void onGetTransitRouteResult(MKTransitRouteResult arg0, int arg1) {
}
@Override
public void onGetSuggestionResult(MKSuggestionResult arg0, int arg1) {
}
@Override
public void onGetShareUrlResult(MKShareUrlResult arg0, int arg1,
int arg2) {
}
@Override
public void onGetPoiResult(MKPoiResult arg0, int arg1, int arg2) {
}
@Override
public void onGetPoiDetailSearchResult(int arg0, int arg1) {
}
@Override
public void onGetDrivingRouteResult(MKDrivingRouteResult arg0, int arg1) {
}
@Override
public void onGetBusDetailResult(MKBusLineResult arg0, int arg1) {
}
@Override
public void onGetAddrResult(MKAddrInfo arg0, int arg1) {
String strInfo = arg0.strAddr;
if (arg0.type == MKAddrInfo.MK_REVERSEGEOCODE) {
strInfo = strInfo.substring((strInfo.indexOf("省") + 1),
strInfo.length());
mTextViews[DefaultVehicleID][0].setText(strInfo);
Variable.carDatas.get(DefaultVehicleID).setAdress(strInfo);
}
}
};
/**
* 提示添加车辆
*/
private void AddCarNote() {
new AlertDialog.Builder(getActivity()).setTitle("提示").setMessage("您还没添加车辆,是否添加?")
.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Intent intent = new Intent(getActivity(),
NewVehicleActivity.class);
intent.putExtra("isJump", true);
getActivity().startActivity(intent);
}
}).setNegativeButton("取消", null).show();
}
private void TurnVehicleStatus() {
if (Variable.carDatas == null || Variable.carDatas.size() == 0) {
} else {
CarData carData = Variable.carDatas.get(DefaultVehicleID);
if (carData.getDevice_id() == null
|| carData.getDevice_id().equals("")) {
new AlertDialog.Builder(getActivity())
.setTitle("提示")
.setMessage("该车辆没绑定终端,是否购买")
.setPositiveButton("确定",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which) {
getActivity()
.startActivity(new Intent(
getActivity(),
OrderDeviceActivity.class));
}
}).setNegativeButton("取消", null).show();
} else {
getActivity().startActivity(new Intent(getActivity(),
VehicleStatusActivity.class));
}
}
}
class TimingThread extends Thread {
@Override
public void run() {
super.run();
while (isRefresh) {
try {
Thread.sleep(60000);
Message message = new Message();
message.what = Refresh;
handler.sendMessage(message);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
}