package com.zzx.factorytest.help; import android.content.Context; import android.os.Environment; import android.util.Xml; import com.zzx.factorytest.bean.PlatformBean; import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlPullParserException; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; public class PlatformHelp { private static final File PATH = new File(Environment.getRootDirectory(), "etc" + File.separator + "FactoryTestConfig.xml"); private static final String PLATFORM_TAG = "Platform"; private static PlatformBean mPlatform; public static PlatformBean getPlatform(Context context) { if (null == mPlatform) { mPlatform = readPlatform(PATH); } return mPlatform; } private static PlatformBean readPlatform(File configFile) { PlatformBean bean = new PlatformBean(); XmlPullParser parser = Xml.newPullParser(); FileInputStream input; try { input = new FileInputStream(configFile); parser.setInput(input, "UTF-8"); int eventType = parser.getEventType(); while (eventType != XmlPullParser.END_DOCUMENT) { switch (eventType) { case XmlPullParser.START_DOCUMENT: break; case XmlPullParser.START_TAG: String name = parser.getName(); if (PLATFORM_TAG.equals(name)) { bean.Name = parser.getAttributeValue(null, PlatformBean.NAME); } else if (PlatformBean.MAGNETICFIELD.equals(name)) { parser.next(); int value = Integer.valueOf(parser.getText().trim()); bean.MagneticField = value != 0; } else if (PlatformBean.BLUETOOTH.equals(name)) { parser.next(); int value = Integer.valueOf(parser.getText().trim()); bean.Bluetooth = value != 0; } else if (PlatformBean.BATTERY.equals(name)) { parser.next(); int value = Integer.valueOf(parser.getText().trim()); bean.Battery = value != 0; } else if (PlatformBean.CAMERA.equals(name)) { parser.next(); int value = Integer.valueOf(parser.getText().trim()); bean.Camera = value != 0; } else if (PlatformBean.DEVICES_REGISTER.equals(name)) { parser.next(); int value = Integer.valueOf(parser.getText().trim()); bean.DeviceRegister = value != 0; } else if (PlatformBean.FINGERPRINT.equals(name)) { bean.FingerprintPath = parser.getAttributeValue(null, "path"); bean.FingerprintBaudrate = Integer.valueOf(parser.getAttributeValue(null, "baudrate")); parser.next(); int value = Integer.valueOf(parser.getText().trim()); bean.Fingerprint = value != 0; } else if (PlatformBean.GPS.equals(name)) { parser.next(); int value = Integer.valueOf(parser.getText().trim()); bean.Gps = value != 0; } else if (PlatformBean.GRAVITY_INDUCTION.equals(name)) { parser.next(); int value = Integer.valueOf(parser.getText().trim()); bean.GravityInduction = value != 0; } else if (PlatformBean.GYROSCOPE_SENSOR.equals(name)) { parser.next(); int value = Integer.valueOf(parser.getText().trim()); bean.GyroscopeSensor = value != 0; } else if (PlatformBean.HORN.equals(name)) { parser.next(); int value = Integer.valueOf(parser.getText().trim()); bean.Horn = value != 0; } else if (PlatformBean.IMEI3G.equals(name)) { parser.next(); int value = Integer.valueOf(parser.getText().trim()); bean.Imei3G = value != 0; } else if (PlatformBean.KEYPRESS.equals(name)) { parser.next(); int value = Integer.valueOf(parser.getText().trim()); bean.KeyPress = value != 0; } else if (PlatformBean.LCD.equals(name)) { parser.next(); int value = Integer.valueOf(parser.getText().trim()); bean.Lcd = value != 0; } else if (PlatformBean.LIGHT_DISTANCE_SENSOR.equals(name)) { parser.next(); int value = Integer.valueOf(parser.getText().trim()); bean.LightDistanceSensor = value != 0; } else if (PlatformBean.MIC.equals(name)) { parser.next(); int value = Integer.valueOf(parser.getText().trim()); bean.Mic = value != 0; } else if (PlatformBean.MAGNETICFIELD.equals(name)) { parser.next(); int value = Integer.valueOf(parser.getText().trim()); bean.Mic = value != 0; } else if (PlatformBean.NFC.equals(name)) { parser.next(); int value = Integer.valueOf(parser.getText().trim()); bean.Nfc = value != 0; } else if (PlatformBean.RADIO.equals(name)) { parser.next(); int value = Integer.valueOf(parser.getText().trim()); bean.Radio = value != 0; } else if (PlatformBean.SDCARD.equals(name)) { parser.next(); int value = Integer.valueOf(parser.getText().trim()); bean.Sdcard = value != 0; } else if (PlatformBean.SHOCK.equals(name)) { parser.next(); int value = Integer.valueOf(parser.getText().trim()); bean.Shock = value != 0; } else if (PlatformBean.WIFI.equals(name)) { parser.next(); int value = Integer.valueOf(parser.getText().trim()); bean.Wifi = value != 0; } else if (PlatformBean.VOICE_TUBE.equals(name)) { parser.next(); int value = Integer.valueOf(parser.getText().trim()); bean.VoiceTube = value != 0; } else if (PlatformBean.TOUCH_SCREEN_CALIBRATION.equals(name)) { parser.next(); int value = Integer.valueOf(parser.getText().trim()); bean.TouchScreenCalibration = value != 0; } else if (PlatformBean.TOUCH_SCREEN.equals(name)) { parser.next(); int value = Integer.valueOf(parser.getText().trim()); bean.TouchScreen = value != 0; } else if (PlatformBean.SIM.equals(name)) { parser.next(); int value = Integer.valueOf(parser.getText().trim()); bean.Sim = value != 0; } else if (PlatformBean.IDENTITYCARD.equals(name)) { bean.IdentityCardPath = parser.getAttributeValue(null, "path"); bean.IdentityCardBaudrate = Integer.valueOf(parser.getAttributeValue(null, "baudrate")); parser.next(); int value = Integer.valueOf(parser.getText().trim()); bean.IdentityCard = value != 0; } break; } eventType = parser.next(); } } catch (XmlPullParserException e1) { e1.printStackTrace(); } catch (FileNotFoundException e1) { e1.printStackTrace(); } catch (IOException e1) { e1.printStackTrace(); } return bean; } }