release V57
authorsnickersun <scy@incartech.cn>
Mon, 21 Dec 2020 10:07:00 +0000 (18:07 +0800)
committersnickersun <scy@incartech.cn>
Mon, 21 Dec 2020 10:07:00 +0000 (18:07 +0800)
修复S123 无 camera和震动测试问题
添加 Gt09测试支持(暂时还不完整)

25 files changed:
app/build.gradle
app/release/FactoryMode_V57_202012211803_release.apk [moved from app/release/FactoryMode_V55_202011302225_release.apk with 82% similarity]
app/release/output.json
app/src/main/java/com/ic/jni/ag3335m_jni.java [new file with mode: 0644]
app/src/main/java/mobile/miki/BaseActivity.java
app/src/main/java/mobile/miki/GPSActivity.java
app/src/main/java/mobile/miki/GpsTest.java
app/src/main/java/mobile/miki/SnrHistogramView.java
app/src/main/java/mobile/miki/TouchTest.java
app/src/main/java/mobile/miki/VersionActivity.java
app/src/main/java/mobile/miki/adapter/TestMainListAdapter.java
app/src/main/java/mobile/miki/mainui/TestMainActivity.java
app/src/main/java/mobile/miki/mainui/TestMainList.java
app/src/main/java/mobile/miki/util/Config.java
app/src/main/java/mobile/miki/util/FTUtils.java
app/src/main/libs/armeabi-v7a/ag333m_tool [new file with mode: 0644]
app/src/main/libs/armeabi-v7a/libag3335m_jni.so [new file with mode: 0644]
app/src/main/res/layout/dig_layout_testlist_280.xml [new file with mode: 0644]
app/src/main/res/layout/gps_full_test_activity_280.xml [new file with mode: 0644]
app/src/main/res/layout/testmain_adapter_280.xml [new file with mode: 0644]
app/src/main/res/layout/urovo_layout_table_280.xml [new file with mode: 0644]
app/src/main/res/layout/urovo_layout_test_result_280.xml [new file with mode: 0644]
app/src/main/res/layout/version_layout_280.xml [new file with mode: 0644]
app/src/main/res/values/strings.xml
app/version_code.properties

index e613210..bd7851d 100644 (file)
-apply plugin: 'com.android.application'\r
-// APK 名称\r
-static def getApkBaseName() {\r
-    return "FactoryMode"\r
-}\r
-\r
-def getVersionCode() {\r
-    def versionCodeFile = file('version_code.properties')\r
-    if (versionCodeFile.canRead()) {\r
-        Properties properties = new Properties()\r
-        properties.load(new FileInputStream(versionCodeFile))\r
-        def versionCode = properties['VERSION_CODE'].toInteger()//读取version_code.properties文件存放的版本号。\r
-        def runTasks = gradle.startParameter.taskNames\r
-        def task = ':app:assembleRelease'\r
-        if (task in runTasks) {\r
-            properties['VERSION_CODE'] = (++versionCode).toString()\r
-            properties.store(versionCodeFile.newWriter(), null)\r
-        }\r
-\r
-        return versionCode\r
-    } else {\r
-        throw new GradleException("无法读取version_code.properties文件!")\r
-    }\r
-}\r
-\r
-def releaseTime() {\r
-\r
-    return new Date().format("yyyyMMddHHmm", TimeZone.getTimeZone("GMT+08:00"))\r
-\r
-}\r
-android {\r
-    signingConfigs {\r
-        key {\r
-            storeFile file("AndroidSystem.jks")\r
-            storePassword "android123456"\r
-            keyAlias "android"\r
-            keyPassword "android123456"\r
-        }\r
-    }\r
-    lintOptions {\r
-        checkReleaseBuilds false\r
-        abortOnError false\r
-    }\r
-    compileSdkVersion 27\r
-\r
-    def currentVersionCode = getVersionCode()\r
-    def currentVersionName = releaseTime()\r
-\r
-    defaultConfig {\r
-        applicationId "mobile.miki"\r
-        minSdkVersion 19\r
-        targetSdkVersion 19\r
-        versionCode currentVersionCode\r
-        versionName "${currentVersionName}"\r
-    }\r
-    buildTypes {\r
-        release {\r
-            minifyEnabled false\r
-            signingConfig signingConfigs.key\r
-            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'\r
-        }\r
-        debug {\r
-            signingConfig signingConfigs.key\r
-        }\r
-    }\r
-    //打包后应用名称\r
-    android.applicationVariants.all { variant ->\r
-        variant.outputs.all {\r
-            if (variant.buildType.name == "release") {\r
-                outputFileName = "${getApkBaseName()}_V${currentVersionCode}_${currentVersionName}_release.apk"\r
-            } else {\r
-                outputFileName = "${getApkBaseName()}_V${currentVersionCode}_${currentVersionName}_debug.apk"\r
-            }\r
-        }\r
-    }\r
-//    buildToolsVersion '20.0.3'\r
-\r
-    sourceSets {\r
-        main {\r
-            jni.srcDirs = []\r
-        }\r
-    }\r
-    compileOptions {\r
-        sourceCompatibility = 1.7\r
-        targetCompatibility = 1.7\r
-    }\r
-}\r
-\r
-dependencies {\r
-    compileOnly files ('libs/frameworks-full-debug.jar')\r
-    provided files ('libs/telephony_common-full-debug.jar')\r
-    implementation 'com.squareup.okhttp3:okhttp:3.4.1'\r
-    implementation 'io.reactivex:rxandroid:1.2.1'\r
-    implementation 'com.liulishuo.filedownloader:library:1.6.3'\r
-    compileOnly files('libs/IAtChannel_classes.jar')\r
-    implementation files('libs/LineWrapContainer.aar')\r
-    implementation 'com.android.support:appcompat-v7:27.1.1'\r
-    implementation 'com.android.support:recyclerview-v7:27.1.1'\r
-//    implementation 'com.android.support:recyclerview-v7:20.0.0'\r
-\r
-}\r
-preBuild {\r
-\r
-    doLast {\r
-        def imlFile = file( project.name + ".iml")\r
-        println 'Change ' + project.name + '.iml order'\r
-        try {\r
-            def parsedXml = (new XmlParser()).parse(imlFile)\r
-            def jdkNode = parsedXml.component[1].orderEntry.find { it.'@type' == 'jdk' }\r
-            parsedXml.component[1].remove(jdkNode)\r
-            def sdkString = "Android API " + android.compileSdkVersion.substring("android-".length()) + " Platform"\r
-            println 'what' + sdkString\r
-            new Node(parsedXml.component[1], 'orderEntry', ['type': 'jdk', 'jdkName': sdkString, 'jdkType': 'Android SDK'])\r
-            groovy.xml.XmlUtil.serialize(parsedXml, new FileOutputStream(imlFile))\r
-        } catch (FileNotFoundException e) {\r
-            // nop, iml not found\r
-            println "no iml found"\r
-        }\r
-    }\r
+apply plugin: 'com.android.application'
+// APK 名称
+static def getApkBaseName() {
+    return "FactoryMode"
+}
+
+def getVersionCode() {
+    def versionCodeFile = file('version_code.properties')
+    if (versionCodeFile.canRead()) {
+        Properties properties = new Properties()
+        properties.load(new FileInputStream(versionCodeFile))
+        def versionCode = properties['VERSION_CODE'].toInteger()//读取version_code.properties文件存放的版本号。
+        def runTasks = gradle.startParameter.taskNames
+        def task = ':app:assembleRelease'
+        if (task in runTasks) {
+            properties['VERSION_CODE'] = (++versionCode).toString()
+            properties.store(versionCodeFile.newWriter(), null)
+        }
+
+        return versionCode
+    } else {
+        throw new GradleException("无法读取version_code.properties文件!")
+    }
+}
+
+def releaseTime() {
+
+    return new Date().format("yyyyMMddHHmm", TimeZone.getTimeZone("GMT+08:00"))
+
+}
+android {
+    signingConfigs {
+        key {
+            storeFile file("AndroidSystem.jks")
+            storePassword "android123456"
+            keyAlias "android"
+            keyPassword "android123456"
+        }
+    }
+    lintOptions {
+        checkReleaseBuilds false
+        abortOnError false
+    }
+    compileSdkVersion 27
+
+    def currentVersionCode = getVersionCode()
+    def currentVersionName = releaseTime()
+
+    defaultConfig {
+        applicationId "mobile.miki"
+        minSdkVersion 19
+        targetSdkVersion 19
+        versionCode currentVersionCode
+        versionName "${currentVersionName}"
+    }
+    buildTypes {
+        release {
+            minifyEnabled false
+            signingConfig signingConfigs.key
+            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
+        }
+        debug {
+            signingConfig signingConfigs.key
+        }
+    }
+    //打包后应用名称
+    android.applicationVariants.all { variant ->
+        variant.outputs.all {
+            if (variant.buildType.name == "release") {
+                outputFileName = "${getApkBaseName()}_V${currentVersionCode}_${currentVersionName}_release.apk"
+            } else {
+                outputFileName = "${getApkBaseName()}_V${currentVersionCode}_${currentVersionName}_debug.apk"
+            }
+        }
+    }
+//    buildToolsVersion '20.0.3'
+
+    sourceSets {
+        main {
+            jni.srcDirs = []
+        }
+    }
+    compileOptions {
+        sourceCompatibility = 1.7
+        targetCompatibility = 1.7
+    }
+    ndkVersion '20.1.5948944'
+    sourceSets.main {
+        jniLibs.srcDir 'src/main/libs'
+        jni.srcDirs = [] //disable automatic ndk-build call
+    }
+}
+
+dependencies {
+    compileOnly files ('libs/frameworks-full-debug.jar')
+    provided files ('libs/telephony_common-full-debug.jar')
+    implementation 'com.squareup.okhttp3:okhttp:3.4.1'
+    implementation 'io.reactivex:rxandroid:1.2.1'
+    implementation 'com.liulishuo.filedownloader:library:1.6.3'
+    compileOnly files('libs/IAtChannel_classes.jar')
+    implementation files('libs/LineWrapContainer.aar')
+    implementation 'com.android.support:appcompat-v7:27.1.1'
+    implementation 'com.android.support:recyclerview-v7:27.1.1'
+//    implementation 'com.android.support:recyclerview-v7:20.0.0'
+
+}
+preBuild {
+
+    doLast {
+        def imlFile = file( project.name + ".iml")
+        println 'Change ' + project.name + '.iml order'
+        try {
+            def parsedXml = (new XmlParser()).parse(imlFile)
+            def jdkNode = parsedXml.component[1].orderEntry.find { it.'@type' == 'jdk' }
+            parsedXml.component[1].remove(jdkNode)
+            def sdkString = "Android API " + android.compileSdkVersion.substring("android-".length()) + " Platform"
+            println 'what' + sdkString
+            new Node(parsedXml.component[1], 'orderEntry', ['type': 'jdk', 'jdkName': sdkString, 'jdkType': 'Android SDK'])
+            groovy.xml.XmlUtil.serialize(parsedXml, new FileOutputStream(imlFile))
+        } catch (FileNotFoundException e) {
+            // nop, iml not found
+            println "no iml found"
+        }
+    }
 }
\ No newline at end of file
similarity index 82%
rename from app/release/FactoryMode_V55_202011302225_release.apk
rename to app/release/FactoryMode_V57_202012211803_release.apk
index a07b371..24f3925 100644 (file)
Binary files a/app/release/FactoryMode_V55_202011302225_release.apk and b/app/release/FactoryMode_V57_202012211803_release.apk differ
index a283ab4..3867591 100644 (file)
@@ -1 +1 @@
-[{"outputType":{"type":"APK"},"apkData":{"type":"MAIN","splits":[],"versionCode":56,"versionName":"202012031753","enabled":true,"outputFile":"FactoryMode_V56_202012031753_release.apk","fullName":"release","baseName":"release"},"path":"FactoryMode_V56_202012031753_release.apk","properties":{}}]
\ No newline at end of file
+[{"outputType":{"type":"APK"},"apkData":{"type":"MAIN","splits":[],"versionCode":57,"versionName":"202012211803","enabled":true,"outputFile":"FactoryMode_V57_202012211803_release.apk","fullName":"release","baseName":"release"},"path":"FactoryMode_V57_202012211803_release.apk","properties":{}}]
\ No newline at end of file
diff --git a/app/src/main/java/com/ic/jni/ag3335m_jni.java b/app/src/main/java/com/ic/jni/ag3335m_jni.java
new file mode 100644 (file)
index 0000000..8d7d4f3
--- /dev/null
@@ -0,0 +1,10 @@
+package com.ic.jni;
+
+public class ag3335m_jni {
+    static {
+        System.loadLibrary("ag3335m_jni");
+    }
+    public static native int setTTYS2();  //config GPS serial port
+    public static native int resetPower();  // HW reset GPS
+
+}
index 8c3e3ba..183bdfd 100644 (file)
-package mobile.miki;\r
-\r
-import android.app.Activity;\r
-import android.app.Service;\r
-import android.content.BroadcastReceiver;\r
-import android.content.Context;\r
-import android.content.Intent;\r
-import android.content.IntentFilter;\r
-import android.os.Bundle;\r
-import android.os.Handler;\r
-import android.os.PowerManager;\r
-import android.os.PowerManager.WakeLock;\r
-import android.os.SystemProperties;\r
-import android.util.Log;\r
-import android.view.Display;\r
-import android.view.View;\r
-import android.view.ViewGroup;\r
-import android.view.Window;\r
-\r
-import mobile.miki.util.FTUtils;\r
-\r
-public class BaseActivity extends Activity {\r
-    private static final String TAG = "BaseActivity";\r
-    private WakeLock wakeLock = null;\r
-    private PowerManager powerManager = null; \r
-    \r
-    protected void onCreate(Bundle savedInstanceState) {\r
-        super.onCreate(savedInstanceState);\r
-        powerManager = (PowerManager) this.getSystemService(Service.POWER_SERVICE);  \r
-        wakeLock = this.powerManager.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, "FactoryMode");\r
-        IntentFilter homeFilter = new IntentFilter(Intent.ACTION_CLOSE_SYSTEM_DIALOGS);\r
-        registerReceiver(homePressReceiver, homeFilter);\r
-               if(wakeLock != null) {\r
-                       //是否需计算锁的数量  \r
-                       wakeLock.setReferenceCounted(false);  \r
-                       //请求屏幕常亮,onResume()方法中执行  \r
-                       wakeLock.acquire();\r
-                       handler.postDelayed(runnable, 1000 * 60 * 30); //30分钟不灭屏\r
-                       \r
-               }\r
-        resizewindow();\r
-    }\r
-\r
-    private void resizewindow(){\r
-        if(FTUtils.isA9()) {\r
-            Display display = getWindowManager().getDefaultDisplay(); // 为获取屏幕宽、高\r
-            Window window = getWindow();\r
-            ViewGroup.LayoutParams windowLayoutParams = window.getAttributes(); // 获取对话框当前的参数值\r
-            windowLayoutParams.width = 170;//(int) (display.getWidth() * 0.7); // 宽度设置为屏幕的0.95\r
-            windowLayoutParams.height = 170;//(int) (display.getHeight() * 0.6); // 高度设置为屏幕的0.6\r
-        }else if(FTUtils.isV20()){\r
-            Display display = getWindowManager().getDefaultDisplay(); // 为获取屏幕宽、高\r
-            Window window = getWindow();\r
-            ViewGroup.LayoutParams windowLayoutParams = window.getAttributes(); // 获取对话框当前的参数值\r
-            windowLayoutParams.width = 280;//(int) (display.getWidth() * 0.7); // 宽度设置为屏幕的0.95\r
-            windowLayoutParams.height = 280;//(int) (display.getHeight() * 0.6); // 高度设置为屏幕的0.6\r
-        }\r
-    }\r
-    \r
-    @Override\r
-    protected void onDestroy() {\r
-       super.onDestroy();\r
-       if(wakeLock != null) {\r
-               //取消屏幕常亮,onPause()方法中执行  \r
-               wakeLock.release(); \r
-               wakeLock = null;\r
-       }\r
-       if(handler != null) {\r
-               handler.removeCallbacks(runnable);\r
-       }\r
-\r
-       if (homePressReceiver != null) {\r
-           unregisterReceiver(homePressReceiver);\r
-        }\r
-    }\r
-    \r
-    Handler handler=new Handler();\r
-    Runnable runnable=new Runnable() {\r
-        @Override\r
-        public void run() {\r
-               if(wakeLock != null) {\r
-                       //取消屏幕常亮,onPause()方法中执行  \r
-               wakeLock.release(); \r
-               wakeLock = null;\r
-               }\r
-            \r
-        }\r
-    };\r
-    \r
-    \r
-    //HOME键监听\r
-    private BroadcastReceiver homePressReceiver = new BroadcastReceiver() {\r
-        final String SYSTEM_DIALOG_REASON_KEY = "reason";\r
-        final String SYSTEM_DIALOG_REASON_HOME_KEY = "homekey";\r
-        @Override\r
-        public void onReceive(Context context, Intent intent) {\r
-            // TODO Auto-generated method stub\r
-            String action = intent.getAction();\r
-            if(action.equals(Intent.ACTION_CLOSE_SYSTEM_DIALOGS)){\r
-                String reason = intent.getStringExtra(SYSTEM_DIALOG_REASON_KEY);\r
-                if(reason!=null&&reason.equals(SYSTEM_DIALOG_REASON_HOME_KEY)){\r
-                    if(handler != null) {\r
-                               handler.removeCallbacks(runnable);\r
-                       }\r
-                    if(wakeLock != null) {\r
-                               //取消屏幕常亮,onPause()方法中执行  \r
-                       wakeLock.release(); \r
-                       wakeLock = null;\r
-                       }\r
-                }\r
-            }\r
-        }\r
-    };\r
-    \r
-    public void testSuccess(View view) {\r
-        Log.i("BaseActivity", "testSuccess");\r
-        sendBroadcast(new Intent("mobile.miki.testsuccess"));\r
-    }\r
-    \r
-    public void testFail(View view) {\r
-        Log.i("BaseActivity", "testFail");\r
-        sendBroadcast(new Intent("mobile.miki.testfail"));\r
-    }\r
-\r
-\r
-    \r
-}\r
+package mobile.miki;
+
+import android.app.Activity;
+import android.app.Service;
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.os.Bundle;
+import android.os.Handler;
+import android.os.PowerManager;
+import android.os.PowerManager.WakeLock;
+import android.os.SystemProperties;
+import android.util.Log;
+import android.view.Display;
+import android.view.View;
+import android.view.ViewGroup;
+import android.view.Window;
+
+import mobile.miki.util.FTUtils;
+
+public class BaseActivity extends Activity {
+    private static final String TAG = "BaseActivity";
+    private WakeLock wakeLock = null;
+    private PowerManager powerManager = null; 
+    
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        powerManager = (PowerManager) this.getSystemService(Service.POWER_SERVICE);  
+        wakeLock = this.powerManager.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, "FactoryMode");
+        IntentFilter homeFilter = new IntentFilter(Intent.ACTION_CLOSE_SYSTEM_DIALOGS);
+        registerReceiver(homePressReceiver, homeFilter);
+               if(wakeLock != null) {
+                       //是否需计算锁的数量  
+                       wakeLock.setReferenceCounted(false);  
+                       //请求屏幕常亮,onResume()方法中执行  
+                       wakeLock.acquire();
+                       handler.postDelayed(runnable, 1000 * 60 * 30); //30分钟不灭屏
+                       
+               }
+        resizewindow();
+    }
+
+    private void resizewindow(){
+        if(FTUtils.isA9()) {
+            Display display = getWindowManager().getDefaultDisplay(); // 为获取屏幕宽、高
+            Window window = getWindow();
+            ViewGroup.LayoutParams windowLayoutParams = window.getAttributes(); // 获取对话框当前的参数值
+            windowLayoutParams.width = 170;//(int) (display.getWidth() * 0.7); // 宽度设置为屏幕的0.95
+            windowLayoutParams.height = 170;//(int) (display.getHeight() * 0.6); // 高度设置为屏幕的0.6
+        }else if(FTUtils.isV20() || FTUtils.isGT09()){
+            Display display = getWindowManager().getDefaultDisplay(); // 为获取屏幕宽、高
+            Window window = getWindow();
+            ViewGroup.LayoutParams windowLayoutParams = window.getAttributes(); // 获取对话框当前的参数值
+            windowLayoutParams.width = 280;//(int) (display.getWidth() * 0.7); // 宽度设置为屏幕的0.95
+            windowLayoutParams.height = 280;//(int) (display.getHeight() * 0.6); // 高度设置为屏幕的0.6
+        }
+    }
+    
+    @Override
+    protected void onDestroy() {
+       super.onDestroy();
+       if(wakeLock != null) {
+               //取消屏幕常亮,onPause()方法中执行  
+               wakeLock.release(); 
+               wakeLock = null;
+       }
+       if(handler != null) {
+               handler.removeCallbacks(runnable);
+       }
+
+       if (homePressReceiver != null) {
+           unregisterReceiver(homePressReceiver);
+        }
+    }
+    
+    Handler handler=new Handler();
+    Runnable runnable=new Runnable() {
+        @Override
+        public void run() {
+               if(wakeLock != null) {
+                       //取消屏幕常亮,onPause()方法中执行  
+               wakeLock.release(); 
+               wakeLock = null;
+               }
+            
+        }
+    };
+    
+    
+    //HOME键监听
+    private BroadcastReceiver homePressReceiver = new BroadcastReceiver() {
+        final String SYSTEM_DIALOG_REASON_KEY = "reason";
+        final String SYSTEM_DIALOG_REASON_HOME_KEY = "homekey";
+        @Override
+        public void onReceive(Context context, Intent intent) {
+            // TODO Auto-generated method stub
+            String action = intent.getAction();
+            if(action.equals(Intent.ACTION_CLOSE_SYSTEM_DIALOGS)){
+                String reason = intent.getStringExtra(SYSTEM_DIALOG_REASON_KEY);
+                if(reason!=null&&reason.equals(SYSTEM_DIALOG_REASON_HOME_KEY)){
+                    if(handler != null) {
+                               handler.removeCallbacks(runnable);
+                       }
+                    if(wakeLock != null) {
+                               //取消屏幕常亮,onPause()方法中执行  
+                       wakeLock.release(); 
+                       wakeLock = null;
+                       }
+                }
+            }
+        }
+    };
+    
+    public void testSuccess(View view) {
+        Log.i("BaseActivity", "testSuccess");
+        sendBroadcast(new Intent("mobile.miki.testsuccess"));
+    }
+    
+    public void testFail(View view) {
+        Log.i("BaseActivity", "testFail");
+        sendBroadcast(new Intent("mobile.miki.testfail"));
+    }
+
+
+    
+}
index 4b412b3..20481b2 100644 (file)
-package mobile.miki;\r
-\r
-import android.content.Context;\r
-import android.content.Intent;\r
-import android.graphics.Color;\r
-import android.graphics.Rect;\r
-import android.location.Criteria;\r
-import android.location.GpsStatus;\r
-import android.location.Location;\r
-import android.location.LocationListener;\r
-import android.location.LocationManager;\r
-import android.os.Bundle;\r
-import android.os.Handler;\r
-import android.os.Message;\r
-import android.os.PowerManager;\r
-import android.provider.Settings;\r
-import android.support.v7.widget.LinearLayoutManager;\r
-import android.support.v7.widget.RecyclerView;\r
-import android.view.View;\r
-import android.widget.TextView;\r
-\r
-\r
-import java.io.File;\r
-import java.io.FileOutputStream;\r
-import java.text.DecimalFormat;\r
-import java.text.SimpleDateFormat;\r
-import java.util.ArrayList;\r
-import java.util.Date;\r
-import java.util.List;\r
-import java.util.Timer;\r
-\r
-import mobile.miki.util.FTUtils;\r
-import mobile.miki.util.Logger;\r
-\r
-import static android.location.LocationManager.GPS_PROVIDER;\r
-\r
-public class GPSActivity extends BaseActivity  {\r
-\r
-    private RecyclerView mRv;\r
-\r
-    private TextView mFix;\r
-    private TextView mStar;\r
-    private TextView mHoop;\r
-    private TextView mSearchCount;\r
-    private boolean showmessage=false;\r
-    private Timer timer;\r
-    final LocationSnrAdapter adapter = new LocationSnrAdapter(testSnrEntriyDate(null));\r
-    private final String ttyDialogPort="/dev/ttyGS1";\r
-    @Override\r
-    protected void onCreate(Bundle savedInstanceState) {\r
-        super.onCreate(savedInstanceState);\r
-        setContentView(R.layout.gps_full_test_activity);\r
-\r
-        mRv = (RecyclerView)findViewById(R.id.app_list);\r
-\r
-        mFix=(TextView)findViewById(R.id.ic_lc_fix_value);\r
-        mStar =(TextView) findViewById(R.id.ic_lc_star_value);\r
-        mHoop =  (TextView)findViewById(R.id.ic_lc_hoop_value);\r
-        mSearchCount= (TextView)findViewById(R.id.ic_lc_searchCount_value);\r
-        mRv.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false));\r
-\r
-        mRv.addItemDecoration(new SpacesItemDecoration(10));\r
-        mRv.setAdapter(adapter);\r
-\r
-        mFix.setText("notFixed");\r
-        mStar.setText("0 in 0/ inMap 0");\r
-        mHoop.setText("0.0米");\r
-        mSearchCount.setText("0秒");\r
-        locationManager = (LocationManager)this.getSystemService(Context.LOCATION_SERVICE);\r
-        if (FTUtils.isA9()){\r
-            mFix.setTextSize(15);\r
-            mStar.setTextSize(15);\r
-            mHoop.setTextSize(15);\r
-            mSearchCount.setTextSize(15);\r
-        }\r
-        startListen();\r
-    }\r
-\r
-\r
-    public void on_locating_changed(GPS_locationStatus gps_status) {\r
-\r
-        gps_status_show.numSatelliteList.clear();\r
-        gps_status_show.hdop=gps_status.hdop;\r
-        gps_status_show.locating_status=gps_status.locating_status;\r
-        gps_status_show.satlite_numbss=gps_status.satlite_numbss;\r
-        gps_status_show.search_time_cost=gps_status.search_time_cost;\r
-        gps_status_show.used_gps_numbs=gps_status.used_gps_numbs;\r
-//        gps_status_show.numSatelliteList=gps_status.numSatelliteList;\r
-        for (int i=0;i<gps_status.numSatelliteList.size();i++) {\r
-            gps_status_show.numSatelliteList.add(i, new GpsSatellitePriv(gps_status.numSatelliteList.get(i).prn,gps_status.numSatelliteList.get(i).snr));\r
-        }\r
-\r
-      mHandler.sendEmptyMessage(0);\r
-    }\r
-\r
-    public class SpacesItemDecoration extends RecyclerView.ItemDecoration {\r
-        private int space;\r
-\r
-        public SpacesItemDecoration(int space) {\r
-            this.space = space;\r
-        }\r
-\r
-        @Override\r
-        public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {\r
-            outRect.right = space;\r
-        }\r
-    }\r
-    public static String getLocalTime2() { return getLocalTime2(System.currentTimeMillis()); }\r
-\r
-    public static String getLocalTime2(long paramLong) { return (new SimpleDateFormat("MMdd-HHmmss")).format(new Date(paramLong)); }\r
-    public static class  GpsSatellitePriv {\r
-        int prn;\r
-        float snr;\r
-        public GpsSatellitePriv(int _prn, float _snr) {\r
-            prn=_prn;\r
-            snr=_snr;\r
-        }\r
-        public int getPrn() {\r
-            return prn;\r
-        }\r
-        public float getSnr() {\r
-            return snr;\r
-        }\r
-    }\r
-    public static class GPS_locationStatus{\r
-        public List<GpsSatellitePriv> numSatelliteList = new ArrayList<GpsSatellitePriv>(); // 卫星信号\r
-        public int used_gps_numbs;\r
-        public float hdop;\r
-        public int satlite_numbss;\r
-        public int search_time_cost;\r
-        public int locating_status;\r
-    }\r
-    public ArrayList<SnrEntriy> testSnrEntriyDate(List<GpsSatellitePriv> gpslist) {\r
-        ArrayList<SnrEntriy> entity = new ArrayList<>();\r
-\r
-        if (gpslist!=null) {\r
-            for (int i = 0; i < gpslist.size(); i++) {\r
-\r
-                float snr=gpslist.get(i).getSnr();\r
-                int prn=gpslist.get(i).getPrn();\r
-                Logger.d("testSnrEntriyDate snr="+snr+",prn="+prn);\r
-                SnrEntriy info = new SnrEntriy(snr,prn , (snr>=40? Color.GREEN:((snr>=25&&snr<40)? Color.YELLOW: Color.RED)));\r
-                entity.add(info);\r
-            }\r
-        }\r
-        return entity;\r
-    }\r
-    PowerManager.WakeLock screenOnWakelock=null;\r
-    @Override\r
-    protected  void onResume() {\r
-        super.onResume();\r
-        if (screenOnWakelock==null)\r
-            screenOnWakelock = getScreenOnWakeLock(this,GPSActivity.class.getSimpleName());\r
-\r
-    }\r
-    public static PowerManager.WakeLock getScreenOnWakeLock(Context context, String tag) {\r
-        PowerManager.WakeLock wakeLock = ((PowerManager)(context.getSystemService(Context.POWER_SERVICE))).newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK, tag);\r
-        wakeLock.acquire();\r
-        return wakeLock;\r
-    }\r
-    @Override\r
-    protected void onPause() {\r
-        super.onPause();\r
-        if(screenOnWakelock!=null) {\r
-            if (screenOnWakelock.isHeld()) {\r
-                screenOnWakelock.release();\r
-            }\r
-            screenOnWakelock=null;\r
-        }\r
-\r
-\r
-    }\r
-\r
-    @Override\r
-    protected  void onDestroy(){\r
-        super.onDestroy();\r
-        stopListen();\r
-\r
-    }\r
-\r
-    private class myGpsListener implements GpsStatus.NmeaListener, LocationListener{\r
-\r
-        @Override\r
-        public void onNmeaReceived(long l, String s) {\r
-            mOnNmeaReceived(l,s);\r
-        }\r
-\r
-        @Override\r
-        public void onLocationChanged(Location location) {\r
-\r
-        }\r
-\r
-        @Override\r
-        public void onStatusChanged(String s, int i, Bundle bundle) {\r
-\r
-        }\r
-\r
-        @Override\r
-        public void onProviderEnabled(String s) {\r
-\r
-        }\r
-\r
-        @Override\r
-        public void onProviderDisabled(String s) {\r
-\r
-        }\r
-    }\r
-\r
-    Handler mHandler=new Handler(new Handler.Callback() {\r
-        @Override\r
-        public boolean handleMessage(Message message) {\r
-\r
-            List<GpsSatellitePriv> gpslist =gps_status_show.numSatelliteList;\r
-            adapter.updateLocationValue(testSnrEntriyDate(gpslist));\r
-            String fixed=new StringBuilder().append(gps_status_show.locating_status>0?\r
-                    "Fixed ":"notFixed ").append(getLocalTime2()).toString();\r
-            String satlites=new StringBuilder("used ").append(gps_status_show.used_gps_numbs).append(" in ")\r
-                    .append(gps_status_show.numSatelliteList.size()).append("/ inMap ").append(gps_status_show.satlite_numbss).toString();\r
-            String locationTime=new StringBuilder().append(gps_status_show.search_time_cost).append(" ").append(getResources().getString(R.string.seconds)).toString();\r
-            String hdop=new StringBuilder().append(String.valueOf(gps_status_show.hdop)).append(" ").append(getResources().getString(R.string.meter)).toString();\r
-            mFix.setText(fixed);\r
-            if (mFix.getText().toString().contains("notFixed")){\r
-                mFix.setBackgroundColor(Color.RED);\r
-                mFix.setTextColor(Color.WHITE);\r
-            }else{\r
-                mFix.setBackgroundColor(Color.GREEN);\r
-                mFix.setTextColor(Color.BLACK);\r
-            }\r
-            mStar.setText(satlites);\r
-            mHoop.setText(hdop);\r
-            mSearchCount.setText(locationTime);\r
-\r
-            return false;\r
-        }\r
-    });\r
-    myGpsListener  gpsListener=new myGpsListener();\r
-    private boolean listening=false;\r
-    public boolean startListen() {\r
-\r
-        if (this.listening == false) {\r
-            Settings.Secure.setLocationProviderEnabled(this.getContentResolver(), GPS_PROVIDER, true);\r
-\r
-\r
-            Criteria criteria = new Criteria();\r
-            criteria.setAccuracy(Criteria.ACCURACY_FINE);// 设置为最大精度\r
-            criteria.setAltitudeRequired(false);//不要求海拔信息\r
-            criteria.setBearingRequired(false);// 不要求方位信息\r
-            criteria.setCostAllowed(true);//是否允许付费\r
-            criteria.setPowerRequirement(Criteria.POWER_LOW);// 对电量的要求\r
-\r
-            String provider = locationManager.getBestProvider(criteria, true);\r
-\r
-            Logger.d("GPS StartListen with Provider " + provider);\r
-            this.locationManager.requestLocationUpdates(provider, 0L, 0.0F, gpsListener);\r
-            this.listening = true;\r
-            longitude = 0;\r
-            latitude = 0;\r
-            searchCout = 0;\r
-            locationFixedCount=0;\r
-\r
-//      locationManager.addGpsStatusListener(statusListener);//监听搜星状态\r
-            locationManager.addNmeaListener(gpsListener); //监听NMEA 协议数据。\r
-\r
-            //做个热启动\r
-            return true;//gpsHotStart();\r
-        }else{\r
-            Logger.d(" location listening, skip !");\r
-            return true;\r
-        }\r
-    }\r
-\r
-    private static String ACTION_GPSCMD="com.enqualcomm.support.gps";\r
-    public void stopListen() {\r
-        this.locationManager.removeNmeaListener(gpsListener);\r
-        this.locationManager.removeUpdates(gpsListener);\r
-        this.listening = false;\r
-        Logger.d("stopListen 定位 ");\r
-\r
-        Settings.Secure.setLocationProviderEnabled(this.getContentResolver(), GPS_PROVIDER, false);\r
-        sendBroadcast();\r
-    }\r
-    public void sendBroadcast() {\r
-        Intent intent = new Intent();\r
-        intent.setAction(ACTION_GPSCMD);\r
-        intent.putExtra("status", "needReopen");\r
-        this.sendBroadcast(intent);\r
-    }\r
-    private LocationManager locationManager;\r
-    private double longitude;\r
-    private double latitude;\r
-\r
-    private int searchCout=0;\r
-\r
-    private GPS_locationStatus gps_status = new GPS_locationStatus();\r
-    private GPS_locationStatus gps_status_show = new GPS_locationStatus();\r
-\r
-    private void write_nmea_to_tty(String nmeastr){\r
-         try {\r
-             File ttyout=new File(this.ttyDialogPort);\r
-             FileOutputStream fos_tty = new FileOutputStream(ttyout);\r
-            fos_tty.write(nmeastr.getBytes());\r
-            fos_tty.close();\r
-        }catch ( Exception e){\r
-            e.printStackTrace();\r
-        }\r
-\r
-    }\r
-    private static int locationFixedCount=0;\r
-    static int satindex=0;\r
-    public void mOnNmeaReceived(long paramLong, String nmeastr) {\r
-//    EqcAlgorithmNative.native_EqcAlgorithmMethod5(paramString);\r
-//    ICLogger.i("Nmea :"+nmeastr+" "+paramLong);\r
-        //write_nmea_to_tty(nmeastr);\r
-        if(nmeastr.startsWith("$RD_RSSI"))  {\r
-\r
-            searchCout++;\r
-             on_locating_changed(gps_status);\r
-            gps_status.numSatelliteList.clear();\r
-            gps_status.search_time_cost=searchCout;\r
-        }\r
-\r
-\r
-        if (nmeastr.startsWith("$GPGLL,")){\r
-            String tmplist[]=nmeastr.split(",");\r
-//      GPGLL编辑\r
-//(地理定位信息)\r
-//      例:$GPGLL,4250.5589,S,14718.5084,E,092204.999,A*2D\r
-//      字段0:$GPGLL,语句ID,表明该语句为Geographic Position(GLL)地理定位信息\r
-//      字段1:纬度ddmm.mmmm,度分格式(前导位数不足则补0)\r
-//      字段2:纬度N(北纬)或S(南纬)\r
-//      字段3:经度dddmm.mmmm,度分格式(前导位数不足则补0)\r
-//      字段4:经度E(东经)或W(西经)\r
-//      字段5:UTC时间,hhmmss.sss格式\r
-//      字段6:状态,A=定位,V=未定位\r
-//      字段7:校验值($与*之间的数异或后的值)\r
-            String Lat=tmplist[1];\r
-            String lon=tmplist[3];\r
-            String fixed=tmplist[6];\r
-//      ICLogger.i("GPGLL Lat="+Lat+",Lon="+lon+",fixed="+fixed);\r
-\r
-        }else if (nmeastr.startsWith("$GPRMC,")) {\r
-//      GPRMC编辑\r
-//(推荐定位信息数据格式)\r
-//      例:$GPRMC,024813.640,A,3158.4608,N,11848.3737,E,10.05,324.27,150706,,,A*50\r
-//      字段0:$GPRMC,语句ID,表明该语句为Recommended Minimum Specific GPS/TRANSIT Data(RMC)推荐最小定位信息\r
-//      字段1:UTC时间,hhmmss.sss格式\r
-//      字段2:状态,A=定位,V=未定位\r
-//      字段3:纬度ddmm.mmmm,度分格式(前导位数不足则补0)\r
-//      字段4:纬度N(北纬)或S(南纬)\r
-//      字段5:经度dddmm.mmmm,度分格式(前导位数不足则补0)\r
-//      字段6:经度E(东经)或W(西经)\r
-//      字段7:速度,节,Knots\r
-//      字段8:方位角,度\r
-//      字段9:UTC日期,DDMMYY格式\r
-//      字段10:磁偏角,(000 - 180)度(前导位数不足则补0)\r
-//      字段11:磁偏角方向,E=东W=西\r
-//      字段12:模式,A=自动,D=差分,E=估测,N=数据无效(3.0协议内容)\r
-//      字段13:校验值($与*之间的数异或后的值)\r
-            String tmplist[]=nmeastr.split(",");\r
-            String utctime=tmplist[1];\r
-            String Lat=tmplist[3];\r
-            String lon=tmplist[5];\r
-            String fixed=tmplist[2];\r
-            String speed=tmplist[7];\r
-//      ICLogger.i("GPRMC GPSTime="+utctime+",Lat="+Lat+",Lon="+lon+",fixed="+fixed+",speed="+speed);\r
-//      if (Config.LOG_TOFILE)\r
-//        FileOutputUtil.fileOutput(this.runtime.getCacheDir(), "GPS", "GPRMC GPSTime="+utctime+",Lat="+Lat+",Lon="+lon+",fixed="+fixed+",speed="+speed);\r
-            if (fixed.trim().equals("A")) {\r
-                if (speed.trim().isEmpty()) speed = "0.0";\r
-            }\r
-\r
-\r
-        }else if (nmeastr.startsWith("$GPGSV,")) {\r
-\r
-//    GPGSV编辑\r
-//            (可见卫星信息)\r
-//    例:$GPGSV,3,1,10,20,78,331,45,01,59,235,47,22,41,069,,13,32,252,45*70\r
-//    字段0:$GPGSV,语句ID,表明该语句为GPS Satellites in View(GSV)可见卫星信息\r
-//    字段1:本次GSV语句的总数目(1 - 3)\r
-//    字段2:本条GSV语句是本次GSV语句的第几条(1 - 3)\r
-//    字段3:当前可见卫星总数(00 - 12)(前导位数不足则补0)\r
-//    字段4:PRN 码(伪随机噪声码)(01 - 32)(前导位数不足则补0)\r
-//    字段5:卫星仰角(00 - 90)度(前导位数不足则补0)\r
-//    字段6:卫星方位角(00 - 359)度(前导位数不足则补0)\r
-//    字段7:信噪比(00-99)dbHz\r
-//    字段8:PRN 码(伪随机噪声码)(01 - 32)(前导位数不足则补0)\r
-//    字段9:卫星仰角(00 - 90)度(前导位数不足则补0)\r
-//    字段10:卫星方位角(00 - 359)度(前导位数不足则补0)\r
-//    字段11:信噪比(00-99)dbHz\r
-//    字段12:PRN 码(伪随机噪声码)(01 - 32)(前导位数不足则补0)\r
-//    字段13:卫星仰角(00 - 90)度(前导位数不足则补0)\r
-////    字段14:卫星方位角(00 - 359)度(前导位数不足则补0)\r
-////    字段15:信噪比(00-99)dbHz\r
-//    字段16:校验值($与*之间的数异或后的值)\r
-\r
-            String tmplist[]=nmeastr.split(",");\r
-            int maxPageCount= Integer.valueOf(tmplist[1]);\r
-            int currentPage= Integer.valueOf(tmplist[2]);\r
-            int SatlitesCount= Integer.valueOf(tmplist[3]);\r
-            if (maxPageCount>0 && currentPage==1){\r
-                //第一页把数组初始化一遍。\r
-                satindex=0;\r
-                gps_status.satlite_numbss=SatlitesCount;\r
-            }\r
-            int satcount=(tmplist.length-4)/4;\r
-//      ICLogger.i("Nmea :"+nmeastr+" "+satcount);\r
-             for (int i=0;i<satcount;i++){\r
-                satindex++;\r
-                String prn=tmplist[i*4+4];\r
-                String snr=tmplist[i*4+4+3];\r
-                if (snr.contains("*")){\r
-                    snr=snr.substring(0,snr.indexOf("*"));\r
-                }\r
-                if (snr.trim().isEmpty()){\r
-                    snr="0";\r
-                }\r
-                Logger.d("Sat="+satindex+",prn="+prn+",snr="+snr);\r
-\r
-                int intprn= Integer.valueOf(prn);\r
-                float floatsnr= Float.valueOf(snr);\r
-                if (floatsnr>0) {\r
-                    gps_status.numSatelliteList.add(new GpsSatellitePriv(intprn, floatsnr));\r
-                }\r
-            }\r
-\r
-            if (maxPageCount==currentPage) {\r
-                //最后一页,打印搜星情况,并作一些判断。\r
-                StringBuilder sb=new StringBuilder();\r
-                sb.append("搜索"+searchCout+"次,搜索到卫星个数" + SatlitesCount+", [SNR>0] ="+ gps_status.numSatelliteList.size());\r
-\r
-                Logger.d( sb.toString());\r
-\r
-            }\r
-        }else if (nmeastr.startsWith("$GPGGA,")) {\r
-\r
-//    GPGGA编辑\r
-//(定位信息)\r
-//    例:$GPGGA,092204.999,4250.5589,S,14718.5084,E,1,04,24.4,12.2,M,19.7,M,,0000*1F\r
-//    字段0:$GPGGA,语句ID,表明该语句为Global Positioning System Fix Data(GGA)GPS定位信息\r
-//    字段1:UTC 时间,hhmmss.sss,时分秒格式\r
-//    字段2:纬度ddmm.mmmm,度分格式(前导位数不足则补0)\r
-//    字段3:纬度N(北纬)或S(南纬)\r
-//    字段4:经度dddmm.mmmm,度分格式(前导位数不足则补0)\r
-//    字段5:经度E(东经)或W(西经)\r
-//    字段6:GPS状态,0=不可用(FIX NOT valid),1=单点定位(GPS FIX),2=差分定位(DGPS),3=无效PPS,4=实时差分定位(RTK FIX),5=RTK FLOAT,6=正在估算\r
-//    字段7:正在使用的卫星数量(00 - 12)(前导位数不足则补0)\r
-//    字段8:HDOP水平精度因子(0.5 - 99.9)\r
-//    字段9:海拔高度(-9999.9 - 99999.9)\r
-//    字段10:单位:M(米)\r
-//    字段11:地球椭球面相对大地水准面的高度 WGS84水准面划分\r
-//    字段12:WGS84水准面划分单位:M(米)\r
-//    字段13:差分时间(从接收到差分信号开始的秒数,如果不是差分定位将为空)\r
-//    字段14:差分站ID号0000 - 1023(前导位数不足则补0,如果不是差分定位将为空)\r
-//    字段15:校验值($与*之间的数异或后的值)\r
-\r
-            String tmplist[]=nmeastr.split(",");\r
-            String utctime=tmplist[1];\r
-            String Lat=tmplist[2];\r
-            String lon=tmplist[4];\r
-            String fixed=tmplist[6];\r
-            String usedStarts=tmplist[7];\r
-            String hdop=tmplist[8];\r
-\r
-\r
-            if ( (fixed.trim().equals("1"))||(fixed.trim().equals("2"))||(fixed.trim().equals("6"))){\r
-\r
-\r
-                // 转换GPS坐标为度,以便在各种应用中可以方便查找。\r
-                latitude= Double.valueOf(Lat);\r
-                longitude= Double.valueOf(lon);\r
-                // 转换单位,从分转换到度\r
-\r
-                double intdu= (int)(longitude /100f); //小数转换到分为单位\r
-                double du=(longitude - intdu*100)/60f;\r
-                double last= intdu+du;\r
-                longitude =last;\r
-                intdu= (int)(latitude /100f); //小数转换到分为单位\r
-                du=(latitude - intdu*100)/60f;\r
-                last= intdu+du;\r
-                latitude=last;\r
-\r
-                // 经纬度 保留4位小数点\r
-                DecimalFormat df = new DecimalFormat("#.000000");\r
-                String strLatitude = df.format(latitude);\r
-                String strLongitude = df.format(longitude);\r
-\r
-                //定位\r
-                StringBuilder sb=new StringBuilder();\r
-                sb.append("GPGGA, location time= " + getLocalTime2() + ", FixedCount=" + locationFixedCount + ", GPSTime="+utctime+", Lat="+Lat+" ("+strLatitude+"), Lon="+lon+" ("+strLongitude+"), fixed="+fixed+", hdop="+hdop+", usedStarts="+usedStarts);\r
-                Logger.d(sb.toString());\r
-\r
-                gps_status.locating_status=1; //fixed\r
-            }else{\r
-                gps_status.locating_status=0; //notfixed\r
-            }\r
-            gps_status.hdop= Float.valueOf(hdop.trim());\r
-            gps_status.used_gps_numbs= Integer.valueOf(usedStarts.trim());\r
-\r
-\r
-        }else if (nmeastr.startsWith("$GPGSA,")) {\r
-\r
-//    GPGSA编辑\r
-//( 当前卫星信息)\r
-//    例:$GPGSA,A,3,01,20,19,13,,,,,,,,,40.4,24.4,32.2*0A\r
-//    字段0:$GPGSA,语句ID,表明该语句为GPS DOP and Active Satellites(GSA)当前卫星信息\r
-//    字段1:定位模式(选择2D/3D),A=自动选择,M=手动选择\r
-//    字段2:定位类型,1=未定位,2=2D定位,3=3D定位\r
-//    字段3:PRN码(伪随机噪声码),第1信道正在使用的卫星PRN码编号(00)(前导位数不足则补0)\r
-//    字段4:PRN码(伪随机噪声码),第2信道正在使用的卫星PRN码编号(00)(前导位数不足则补0)\r
-//    字段5:PRN码(伪随机噪声码),第3信道正在使用的卫星PRN码编号(00)(前导位数不足则补0)\r
-//    字段6:PRN码(伪随机噪声码),第4信道正在使用的卫星PRN码编号(00)(前导位数不足则补0)\r
-//    字段7:PRN码(伪随机噪声码),第5信道正在使用的卫星PRN码编号(00)(前导位数不足则补0)\r
-//    字段8:PRN码(伪随机噪声码),第6信道正在使用的卫星PRN码编号(00)(前导位数不足则补0)\r
-//    字段9:PRN码(伪随机噪声码),第7信道正在使用的卫星PRN码编号(00)(前导位数不足则补0)\r
-//    字段10:PRN码(伪随机噪声码),第8信道正在使用的卫星PRN码编号(00)(前导位数不足则补0)\r
-//    字段11:PRN码(伪随机噪声码),第9信道正在使用的卫星PRN码编号(00)(前导位数不足则补0)\r
-//    字段12:PRN码(伪随机噪声码),第10信道正在使用的卫星PRN码编号(00)(前导位数不足则补0)\r
-//    字段13:PRN码(伪随机噪声码),第11信道正在使用的卫星PRN码编号(00)(前导位数不足则补0)\r
-//    字段14:PRN码(伪随机噪声码),第12信道正在使用的卫星PRN码编号(00)(前导位数不足则补0)\r
-//    字段15:PDOP综合位置精度因子(0.5 - 99.9)\r
-//    字段16:HDOP水平精度因子(0.5 - 99.9)\r
-//    字段17:VDOP垂直精度因子(0.5 - 99.9)\r
-//    字段18:校验值($与*之间的数异或后的值)\r
-\r
-//      String tmplist[]=nmeastr.split(",");\r
-//      String locationmod=tmplist[1];\r
-//      String fixed=tmplist[2];\r
-//      String hdop=tmplist[16];\r
-//      if (!fixed.trim().equals("1")){\r
-//        //定位\r
-//        ICLogger.i("GPGSA fixed="+fixed+",hdop="+hdop);\r
-//      }\r
-        }\r
-    }\r
-\r
-}\r
+package mobile.miki;
+
+import android.content.Context;
+import android.content.Intent;
+import android.graphics.Color;
+import android.graphics.Rect;
+import android.location.Criteria;
+import android.location.GpsStatus;
+import android.location.Location;
+import android.location.LocationListener;
+import android.location.LocationManager;
+import android.os.Bundle;
+import android.os.Handler;
+import android.os.Message;
+import android.os.PowerManager;
+import android.provider.Settings;
+import android.support.v7.widget.LinearLayoutManager;
+import android.support.v7.widget.RecyclerView;
+import android.util.Log;
+import android.view.View;
+import android.widget.TextView;
+
+
+import com.ic.jni.ag3335m_jni;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.text.DecimalFormat;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Timer;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.concurrent.Future;
+
+import mobile.miki.util.FTUtils;
+import mobile.miki.util.Logger;
+
+import static android.location.LocationManager.GPS_PROVIDER;
+
+public class GPSActivity extends BaseActivity  {
+
+    private RecyclerView mRv;
+
+    private TextView mFix;
+    private TextView mStar;
+    private TextView mHoop;
+    private TextView mSearchCount;
+    private boolean showmessage=false;
+    private Timer timer;
+    final LocationSnrAdapter adapter = new LocationSnrAdapter(testSnrEntriyDate(null));
+    private final String ttyDialogPort="/dev/ttyGS3";
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        if(FTUtils.isGT09()){
+            setContentView(R.layout.gps_full_test_activity_280);
+        }else {
+            setContentView(R.layout.gps_full_test_activity);
+        }
+        mRv = (RecyclerView)findViewById(R.id.app_list);
+
+        mFix=(TextView)findViewById(R.id.ic_lc_fix_value);
+        mStar =(TextView) findViewById(R.id.ic_lc_star_value);
+        mHoop =  (TextView)findViewById(R.id.ic_lc_hoop_value);
+        mSearchCount= (TextView)findViewById(R.id.ic_lc_searchCount_value);
+        mRv.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false));
+
+        mRv.addItemDecoration(new SpacesItemDecoration(10));
+        mRv.setAdapter(adapter);
+
+        mFix.setText("notFixed");
+        mStar.setText("0 in 0/ inMap 0");
+        mHoop.setText("0.0米");
+        mSearchCount.setText("0秒");
+        locationManager = (LocationManager)this.getSystemService(Context.LOCATION_SERVICE);
+        if (FTUtils.isA9() ){
+            mFix.setTextSize(15);
+            mStar.setTextSize(15);
+            mHoop.setTextSize(15);
+            mSearchCount.setTextSize(15);
+        }
+        startListen();
+    }
+
+
+    public void on_locating_changed(GPS_locationStatus gps_status) {
+
+        gps_status_show.numSatelliteList.clear();
+        gps_status_show.hdop=gps_status.hdop;
+        gps_status_show.locating_status=gps_status.locating_status;
+        gps_status_show.satlite_numbss=gps_status.satlite_numbss;
+        gps_status_show.search_time_cost=gps_status.search_time_cost;
+        gps_status_show.used_gps_numbs=gps_status.used_gps_numbs;
+//        gps_status_show.numSatelliteList=gps_status.numSatelliteList;
+        for (int i=0;i<gps_status.numSatelliteList.size();i++) {
+            gps_status_show.numSatelliteList.add(i, new GpsSatellitePriv(gps_status.numSatelliteList.get(i).prn,gps_status.numSatelliteList.get(i).snr));
+        }
+
+      mHandler.sendEmptyMessage(0);
+    }
+
+    public class SpacesItemDecoration extends RecyclerView.ItemDecoration {
+        private int space;
+
+        public SpacesItemDecoration(int space) {
+            this.space = space;
+        }
+
+        @Override
+        public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {
+            outRect.right = space;
+        }
+    }
+    public static String getLocalTime2() { return getLocalTime2(System.currentTimeMillis()); }
+
+    public static String getLocalTime2(long paramLong) { return (new SimpleDateFormat("MMdd-HHmmss")).format(new Date(paramLong)); }
+    public static class  GpsSatellitePriv {
+        int prn;
+        float snr;
+        public GpsSatellitePriv(int _prn, float _snr) {
+            prn=_prn;
+            snr=_snr;
+        }
+        public int getPrn() {
+            return prn;
+        }
+        public float getSnr() {
+            return snr;
+        }
+    }
+    public static class GPS_locationStatus{
+        public List<GpsSatellitePriv> numSatelliteList = new ArrayList<GpsSatellitePriv>(); // 卫星信号
+        public int used_gps_numbs;
+        public float hdop;
+        public int satlite_numbss;
+        public int search_time_cost;
+        public int locating_status;
+    }
+    public ArrayList<SnrEntriy> testSnrEntriyDate(List<GpsSatellitePriv> gpslist) {
+        ArrayList<SnrEntriy> entity = new ArrayList<>();
+
+        if (gpslist!=null) {
+            for (int i = 0; i < gpslist.size(); i++) {
+
+                float snr=gpslist.get(i).getSnr();
+                int prn=gpslist.get(i).getPrn();
+                Logger.d("testSnrEntriyDate snr="+snr+",prn="+prn);
+                SnrEntriy info = new SnrEntriy(snr,prn , (snr>=40? Color.GREEN:((snr>=25&&snr<40)? Color.YELLOW: Color.RED)));
+                entity.add(info);
+            }
+        }
+        return entity;
+    }
+    PowerManager.WakeLock screenOnWakelock=null;
+    @Override
+    protected  void onResume() {
+        super.onResume();
+        if (screenOnWakelock==null)
+            screenOnWakelock = getScreenOnWakeLock(this,GPSActivity.class.getSimpleName());
+
+    }
+    public static PowerManager.WakeLock getScreenOnWakeLock(Context context, String tag) {
+        PowerManager.WakeLock wakeLock = ((PowerManager)(context.getSystemService(Context.POWER_SERVICE))).newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK, tag);
+        wakeLock.acquire();
+        return wakeLock;
+    }
+    @Override
+    protected void onPause() {
+        super.onPause();
+        if(screenOnWakelock!=null) {
+            if (screenOnWakelock.isHeld()) {
+                screenOnWakelock.release();
+            }
+            screenOnWakelock=null;
+        }
+
+
+    }
+
+    @Override
+    protected  void onDestroy(){
+        super.onDestroy();
+        stopListen();
+
+    }
+
+    private class myGpsListener implements GpsStatus.NmeaListener, LocationListener{
+
+        @Override
+        public void onNmeaReceived(long l, String s) {
+            mOnNmeaReceived(l,s);
+        }
+
+        @Override
+        public void onLocationChanged(Location location) {
+
+        }
+
+        @Override
+        public void onStatusChanged(String s, int i, Bundle bundle) {
+
+        }
+
+        @Override
+        public void onProviderEnabled(String s) {
+
+        }
+
+        @Override
+        public void onProviderDisabled(String s) {
+
+        }
+    }
+
+    Handler mHandler=new Handler(new Handler.Callback() {
+        @Override
+        public boolean handleMessage(Message message) {
+
+            List<GpsSatellitePriv> gpslist =gps_status_show.numSatelliteList;
+            adapter.updateLocationValue(testSnrEntriyDate(gpslist));
+            String fixed=new StringBuilder().append(gps_status_show.locating_status>0?
+                    "Fixed ":"notFixed ").append(getLocalTime2()).toString();
+            String satlites=new StringBuilder("used ").append(gps_status_show.used_gps_numbs).append(" in ")
+                    .append(gps_status_show.numSatelliteList.size()).append("/ inMap ").append(gps_status_show.satlite_numbss).toString();
+            String locationTime=new StringBuilder().append(gps_status_show.search_time_cost).append(" ").append(getResources().getString(R.string.seconds)).toString();
+            String hdop=new StringBuilder().append(String.valueOf(gps_status_show.hdop)).append(" ").append(getResources().getString(R.string.meter)).toString();
+            mFix.setText(fixed);
+            if (mFix.getText().toString().contains("notFixed")){
+                mFix.setBackgroundColor(Color.RED);
+                mFix.setTextColor(Color.WHITE);
+            }else{
+                mFix.setBackgroundColor(Color.GREEN);
+                mFix.setTextColor(Color.BLACK);
+            }
+            mStar.setText(satlites);
+            mHoop.setText(hdop);
+            mSearchCount.setText(locationTime);
+
+            return false;
+        }
+    });
+    myGpsListener  gpsListener=new myGpsListener();
+    private boolean listening=false;
+    public boolean startListen() {
+        if(FTUtils.isGT09())
+        {
+            enableAG3335M(true);
+            return true;
+        }else{
+            if (this.listening == false) {
+                Settings.Secure.setLocationProviderEnabled(this.getContentResolver(), GPS_PROVIDER, true);
+
+
+                Criteria criteria = new Criteria();
+                criteria.setAccuracy(Criteria.ACCURACY_FINE);// 设置为最大精度
+                criteria.setAltitudeRequired(false);//不要求海拔信息
+                criteria.setBearingRequired(false);// 不要求方位信息
+                criteria.setCostAllowed(true);//是否允许付费
+                criteria.setPowerRequirement(Criteria.POWER_LOW);// 对电量的要求
+
+                String provider = locationManager.getBestProvider(criteria, true);
+
+                Logger.d("GPS StartListen with Provider " + provider);
+                this.locationManager.requestLocationUpdates(provider, 0L, 0.0F, gpsListener);
+                this.listening = true;
+                longitude = 0;
+                latitude = 0;
+                searchCout = 0;
+                locationFixedCount=0;
+
+//      locationManager.addGpsStatusListener(statusListener);//监听搜星状态
+                locationManager.addNmeaListener(gpsListener); //监听NMEA 协议数据。
+
+                //做个热启动
+                return true;//gpsHotStart();
+            }else{
+                Logger.d(" location listening, skip !");
+                return true;
+            }
+        }
+    }
+
+
+    public static ExecutorService executor= Executors.newCachedThreadPool();
+    public static Future trans=null;
+    static volatile  boolean serial_thread_running=false;
+    public final String GPS_SERIAL_DEVICE = "/dev/ttyS2";
+    public final String USB_SERIAL_DEVICE = "/dev/ttyGS3";
+
+    public void enableAG3335M(boolean enable){
+        if(enable==true) {
+
+            //first init TTY devices
+            ag3335m_jni.setTTYS2();
+
+
+            //create thread  reading GPS data and send to USB SerialPort named " SPRD WCN DIAG "
+            //you can get GPS NMEA data in this thread
+            if(serial_thread_running==false) {
+                if (trans==null) {
+                    trans = executor.submit(thransferGPSdata);
+                }else if ( trans.isDone() || trans.isCancelled()){
+                    trans = executor.submit(thransferGPSdata);
+                }
+            }
+
+
+
+            // HW reset the GPS , you can do or not do it as you need.
+            ag3335m_jni.resetPower();
+
+        }else {
+            serial_thread_running = false;
+            trans.cancel(true);
+
+        }
+    }
+    public Runnable thransferGPSdata=new Runnable() {
+
+        @Override
+        public void run() {
+            FileInputStream fs=null;
+            Log.i("trans","ttyS2  start");
+            serial_thread_running=true;
+            if(fs==null) {
+                try {
+                    fs=new FileInputStream(new File(GPS_SERIAL_DEVICE));
+                } catch (FileNotFoundException e) {
+                    e.printStackTrace();
+                }
+            }
+
+            byte[] buf=new byte[4096];
+            int l=0;
+            while (serial_thread_running){
+                if(fs!=null){
+                    try {
+                        l=fs.read(buf);
+                        if(l>0 ){
+                            String[] list=new String(buf,0,l).split("\r\n");
+                            for( int i=0; i< list.length;i++) {
+                                int idx=list[i].indexOf("*");
+                                if(idx>0 && list[i].startsWith("$")) {
+                                    mOnNmeaReceived(list[i].length(), list[i].substring(0,idx));
+                                }
+                            }
+                        }else{
+                            Thread.sleep(100);
+                        }
+                    } catch (Exception e) {
+                        e.printStackTrace();
+                        try {
+                            fs.close();
+                        } catch (IOException ioException) {
+                            ioException.printStackTrace();
+                        }finally {
+                            fs=null;
+                        }
+
+                    }
+                }else{
+                    break;
+                }
+            }
+            try {
+                fs.close();
+            } catch (IOException e) {
+                e.printStackTrace();
+            }finally {
+                fs=null;
+            }
+
+
+            Log.i("trans","ttyS2  done");
+        }
+    };
+    private static String ACTION_GPSCMD="com.enqualcomm.support.gps";
+    public void stopListen() {
+        if(FTUtils.isGT09())
+        {
+            enableAG3335M(false);
+        }else {
+            this.locationManager.removeNmeaListener(gpsListener);
+            this.locationManager.removeUpdates(gpsListener);
+            this.listening = false;
+            Logger.d("stopListen 定位 ");
+
+            Settings.Secure.setLocationProviderEnabled(this.getContentResolver(), GPS_PROVIDER, false);
+            sendBroadcast();
+        }
+    }
+    public void sendBroadcast() {
+        Intent intent = new Intent();
+        intent.setAction(ACTION_GPSCMD);
+        intent.putExtra("status", "needReopen");
+        this.sendBroadcast(intent);
+    }
+    private LocationManager locationManager;
+    private double longitude;
+    private double latitude;
+
+    private int searchCout=0;
+
+    private GPS_locationStatus gps_status = new GPS_locationStatus();
+    private GPS_locationStatus gps_status_show = new GPS_locationStatus();
+
+    private void write_nmea_to_tty(String nmeastr){
+         try {
+             File ttyout=new File(this.ttyDialogPort);
+             FileOutputStream fos_tty = new FileOutputStream(ttyout);
+            fos_tty.write(nmeastr.getBytes());
+            fos_tty.close();
+        }catch ( Exception e){
+            e.printStackTrace();
+        }
+
+    }
+    private static int locationFixedCount=0;
+    static int satindex=0;
+    public void mOnNmeaReceived(long paramLong, String nmeastr) {
+//    EqcAlgorithmNative.native_EqcAlgorithmMethod5(paramString);
+        Logger.d("Nmea :"+nmeastr+" "+paramLong);
+        //write_nmea_to_tty(nmeastr);
+        if(nmeastr.startsWith("$RD_RSSI") ||nmeastr.startsWith("$GNGGA"))  {
+
+            searchCout++;
+             on_locating_changed(gps_status);
+            gps_status.numSatelliteList.clear();
+            gps_status.search_time_cost=searchCout;
+        }
+
+
+        if (nmeastr.startsWith("$GPGLL,")||nmeastr.startsWith("$GNGLL,")){
+            String tmplist[]=nmeastr.split(",");
+//      GPGLL编辑
+//(地理定位信息)
+//      例:$GPGLL,4250.5589,S,14718.5084,E,092204.999,A*2D
+//      字段0:$GPGLL,语句ID,表明该语句为Geographic Position(GLL)地理定位信息
+//      字段1:纬度ddmm.mmmm,度分格式(前导位数不足则补0)
+//      字段2:纬度N(北纬)或S(南纬)
+//      字段3:经度dddmm.mmmm,度分格式(前导位数不足则补0)
+//      字段4:经度E(东经)或W(西经)
+//      字段5:UTC时间,hhmmss.sss格式
+//      字段6:状态,A=定位,V=未定位
+//      字段7:校验值($与*之间的数异或后的值)
+            if(tmplist.length>6) {
+                String Lat = tmplist[1];
+                String lon = tmplist[3];
+                String fixed = tmplist[6];
+//      ICLogger.i("GPGLL Lat="+Lat+",Lon="+lon+",fixed="+fixed);
+            }
+        }else if (nmeastr.startsWith("$GPRMC,")||nmeastr.startsWith("$GNRMC,")) {
+//      GPRMC编辑
+//(推荐定位信息数据格式)
+//      例:$GPRMC,024813.640,A,3158.4608,N,11848.3737,E,10.05,324.27,150706,,,A*50
+//      字段0:$GPRMC,语句ID,表明该语句为Recommended Minimum Specific GPS/TRANSIT Data(RMC)推荐最小定位信息
+//      字段1:UTC时间,hhmmss.sss格式
+//      字段2:状态,A=定位,V=未定位
+//      字段3:纬度ddmm.mmmm,度分格式(前导位数不足则补0)
+//      字段4:纬度N(北纬)或S(南纬)
+//      字段5:经度dddmm.mmmm,度分格式(前导位数不足则补0)
+//      字段6:经度E(东经)或W(西经)
+//      字段7:速度,节,Knots
+//      字段8:方位角,度
+//      字段9:UTC日期,DDMMYY格式
+//      字段10:磁偏角,(000 - 180)度(前导位数不足则补0)
+//      字段11:磁偏角方向,E=东W=西
+//      字段12:模式,A=自动,D=差分,E=估测,N=数据无效(3.0协议内容)
+//      字段13:校验值($与*之间的数异或后的值)
+            String tmplist[]=nmeastr.split(",");
+            if(tmplist.length>7) {
+                String utctime = tmplist[1];
+                String Lat = tmplist[3];
+                String lon = tmplist[5];
+                String fixed = tmplist[2];
+                String speed = tmplist[7];
+//      ICLogger.i("GPRMC GPSTime="+utctime+",Lat="+Lat+",Lon="+lon+",fixed="+fixed+",speed="+speed);
+//      if (Config.LOG_TOFILE)
+//        FileOutputUtil.fileOutput(this.runtime.getCacheDir(), "GPS", "GPRMC GPSTime="+utctime+",Lat="+Lat+",Lon="+lon+",fixed="+fixed+",speed="+speed);
+                if (fixed.trim().equals("A")) {
+                    if (speed.trim().isEmpty()) speed = "0.0";
+                }
+
+            }
+
+        }else if (nmeastr.startsWith("$GPGSV,") ||nmeastr.startsWith("$GLGSV,")||nmeastr.startsWith("$GAGSV,")||nmeastr.startsWith("$GBGSV,")) {
+
+//    GPGSV编辑
+//            (可见卫星信息)
+//    例:$GPGSV,3,1,10,20,78,331,45,01,59,235,47,22,41,069,,13,32,252,45*70
+//    字段0:$GPGSV,语句ID,表明该语句为GPS Satellites in View(GSV)可见卫星信息
+//    字段1:本次GSV语句的总数目(1 - 3)
+//    字段2:本条GSV语句是本次GSV语句的第几条(1 - 3)
+//    字段3:当前可见卫星总数(00 - 12)(前导位数不足则补0)
+//    字段4:PRN 码(伪随机噪声码)(01 - 32)(前导位数不足则补0)
+//    字段5:卫星仰角(00 - 90)度(前导位数不足则补0)
+//    字段6:卫星方位角(00 - 359)度(前导位数不足则补0)
+//    字段7:信噪比(00-99)dbHz
+//    字段8:PRN 码(伪随机噪声码)(01 - 32)(前导位数不足则补0)
+//    字段9:卫星仰角(00 - 90)度(前导位数不足则补0)
+//    字段10:卫星方位角(00 - 359)度(前导位数不足则补0)
+//    字段11:信噪比(00-99)dbHz
+//    字段12:PRN 码(伪随机噪声码)(01 - 32)(前导位数不足则补0)
+//    字段13:卫星仰角(00 - 90)度(前导位数不足则补0)
+////    字段14:卫星方位角(00 - 359)度(前导位数不足则补0)
+////    字段15:信噪比(00-99)dbHz
+//    字段16:校验值($与*之间的数异或后的值)
+
+            String tmplist[]=nmeastr.split(",");
+            if(tmplist.length>3) {
+                int maxPageCount = 0;
+                int currentPage = 0;
+                int SatlitesCount = 0;
+
+                try {
+                    maxPageCount = Integer.valueOf(tmplist[1]);
+                } catch (Exception e) {
+                }
+                try {
+                    currentPage = Integer.valueOf(tmplist[2]);
+                } catch (Exception e) {
+                }
+                try {
+                    SatlitesCount = Integer.valueOf(tmplist[3]);
+                } catch (Exception e) {
+                }
+                if (maxPageCount > 0 && currentPage == 1) {
+                    //第一页把数组初始化一遍。
+                    satindex = 0;
+                    gps_status.satlite_numbss = SatlitesCount;
+                }
+                int satcount = (tmplist.length - 4) / 4;
+//      ICLogger.i("Nmea :"+nmeastr+" "+satcount);
+                for (int i = 0; i < satcount; i++) {
+                    satindex++;
+                    String prn = tmplist[i * 4 + 4];
+                    String snr = tmplist[i * 4 + 4 + 3];
+                    if (snr.contains("*")) {
+                        snr = snr.substring(0, snr.indexOf("*"));
+                    }
+                    if (snr.trim().isEmpty()) {
+                        snr = "0";
+                    }
+                    Logger.d("Sat=" + satindex + ",prn=" + prn + ",snr=" + snr);
+
+                    int intprn = 0;
+                    try {
+                        intprn = Integer.valueOf(prn);
+                    } catch (Exception e) {
+                    }
+                    float floatsnr = 0;
+                    try {
+                        floatsnr = Float.valueOf(snr);
+                    } catch (Exception e) {
+                    }
+                    if (floatsnr > 0) {
+                        gps_status.numSatelliteList.add(new GpsSatellitePriv(intprn, floatsnr));
+                    }
+                }
+
+                if (maxPageCount == currentPage) {
+                    //最后一页,打印搜星情况,并作一些判断。
+                    StringBuilder sb = new StringBuilder();
+                    sb.append("搜索" + searchCout + "次,搜索到卫星个数" + SatlitesCount + ", [SNR>0] =" + gps_status.numSatelliteList.size());
+
+                    Logger.d(sb.toString());
+
+                }
+            }
+        }else if (nmeastr.startsWith("$GPGGA,")||nmeastr.startsWith("$GNGGA,")) {
+
+//    GPGGA编辑
+//(定位信息)
+//    例:$GPGGA,092204.999,4250.5589,S,14718.5084,E,1,04,24.4,12.2,M,19.7,M,,0000*1F
+//    字段0:$GPGGA,语句ID,表明该语句为Global Positioning System Fix Data(GGA)GPS定位信息
+//    字段1:UTC 时间,hhmmss.sss,时分秒格式
+//    字段2:纬度ddmm.mmmm,度分格式(前导位数不足则补0)
+//    字段3:纬度N(北纬)或S(南纬)
+//    字段4:经度dddmm.mmmm,度分格式(前导位数不足则补0)
+//    字段5:经度E(东经)或W(西经)
+//    字段6:GPS状态,0=不可用(FIX NOT valid),1=单点定位(GPS FIX),2=差分定位(DGPS),3=无效PPS,4=实时差分定位(RTK FIX),5=RTK FLOAT,6=正在估算
+//    字段7:正在使用的卫星数量(00 - 12)(前导位数不足则补0)
+//    字段8:HDOP水平精度因子(0.5 - 99.9)
+//    字段9:海拔高度(-9999.9 - 99999.9)
+//    字段10:单位:M(米)
+//    字段11:地球椭球面相对大地水准面的高度 WGS84水准面划分
+//    字段12:WGS84水准面划分单位:M(米)
+//    字段13:差分时间(从接收到差分信号开始的秒数,如果不是差分定位将为空)
+//    字段14:差分站ID号0000 - 1023(前导位数不足则补0,如果不是差分定位将为空)
+//    字段15:校验值($与*之间的数异或后的值)
+
+            String tmplist[]=nmeastr.split(",");
+            if (tmplist.length>8) {
+                String utctime = tmplist[1];
+                String Lat = tmplist[2];
+                String lon = tmplist[4];
+                String fixed = tmplist[6];
+                String usedStarts = tmplist[7];
+                String hdop = tmplist[8];
+
+
+                if ((fixed.trim().equals("1")) || (fixed.trim().equals("2")) || (fixed.trim().equals("6"))) {
+
+
+                    // 转换GPS坐标为度,以便在各种应用中可以方便查找。
+                    try {
+                        latitude = Double.valueOf(Lat);
+                        longitude = Double.valueOf(lon);
+                    } catch (Exception e) {
+                    }
+                    // 转换单位,从分转换到度
+
+                    double intdu = (int) (longitude / 100f); //小数转换到分为单位
+                    double du = (longitude - intdu * 100) / 60f;
+                    double last = intdu + du;
+                    longitude = last;
+                    intdu = (int) (latitude / 100f); //小数转换到分为单位
+                    du = (latitude - intdu * 100) / 60f;
+                    last = intdu + du;
+                    latitude = last;
+
+                    // 经纬度 保留4位小数点
+                    DecimalFormat df = new DecimalFormat("#.000000");
+                    String strLatitude = df.format(latitude);
+                    String strLongitude = df.format(longitude);
+
+                    //定位
+                    StringBuilder sb = new StringBuilder();
+                    sb.append("GPGGA, location time= " + getLocalTime2() + ", FixedCount=" + locationFixedCount + ", GPSTime=" + utctime + ", Lat=" + Lat + " (" + strLatitude + "), Lon=" + lon + " (" + strLongitude + "), fixed=" + fixed + ", hdop=" + hdop + ", usedStarts=" + usedStarts);
+                    Logger.d(sb.toString());
+
+                    gps_status.locating_status = 1; //fixed
+                } else {
+                    gps_status.locating_status = 0; //notfixed
+                }
+                try {
+                    gps_status.hdop = Float.valueOf(hdop.trim());
+                    gps_status.used_gps_numbs = Integer.valueOf(usedStarts.trim());
+                } catch (Exception e) {
+                }
+
+            }
+        }else if (nmeastr.startsWith("$GPGSA,")||nmeastr.startsWith("$GNGSA,")) {
+
+//    GPGSA编辑
+//( 当前卫星信息)
+//    例:$GPGSA,A,3,01,20,19,13,,,,,,,,,40.4,24.4,32.2*0A
+//    字段0:$GPGSA,语句ID,表明该语句为GPS DOP and Active Satellites(GSA)当前卫星信息
+//    字段1:定位模式(选择2D/3D),A=自动选择,M=手动选择
+//    字段2:定位类型,1=未定位,2=2D定位,3=3D定位
+//    字段3:PRN码(伪随机噪声码),第1信道正在使用的卫星PRN码编号(00)(前导位数不足则补0)
+//    字段4:PRN码(伪随机噪声码),第2信道正在使用的卫星PRN码编号(00)(前导位数不足则补0)
+//    字段5:PRN码(伪随机噪声码),第3信道正在使用的卫星PRN码编号(00)(前导位数不足则补0)
+//    字段6:PRN码(伪随机噪声码),第4信道正在使用的卫星PRN码编号(00)(前导位数不足则补0)
+//    字段7:PRN码(伪随机噪声码),第5信道正在使用的卫星PRN码编号(00)(前导位数不足则补0)
+//    字段8:PRN码(伪随机噪声码),第6信道正在使用的卫星PRN码编号(00)(前导位数不足则补0)
+//    字段9:PRN码(伪随机噪声码),第7信道正在使用的卫星PRN码编号(00)(前导位数不足则补0)
+//    字段10:PRN码(伪随机噪声码),第8信道正在使用的卫星PRN码编号(00)(前导位数不足则补0)
+//    字段11:PRN码(伪随机噪声码),第9信道正在使用的卫星PRN码编号(00)(前导位数不足则补0)
+//    字段12:PRN码(伪随机噪声码),第10信道正在使用的卫星PRN码编号(00)(前导位数不足则补0)
+//    字段13:PRN码(伪随机噪声码),第11信道正在使用的卫星PRN码编号(00)(前导位数不足则补0)
+//    字段14:PRN码(伪随机噪声码),第12信道正在使用的卫星PRN码编号(00)(前导位数不足则补0)
+//    字段15:PDOP综合位置精度因子(0.5 - 99.9)
+//    字段16:HDOP水平精度因子(0.5 - 99.9)
+//    字段17:VDOP垂直精度因子(0.5 - 99.9)
+//    字段18:校验值($与*之间的数异或后的值)
+
+//      String tmplist[]=nmeastr.split(",");
+//      String locationmod=tmplist[1];
+//      String fixed=tmplist[2];
+//      String hdop=tmplist[16];
+//      if (!fixed.trim().equals("1")){
+//        //定位
+//        ICLogger.i("GPGSA fixed="+fixed+",hdop="+hdop);
+//      }
+        }
+    }
+
+}
index 0379ae6..6883a3b 100644 (file)
-package mobile.miki;\r
-\r
-import android.content.Context;\r
-import android.content.Intent;\r
-import android.location.GpsSatellite;\r
-import android.location.GpsStatus;\r
-import android.location.Location;\r
-import android.location.LocationListener;\r
-import android.location.LocationManager;\r
-import android.os.Bundle;\r
-import android.os.Handler;\r
-import android.os.Message;\r
-import android.preference.PreferenceManager;\r
-import android.provider.Settings;\r
-import android.text.TextUtils;\r
-import android.util.Log;\r
-import android.view.Display;\r
-import android.view.View;\r
-import android.widget.TextView;\r
-import android.widget.Toast;\r
-\r
-import java.text.DecimalFormat;\r
-import java.util.ArrayList;\r
-import java.util.Iterator;\r
-import java.util.List;\r
-\r
-import mobile.miki.mainui.ButtonViewTwo;\r
-import mobile.miki.mainui.TestMainActivity;\r
-import mobile.miki.mainui.TestMainList;\r
-import mobile.miki.util.Config;\r
-import mobile.miki.util.FTUtils;\r
-\r
-public class GpsTest extends BaseActivity implements\r
-        android.view.View.OnClickListener {\r
-    private LocationManager locationManager;\r
-    Location location;\r
-\r
-    private String locationInfo;\r
-    private List<GpsSatellite> numSatelliteList = new ArrayList<GpsSatellite>(); // 卫星信号\r
-    private List<GpsSatellite> max3Satellite = new ArrayList<GpsSatellite>(); // 卫星信号\r
-    private int satelliteInfo = 0;\r
-\r
-    private TextView tvGps;\r
-    private TextView tvResult;\r
-    private TextView tv_satellites;\r
-    private ButtonViewTwo buttonView;\r
-    boolean running;\r
-    boolean pcbatest;\r
-\r
-    private ReadGpsThread readGpsThread;\r
-    private double longitude;\r
-    private double latitude;\r
-\r
-    int gpsMode;\r
-    int numberOfSatellites;\r
-\r
-    @Override\r
-    protected void onCreate(Bundle arg0) {\r
-        // TODO Auto-generated method stub\r
-        super.onCreate(arg0);\r
-        MyApplication.getInstance().addActivity(this);\r
-        setContentView(R.layout.gps_test_new);\r
-//             initGPS();\r
-        //打开gps开关\r
-        gpsMode = Settings.Secure.getInt(this.getContentResolver(), Settings.Secure.LOCATION_MODE,\r
-                Settings.Secure.LOCATION_MODE_OFF);\r
-        if (gpsMode != Settings.Secure.LOCATION_MODE_HIGH_ACCURACY) {\r
-            Settings.Secure.putInt(this.getContentResolver(), Settings.Secure.LOCATION_MODE, Settings.Secure.LOCATION_MODE_HIGH_ACCURACY);\r
-        }\r
-\r
-        Intent intent = getIntent();\r
-        running = false;\r
-        pcbatest = false;\r
-        if (intent != null) {\r
-            running = intent.getBooleanExtra("running", false);\r
-            pcbatest = intent.getBooleanExtra("pcbatest", false);\r
-        }\r
-        buttonView = (ButtonViewTwo) findViewById(R.id.btn_set);\r
-        buttonView.btn_left.setOnClickListener(this);\r
-        buttonView.btn_right.setOnClickListener(this);\r
-        buttonView.btn_left.setClickable(false);\r
-        tvGps = (TextView) findViewById(R.id.tv_gps);\r
-        tvResult = (TextView) findViewById(R.id.tv_result);\r
-        tvResult.setText(getResources().getString(R.string.gps_searching));\r
-        tv_satellites = (TextView)findViewById(R.id.tv_satellites);\r
-        // 获取location对象\r
-        locationManager = (LocationManager) this\r
-                .getSystemService(Context.LOCATION_SERVICE);\r
-        readGpsThread = new ReadGpsThread();\r
-        readGpsThread.start();\r
-        locationManager.addGpsStatusListener(statusListener);//搜星\r
-        if(running){\r
-            if(pcbatest){\r
-                tvGps.setText(getString(R.string.pcbatest_gps_pass_rules));\r
-            }else{\r
-                tvGps.setText(getString(R.string.ageing_gps_pass_rules));\r
-            }\r
-        }else{\r
-            tvGps.setText(getString(R.string.gps_pass_rules));\r
-        }\r
-        getLocationInfo(); //设定GPS优先\r
-\r
-        if(FTUtils.isA9()){\r
-            tvGps.setTextSize(15);\r
-            tvResult.setTextSize(15);\r
-            tv_satellites.setTextSize(15);\r
-        }\r
-    }\r
-\r
-    public String getLocationInfo() {\r
-\r
-        location = getBestLocation(locationManager);\r
-        // locationInfo = updateView(location);\r
-        locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,\r
-                3000, 8, locationListener);\r
-        // 定位成功返回数据\r
-// tvGps.setText(locationInfo);\r
-//             if (!"".equals(locationInfo)) {\r
-//                     pass();\r
-//             }\r
-\r
-        return locationInfo;\r
-    }\r
-\r
-    boolean isFrist = true;\r
-\r
-    private String updateView(Location location) {\r
-\r
-        if (location != null) {\r
-            longitude = location.getLongitude();\r
-            latitude = location.getLatitude();\r
-            if (longitude > 0 && latitude > 0) {\r
-                tvResult.setText(getResources().getString(\r
-                        R.string.location_sucess));\r
-                if (readGpsThread != null) {\r
-                    readGpsThread.endThread();\r
-                }\r
-                if (isFrist) {\r
-                    isFrist = false;\r
-                    pass();// 定位成功,自动跳转2016.9.19 tyy\r
-                }\r
-\r
-            } else {\r
-                tvResult.setText(getResources().getString(\r
-                        R.string.location_fail));\r
-            }\r
-\r
-            long gpsTime = location.getTime();\r
-\r
-            double altitude = location.getAltitude();// 海拔\r
-\r
-            // 速度\r
-            float speed = location.getSpeed();// 速度 单位 m/s\r
-            speed = (speed * 60) / 1000; // 单位转换 km/h\r
-            // 保留一位小数点\r
-            DecimalFormat dfSpeed = new DecimalFormat("#.0");\r
-            String strSpeed = dfSpeed.format(speed);\r
-            speed = Float.parseFloat(strSpeed);\r
-            int intSpeed = (int) (speed * 10);\r
-            // SimpleLogger.d("intSpeed:"+intSpeed);\r
-\r
-            // 经纬度 保留6位小数点\r
-            DecimalFormat df = new DecimalFormat("#.000000");\r
-            String strLatitude = df.format(latitude);\r
-            String strLongitude = df.format(longitude);\r
-\r
-            StringBuffer sb = new StringBuffer();\r
-            String string = getResources().getString(R.string.longitude);\r
-            String string2 = getResources().getString(R.string.latitude);\r
-            sb.append(string + strLongitude + "\n" + string2 + strLatitude);\r
-            // SimpleLogger.d("satelliteInfo:"+satelliteInfo);\r
-            return sb.toString();\r
-        } else {\r
-            // textView.setText("");\r
-            return "";\r
-        }\r
-    }\r
-\r
-    public double[] getGpsInfo() {\r
-        String tude = locationInfo;\r
-        if (!TextUtils.isEmpty(tude)) {\r
-            String[] longitudeAndLatitude = tude.split(" ");\r
-            String longitude = longitudeAndLatitude[0];\r
-            String latitude = longitudeAndLatitude[1];\r
-\r
-            return new double[]{Double.parseDouble(latitude),\r
-                    Double.parseDouble(longitude)};\r
-        }\r
-        return null;\r
-    }\r
-\r
-    /**\r
-     * 获取location对象,优先以GPS_PROVIDER获取location对象,当以GPS_PROVIDER获取到的locaiton为null时\r
-     * ,则以NETWORK_PROVIDER获取location对象,这样可保证在室内开启网络连接的状态下获取到的location对象不为空\r
-     *\r
-     * @param locationManager\r
-     * @return\r
-     */\r
-    private Location getBestLocation(LocationManager locationManager) {\r
-        Location result = null;\r
-        if (locationManager != null) {\r
-            result = locationManager\r
-                    .getLastKnownLocation(LocationManager.GPS_PROVIDER);\r
-            if (result != null) {\r
-\r
-                return result;\r
-            } else {\r
-                result = locationManager\r
-                        .getLastKnownLocation(LocationManager.NETWORK_PROVIDER);\r
-                return result;\r
-            }\r
-        }\r
-        return result;\r
-    }\r
-\r
-    class ReadGpsThread extends Thread {\r
-        private boolean isRunning = false;\r
-        private int DELAY_MS = 1000;\r
-        private int count = 0;\r
-\r
-        public ReadGpsThread() {\r
-            isRunning = true;\r
-        }\r
-\r
-        public void endThread() {\r
-            isRunning = false;\r
-            readGpsThread = null;\r
-        }\r
-\r
-        @Override\r
-        public void run() {\r
-            while (isRunning) {\r
-                count++;\r
-                if (numberOfSatellites >= 3) {\r
-                    return;\r
-                }\r
-                // 15秒没定位成功,则失败\r
-                if (count == 120) {\r
-                    Message msg = new Message();\r
-                    temHandler.sendMessage(msg);\r
-                    if (readGpsThread != null) {\r
-                        endThread();\r
-                        return;\r
-                    }\r
-                }\r
-                try {\r
-                    Thread.sleep(DELAY_MS);\r
-                } catch (Exception e) {\r
-                    // TODO: handle exception\r
-                }\r
-            }\r
-            super.run();\r
-        }\r
-    }\r
-\r
-    Handler temHandler = new Handler(new Handler.Callback() {\r
-        @Override\r
-        public boolean handleMessage(Message message) {\r
-            tvResult.setText(getResources().getString(\r
-                    R.string.location_fail));\r
-            if (readGpsThread != null) {\r
-                readGpsThread.endThread();\r
-            }\r
-            return false;\r
-        }\r
-    });\r
-\r
-    @Override\r
-    protected void onDestroy() {\r
-        super.onDestroy();\r
-        if (readGpsThread != null) {\r
-            readGpsThread.endThread();\r
-        }\r
-        isFrist = false;\r
-        flag = false;\r
-        if (locationManager != null) {\r
-            locationManager.removeUpdates(locationListener);\r
-            locationManager.removeGpsStatusListener(statusListener);\r
-        }\r
-        if (locationListener != null) {\r
-            locationListener = null;\r
-        }\r
-        if (statusListener != null) {\r
-            statusListener = null;\r
-        }\r
-\r
-        //还原gps状态\r
-        Settings.Secure.putInt(this.getContentResolver(), Settings.Secure.LOCATION_MODE, gpsMode);\r
-        sendBroadcast();\r
-    }\r
-    private static String ACTION_GPSCMD="com.enqualcomm.support.gps";\r
-    public void sendBroadcast() {\r
-        Intent intent = new Intent();\r
-        intent.setAction(ACTION_GPSCMD);\r
-        intent.putExtra("status", "needReopen");\r
-        this.sendBroadcast(intent);\r
-    }\r
-\r
-    @Override\r
-    public void onClick(View arg0) {\r
-        Display myDisplay = getWindowManager().getDefaultDisplay();\r
-        Intent intent;\r
-        intent =  Config.getNextTestIntent(this,this.getClass());//new Intent(this, RingtoneActivity.class);\r
-\r
-        intent.putExtra("running", true);\r
-        intent.putExtra("pcbatest",pcbatest);\r
-        Intent intent1 = new Intent(this, TestMainActivity.class);\r
-        // TestResult testResult = (TestResult) getApplicationContext();\r
-        switch (arg0.getId()) {\r
-\r
-            case R.id.btn_two_left:\r
-                if (!running) {\r
-                    startActivity(intent1);\r
-                } else {\r
-                    startActivity(intent);\r
-                }\r
-                PreferenceManager\r
-                        .getDefaultSharedPreferences(getApplicationContext())\r
-                        .edit().putString("gps", "true").commit();\r
-                finish();\r
-                break;\r
-            case R.id.btn_two_right:\r
-                if (!running) {\r
-                    startActivity(intent1);\r
-                } else {\r
-                    startActivity(intent);\r
-                }\r
-                PreferenceManager\r
-                        .getDefaultSharedPreferences(getApplicationContext())\r
-                        .edit().putString("gps", "false").commit();\r
-                finish();\r
-                break;\r
-        }\r
-    }\r
-\r
-    public void pass() {\r
-        Toast.makeText(getApplicationContext(),\r
-                getResources().getString(R.string.ins_gsensor_toast),\r
-                Toast.LENGTH_SHORT).show();\r
-        buttonView.setSuccessColor();\r
-\r
-        PreferenceManager.getDefaultSharedPreferences(getApplicationContext())\r
-                .edit().putString("gps", "true").commit();\r
-        if (running) {\r
-            new Handler() {\r
-                @Override\r
-                public void handleMessage(Message msg) {\r
-                    super.handleMessage(msg);\r
-                    switch (msg.what) {\r
-                        case 0:\r
-\r
-                            Intent intent;\r
-                            intent =  Config.getNextTestIntent(GpsTest.this,GpsTest.this.getClass());//new Intent(GpsTest.this,  RingtoneActivity.class);\r
-                            intent.putExtra("running", true);\r
-                            intent.putExtra("pcbatest", pcbatest);\r
-                            startActivity(intent);\r
-                            GpsTest.this.finish();\r
-                            break;\r
-                        default:\r
-                            break;\r
-                    }\r
-                }\r
-\r
-            }.sendEmptyMessageDelayed(0, 1000);\r
-        } else {\r
-            buttonView.btn_left.setClickable(true);\r
-        }\r
-\r
-\r
-    }\r
-\r
-    @Override\r
-    public void onBackPressed() {\r
-        // super.onBackPressed();\r
-        if (running) {\r
-            Intent intent = new Intent(this, TestMainList.class);\r
-            startActivity(intent);\r
-            finish();\r
-        } else {\r
-            finish();\r
-        }\r
-    }\r
-\r
-\r
-    LocationListener locationListener = new LocationListener() {\r
-\r
-        @Override\r
-        public void onStatusChanged(String provider, int status,\r
-                                    Bundle extras) {\r
-        }\r
-\r
-        @Override\r
-        public void onProviderEnabled(String provider) {\r
-//                     locationInfo = updateView(locationManager\r
-//                                     .getLastKnownLocation(provider));\r
-        }\r
-\r
-        @Override\r
-        public void onProviderDisabled(String provider) {\r
-//                     locationInfo = updateView(null);\r
-        }\r
-\r
-        @Override\r
-        public void onLocationChanged(Location location) {\r
-            location = getBestLocation(locationManager);// 每次都去获取GPS_PROVIDER优先的location对象\r
-//                     locationInfo = updateView(location);\r
-        }\r
-    };\r
-\r
-\r
-    /////////////////搜索卫星数\r
-    boolean flag = true;//只操作一次pass\r
-    private GpsStatus.Listener statusListener = new GpsStatus.Listener() {\r
-        public void onGpsStatusChanged(int event) { // GPS状态变化时的回调,如卫星数\r
-            GpsStatus status = locationManager.getGpsStatus(null); //取当前状态\r
-            updateGpsStatus(event, status); //只更新状态\r
-            numberOfSatellites = numSatelliteList.size();\r
-\r
-            switch (event){\r
-                case  GpsStatus.GPS_EVENT_SATELLITE_STATUS:\r
-\r
-                    if (running && !pcbatest){\r
-                        //如果是自动测试,则有3颗大于20的就算通过\r
-                        if (max3Satellite.size() >= 3  && max3Satellite.get(2).getSnr()>=30) {\r
-                            tvResult.setText(getResources().getString(\r
-                                    R.string.location_sucess));\r
-                            if (readGpsThread != null) {\r
-                                readGpsThread.endThread();\r
-                            }\r
-                            if (flag) {\r
-                                flag = false;\r
-                                pass();\r
-                            }\r
-                        }\r
-                    }\r
-                    if (running && pcbatest){\r
-                        //如果是pcba测试,则只要有一颗大于30的星就算通过。\r
-                        if (max3Satellite.size() > 0  && max3Satellite.get(0).getSnr()>=30) {\r
-                            tvResult.setText(getResources().getString(\r
-                                    R.string.location_sucess));\r
-                            if (readGpsThread != null) {\r
-                                readGpsThread.endThread();\r
-                            }\r
-                            if (flag) {\r
-                                flag = false;\r
-                                pass();\r
-                            }\r
-                        }\r
-                    }\r
-\r
-                    break;\r
-                case  GpsStatus.GPS_EVENT_FIRST_FIX:\r
-                    //普通测试,必须定位才算通过\r
-                    tvResult.setText(getResources().getString(\r
-                            R.string.location_sucess)+" cost "+status.getTimeToFirstFix()+"ms");\r
-\r
-                    if (readGpsThread != null) {\r
-                        readGpsThread.endThread();\r
-                    }\r
-                    if (flag) {\r
-                        flag = false;\r
-                        pass();\r
-                    }\r
-                    break;\r
-                case  GpsStatus.GPS_EVENT_STARTED:\r
-                   // tvGps.setText("GPS_EVENT_STARTED");\r
-                    break;\r
-                case  GpsStatus.GPS_EVENT_STOPPED:\r
-                  //  tvGps.setText("GPS_EVENT_STOPPED");\r
-                    break;\r
-                default:\r
-                    break;\r
-            }\r
-\r
-\r
-\r
-\r
-        }\r
-    };\r
-\r
-    private void get3MaxSnrSatellite(GpsSatellite gst){\r
-\r
-        float snr = gst.getSnr();\r
-        for (int k=0;k<max3Satellite.size();k++) {\r
-           if( max3Satellite.get(k).getPrn()==gst.getPrn())\r
-               max3Satellite.remove(k);\r
-        }\r
-        max3Satellite.add(gst);//先添加进来。\r
-\r
-        //从大到小排序\r
-        for(int i=0;i<max3Satellite.size();i++) {\r
-            for (int j=i;j<max3Satellite.size();j++) {\r
-                if (max3Satellite.get(i).getSnr() < max3Satellite.get(j).getSnr()) {\r
-                    GpsSatellite ts = max3Satellite.get(j);\r
-                    max3Satellite.remove(j);\r
-                    max3Satellite.add(i, ts);//大的放前面\r
-                }\r
-            }\r
-        }\r
-        if (max3Satellite.size()>3){ //超过三个,谁小就删掉\r
-                max3Satellite.remove(3);\r
-        }\r
-\r
-    }\r
-    private int updateGpsStatus(int event, GpsStatus status) {\r
-        StringBuilder sb2 = new StringBuilder("");\r
-        float strengh = 0;\r
-        if (status == null) {\r
-            sb2.append("搜索到卫星个数:" + 0);\r
-        } else if (event == GpsStatus.GPS_EVENT_SATELLITE_STATUS) {\r
-            int maxSatellites = status.getMaxSatellites();\r
-            Iterator<GpsSatellite> it = status.getSatellites().iterator();\r
-            numSatelliteList.clear();\r
-            int count = 0;\r
-            while (it.hasNext() && count <= maxSatellites) {\r
-                GpsSatellite s = it.next();\r
-                float snr = s.getSnr();\r
-                if (snr > 0) {//只有信躁比不为0的时候才算搜到了星\r
-                    strengh = snr;\r
-//                             Toast.makeText(this, "信躁比大于20", Toast.LENGTH_LONG).show();\r
-                    //排序取得最大3个SNR\r
-                    get3MaxSnrSatellite(s);\r
-                    numSatelliteList.add(s);\r
-                }\r
-\r
-                count++;\r
-            }\r
-            sb2.append("搜索到卫星个数(SNR>0):" + numSatelliteList.size()+" \n Max 3 SNRs[ " );\r
-            for (int i=0;i<max3Satellite.size();i++){\r
-                sb2.append(max3Satellite.get(i).getSnr());\r
-                sb2.append(", ");\r
-            }\r
-            sb2.append(" ]");\r
-        }\r
-\r
-\r
-        Log.e("dxc", sb2.toString());\r
-        //tv_satellites.setText(null);\r
-        tv_satellites.setText(sb2);\r
-\r
-        return 0;\r
-    }\r
-    ////////////////\r
-\r
-}\r
+package mobile.miki;
+
+import android.content.Context;
+import android.content.Intent;
+import android.location.GpsSatellite;
+import android.location.GpsStatus;
+import android.location.Location;
+import android.location.LocationListener;
+import android.location.LocationManager;
+import android.os.Bundle;
+import android.os.Handler;
+import android.os.Message;
+import android.preference.PreferenceManager;
+import android.provider.Settings;
+import android.text.TextUtils;
+import android.util.Log;
+import android.view.Display;
+import android.view.View;
+import android.widget.TextView;
+import android.widget.Toast;
+
+import java.text.DecimalFormat;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import mobile.miki.mainui.ButtonViewTwo;
+import mobile.miki.mainui.TestMainActivity;
+import mobile.miki.mainui.TestMainList;
+import mobile.miki.util.Config;
+import mobile.miki.util.FTUtils;
+
+public class GpsTest extends BaseActivity implements
+        android.view.View.OnClickListener {
+    private LocationManager locationManager;
+    Location location;
+
+    private String locationInfo;
+    private List<GpsSatellite> numSatelliteList = new ArrayList<GpsSatellite>(); // 卫星信号
+    private List<GpsSatellite> max3Satellite = new ArrayList<GpsSatellite>(); // 卫星信号
+    private int satelliteInfo = 0;
+
+    private TextView tvGps;
+    private TextView tvResult;
+    private TextView tv_satellites;
+    private ButtonViewTwo buttonView;
+    boolean running;
+    boolean pcbatest;
+
+    private ReadGpsThread readGpsThread;
+    private double longitude;
+    private double latitude;
+
+    int gpsMode;
+    int numberOfSatellites;
+
+    @Override
+    protected void onCreate(Bundle arg0) {
+        // TODO Auto-generated method stub
+        super.onCreate(arg0);
+        MyApplication.getInstance().addActivity(this);
+        setContentView(R.layout.gps_test_new);
+//             initGPS();
+        //打开gps开关
+        gpsMode = Settings.Secure.getInt(this.getContentResolver(), Settings.Secure.LOCATION_MODE,
+                Settings.Secure.LOCATION_MODE_OFF);
+        if (gpsMode != Settings.Secure.LOCATION_MODE_HIGH_ACCURACY) {
+            Settings.Secure.putInt(this.getContentResolver(), Settings.Secure.LOCATION_MODE, Settings.Secure.LOCATION_MODE_HIGH_ACCURACY);
+        }
+
+        Intent intent = getIntent();
+        running = false;
+        pcbatest = false;
+        if (intent != null) {
+            running = intent.getBooleanExtra("running", false);
+            pcbatest = intent.getBooleanExtra("pcbatest", false);
+        }
+        buttonView = (ButtonViewTwo) findViewById(R.id.btn_set);
+        buttonView.btn_left.setOnClickListener(this);
+        buttonView.btn_right.setOnClickListener(this);
+        buttonView.btn_left.setClickable(false);
+        tvGps = (TextView) findViewById(R.id.tv_gps);
+        tvResult = (TextView) findViewById(R.id.tv_result);
+        tvResult.setText(getResources().getString(R.string.gps_searching));
+        tv_satellites = (TextView)findViewById(R.id.tv_satellites);
+        // 获取location对象
+        locationManager = (LocationManager) this
+                .getSystemService(Context.LOCATION_SERVICE);
+        readGpsThread = new ReadGpsThread();
+        readGpsThread.start();
+        locationManager.addGpsStatusListener(statusListener);//搜星
+        if(running){
+            if(pcbatest){
+                tvGps.setText(getString(R.string.pcbatest_gps_pass_rules));
+            }else{
+                tvGps.setText(getString(R.string.ageing_gps_pass_rules));
+            }
+        }else{
+            tvGps.setText(getString(R.string.gps_pass_rules));
+        }
+        getLocationInfo(); //设定GPS优先
+
+        if(FTUtils.isA9()&&FTUtils.isGT09()){
+            tvGps.setTextSize(15);
+            tvResult.setTextSize(15);
+            tv_satellites.setTextSize(15);
+        }
+    }
+
+    public String getLocationInfo() {
+
+        location = getBestLocation(locationManager);
+        // locationInfo = updateView(location);
+        locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,
+                3000, 8, locationListener);
+        // 定位成功返回数据
+// tvGps.setText(locationInfo);
+//             if (!"".equals(locationInfo)) {
+//                     pass();
+//             }
+
+        return locationInfo;
+    }
+
+    boolean isFrist = true;
+
+    private String updateView(Location location) {
+
+        if (location != null) {
+            longitude = location.getLongitude();
+            latitude = location.getLatitude();
+            if (longitude > 0 && latitude > 0) {
+                tvResult.setText(getResources().getString(
+                        R.string.location_sucess));
+                if (readGpsThread != null) {
+                    readGpsThread.endThread();
+                }
+                if (isFrist) {
+                    isFrist = false;
+                    pass();// 定位成功,自动跳转2016.9.19 tyy
+                }
+
+            } else {
+                tvResult.setText(getResources().getString(
+                        R.string.location_fail));
+            }
+
+            long gpsTime = location.getTime();
+
+            double altitude = location.getAltitude();// 海拔
+
+            // 速度
+            float speed = location.getSpeed();// 速度 单位 m/s
+            speed = (speed * 60) / 1000; // 单位转换 km/h
+            // 保留一位小数点
+            DecimalFormat dfSpeed = new DecimalFormat("#.0");
+            String strSpeed = dfSpeed.format(speed);
+            speed = Float.parseFloat(strSpeed);
+            int intSpeed = (int) (speed * 10);
+            // SimpleLogger.d("intSpeed:"+intSpeed);
+
+            // 经纬度 保留6位小数点
+            DecimalFormat df = new DecimalFormat("#.000000");
+            String strLatitude = df.format(latitude);
+            String strLongitude = df.format(longitude);
+
+            StringBuffer sb = new StringBuffer();
+            String string = getResources().getString(R.string.longitude);
+            String string2 = getResources().getString(R.string.latitude);
+            sb.append(string + strLongitude + "\n" + string2 + strLatitude);
+            // SimpleLogger.d("satelliteInfo:"+satelliteInfo);
+            return sb.toString();
+        } else {
+            // textView.setText("");
+            return "";
+        }
+    }
+
+    public double[] getGpsInfo() {
+        String tude = locationInfo;
+        if (!TextUtils.isEmpty(tude)) {
+            String[] longitudeAndLatitude = tude.split(" ");
+            String longitude = longitudeAndLatitude[0];
+            String latitude = longitudeAndLatitude[1];
+
+            return new double[]{Double.parseDouble(latitude),
+                    Double.parseDouble(longitude)};
+        }
+        return null;
+    }
+
+    /**
+     * 获取location对象,优先以GPS_PROVIDER获取location对象,当以GPS_PROVIDER获取到的locaiton为null时
+     * ,则以NETWORK_PROVIDER获取location对象,这样可保证在室内开启网络连接的状态下获取到的location对象不为空
+     *
+     * @param locationManager
+     * @return
+     */
+    private Location getBestLocation(LocationManager locationManager) {
+        Location result = null;
+        if (locationManager != null) {
+            result = locationManager
+                    .getLastKnownLocation(LocationManager.GPS_PROVIDER);
+            if (result != null) {
+
+                return result;
+            } else {
+                result = locationManager
+                        .getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
+                return result;
+            }
+        }
+        return result;
+    }
+
+    class ReadGpsThread extends Thread {
+        private boolean isRunning = false;
+        private int DELAY_MS = 1000;
+        private int count = 0;
+
+        public ReadGpsThread() {
+            isRunning = true;
+        }
+
+        public void endThread() {
+            isRunning = false;
+            readGpsThread = null;
+        }
+
+        @Override
+        public void run() {
+            while (isRunning) {
+                count++;
+                if (numberOfSatellites >= 3) {
+                    return;
+                }
+                // 15秒没定位成功,则失败
+                if (count == 120) {
+                    Message msg = new Message();
+                    temHandler.sendMessage(msg);
+                    if (readGpsThread != null) {
+                        endThread();
+                        return;
+                    }
+                }
+                try {
+                    Thread.sleep(DELAY_MS);
+                } catch (Exception e) {
+                    // TODO: handle exception
+                }
+            }
+            super.run();
+        }
+    }
+
+    Handler temHandler = new Handler(new Handler.Callback() {
+        @Override
+        public boolean handleMessage(Message message) {
+            tvResult.setText(getResources().getString(
+                    R.string.location_fail));
+            if (readGpsThread != null) {
+                readGpsThread.endThread();
+            }
+            return false;
+        }
+    });
+
+    @Override
+    protected void onDestroy() {
+        super.onDestroy();
+        if (readGpsThread != null) {
+            readGpsThread.endThread();
+        }
+        isFrist = false;
+        flag = false;
+        if (locationManager != null) {
+            locationManager.removeUpdates(locationListener);
+            locationManager.removeGpsStatusListener(statusListener);
+        }
+        if (locationListener != null) {
+            locationListener = null;
+        }
+        if (statusListener != null) {
+            statusListener = null;
+        }
+
+        //还原gps状态
+        Settings.Secure.putInt(this.getContentResolver(), Settings.Secure.LOCATION_MODE, gpsMode);
+        sendBroadcast();
+    }
+    private static String ACTION_GPSCMD="com.enqualcomm.support.gps";
+    public void sendBroadcast() {
+        Intent intent = new Intent();
+        intent.setAction(ACTION_GPSCMD);
+        intent.putExtra("status", "needReopen");
+        this.sendBroadcast(intent);
+    }
+
+    @Override
+    public void onClick(View arg0) {
+        Display myDisplay = getWindowManager().getDefaultDisplay();
+        Intent intent;
+        intent =  Config.getNextTestIntent(this,this.getClass());//new Intent(this, RingtoneActivity.class);
+
+        intent.putExtra("running", true);
+        intent.putExtra("pcbatest",pcbatest);
+        Intent intent1 = new Intent(this, TestMainActivity.class);
+        // TestResult testResult = (TestResult) getApplicationContext();
+        switch (arg0.getId()) {
+
+            case R.id.btn_two_left:
+                if (!running) {
+                    startActivity(intent1);
+                } else {
+                    startActivity(intent);
+                }
+                PreferenceManager
+                        .getDefaultSharedPreferences(getApplicationContext())
+                        .edit().putString("gps", "true").commit();
+                finish();
+                break;
+            case R.id.btn_two_right:
+                if (!running) {
+                    startActivity(intent1);
+                } else {
+                    startActivity(intent);
+                }
+                PreferenceManager
+                        .getDefaultSharedPreferences(getApplicationContext())
+                        .edit().putString("gps", "false").commit();
+                finish();
+                break;
+        }
+    }
+
+    public void pass() {
+        Toast.makeText(getApplicationContext(),
+                getResources().getString(R.string.ins_gsensor_toast),
+                Toast.LENGTH_SHORT).show();
+        buttonView.setSuccessColor();
+
+        PreferenceManager.getDefaultSharedPreferences(getApplicationContext())
+                .edit().putString("gps", "true").commit();
+        if (running) {
+            new Handler() {
+                @Override
+                public void handleMessage(Message msg) {
+                    super.handleMessage(msg);
+                    switch (msg.what) {
+                        case 0:
+
+                            Intent intent;
+                            intent =  Config.getNextTestIntent(GpsTest.this,GpsTest.this.getClass());//new Intent(GpsTest.this,  RingtoneActivity.class);
+                            intent.putExtra("running", true);
+                            intent.putExtra("pcbatest", pcbatest);
+                            startActivity(intent);
+                            GpsTest.this.finish();
+                            break;
+                        default:
+                            break;
+                    }
+                }
+
+            }.sendEmptyMessageDelayed(0, 1000);
+        } else {
+            buttonView.btn_left.setClickable(true);
+        }
+
+
+    }
+
+    @Override
+    public void onBackPressed() {
+        // super.onBackPressed();
+        if (running) {
+            Intent intent = new Intent(this, TestMainList.class);
+            startActivity(intent);
+            finish();
+        } else {
+            finish();
+        }
+    }
+
+
+    LocationListener locationListener = new LocationListener() {
+
+        @Override
+        public void onStatusChanged(String provider, int status,
+                                    Bundle extras) {
+        }
+
+        @Override
+        public void onProviderEnabled(String provider) {
+//                     locationInfo = updateView(locationManager
+//                                     .getLastKnownLocation(provider));
+        }
+
+        @Override
+        public void onProviderDisabled(String provider) {
+//                     locationInfo = updateView(null);
+        }
+
+        @Override
+        public void onLocationChanged(Location location) {
+            location = getBestLocation(locationManager);// 每次都去获取GPS_PROVIDER优先的location对象
+//                     locationInfo = updateView(location);
+        }
+    };
+
+
+    /////////////////搜索卫星数
+    boolean flag = true;//只操作一次pass
+    private GpsStatus.Listener statusListener = new GpsStatus.Listener() {
+        public void onGpsStatusChanged(int event) { // GPS状态变化时的回调,如卫星数
+            GpsStatus status = locationManager.getGpsStatus(null); //取当前状态
+            updateGpsStatus(event, status); //只更新状态
+            numberOfSatellites = numSatelliteList.size();
+
+            switch (event){
+                case  GpsStatus.GPS_EVENT_SATELLITE_STATUS:
+
+                    if (running && !pcbatest){
+                        //如果是自动测试,则有3颗大于20的就算通过
+                        if (max3Satellite.size() >= 3  && max3Satellite.get(2).getSnr()>=30) {
+                            tvResult.setText(getResources().getString(
+                                    R.string.location_sucess));
+                            if (readGpsThread != null) {
+                                readGpsThread.endThread();
+                            }
+                            if (flag) {
+                                flag = false;
+                                pass();
+                            }
+                        }
+                    }
+                    if (running && pcbatest){
+                        //如果是pcba测试,则只要有一颗大于30的星就算通过。
+                        if (max3Satellite.size() > 0  && max3Satellite.get(0).getSnr()>=30) {
+                            tvResult.setText(getResources().getString(
+                                    R.string.location_sucess));
+                            if (readGpsThread != null) {
+                                readGpsThread.endThread();
+                            }
+                            if (flag) {
+                                flag = false;
+                                pass();
+                            }
+                        }
+                    }
+
+                    break;
+                case  GpsStatus.GPS_EVENT_FIRST_FIX:
+                    //普通测试,必须定位才算通过
+                    tvResult.setText(getResources().getString(
+                            R.string.location_sucess)+" cost "+status.getTimeToFirstFix()+"ms");
+
+                    if (readGpsThread != null) {
+                        readGpsThread.endThread();
+                    }
+                    if (flag) {
+                        flag = false;
+                        pass();
+                    }
+                    break;
+                case  GpsStatus.GPS_EVENT_STARTED:
+                   // tvGps.setText("GPS_EVENT_STARTED");
+                    break;
+                case  GpsStatus.GPS_EVENT_STOPPED:
+                  //  tvGps.setText("GPS_EVENT_STOPPED");
+                    break;
+                default:
+                    break;
+            }
+
+
+
+
+        }
+    };
+
+    private void get3MaxSnrSatellite(GpsSatellite gst){
+
+        float snr = gst.getSnr();
+        for (int k=0;k<max3Satellite.size();k++) {
+           if( max3Satellite.get(k).getPrn()==gst.getPrn())
+               max3Satellite.remove(k);
+        }
+        max3Satellite.add(gst);//先添加进来。
+
+        //从大到小排序
+        for(int i=0;i<max3Satellite.size();i++) {
+            for (int j=i;j<max3Satellite.size();j++) {
+                if (max3Satellite.get(i).getSnr() < max3Satellite.get(j).getSnr()) {
+                    GpsSatellite ts = max3Satellite.get(j);
+                    max3Satellite.remove(j);
+                    max3Satellite.add(i, ts);//大的放前面
+                }
+            }
+        }
+        if (max3Satellite.size()>3){ //超过三个,谁小就删掉
+                max3Satellite.remove(3);
+        }
+
+    }
+    private int updateGpsStatus(int event, GpsStatus status) {
+        StringBuilder sb2 = new StringBuilder("");
+        float strengh = 0;
+        if (status == null) {
+            sb2.append("搜索到卫星个数:" + 0);
+        } else if (event == GpsStatus.GPS_EVENT_SATELLITE_STATUS) {
+            int maxSatellites = status.getMaxSatellites();
+            Iterator<GpsSatellite> it = status.getSatellites().iterator();
+            numSatelliteList.clear();
+            int count = 0;
+            while (it.hasNext() && count <= maxSatellites) {
+                GpsSatellite s = it.next();
+                float snr = s.getSnr();
+                if (snr > 0) {//只有信躁比不为0的时候才算搜到了星
+                    strengh = snr;
+//                             Toast.makeText(this, "信躁比大于20", Toast.LENGTH_LONG).show();
+                    //排序取得最大3个SNR
+                    get3MaxSnrSatellite(s);
+                    numSatelliteList.add(s);
+                }
+
+                count++;
+            }
+            sb2.append("搜索到卫星个数(SNR>0):" + numSatelliteList.size()+" \n Max 3 SNRs[ " );
+            for (int i=0;i<max3Satellite.size();i++){
+                sb2.append(max3Satellite.get(i).getSnr());
+                sb2.append(", ");
+            }
+            sb2.append(" ]");
+        }
+
+
+        Log.e("dxc", sb2.toString());
+        //tv_satellites.setText(null);
+        tv_satellites.setText(sb2);
+
+        return 0;
+    }
+    ////////////////
+
+}
index 76fd6e3..dfcb8fb 100644 (file)
-package mobile.miki;\r
-\r
-import android.content.Context;\r
-import android.graphics.Canvas;\r
-import android.graphics.Color;\r
-import android.graphics.Paint;\r
-import android.support.annotation.Nullable;\r
-import android.util.AttributeSet;\r
-import android.util.TypedValue;\r
-import android.view.View;\r
-\r
-\r
-public class SnrHistogramView extends View {\r
-\r
-\r
-    private int mWidth = 0;\r
-    private int mHeight = 0;\r
-\r
-    private Paint mPaint;\r
-    private Paint mTextPaint;\r
-\r
-    private String mSnrValue = "80";\r
-    private String mSnrNmber = "60";\r
-\r
-    private float mBL=1f;\r
-\r
-    public SnrHistogramView(Context context) {\r
-        this(context, null);\r
-    }\r
-\r
-    public SnrHistogramView(Context context, @Nullable AttributeSet attrs) {\r
-        this(context, attrs, 0);\r
-    }\r
-\r
-    public SnrHistogramView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {\r
-        super(context, attrs, defStyleAttr);\r
-        mPaint = new Paint();\r
-        mTextPaint = new Paint();\r
-\r
-        mPaint.setAntiAlias(true);\r
-        mPaint.setDither(true);\r
-        int mBgColor = Color.GREEN;\r
-        mPaint.setColor(mBgColor);\r
-        mPaint.setStyle(Paint.Style.FILL);\r
-\r
-        mTextPaint.setAntiAlias(true);\r
-        mTextPaint.setDither(true);\r
-        mTextPaint.setColor(Color.WHITE);\r
-        mTextPaint.setStyle(Paint.Style.FILL);\r
-        mTextPaint.setTextSize(spToPx(24));\r
-    }\r
-\r
-    @Override\r
-    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {\r
-        super.onMeasure(widthMeasureSpec, heightMeasureSpec);\r
-\r
-\r
-        int widthSize = MeasureSpec.getSize(widthMeasureSpec);\r
-        int widthMode = MeasureSpec.getMode(widthMeasureSpec);\r
-        int heightSize = MeasureSpec.getSize(heightMeasureSpec);\r
-        int heightMode = MeasureSpec.getMode(heightMeasureSpec);\r
-\r
-\r
-        if (widthMode == MeasureSpec.AT_MOST\r
-                || widthMode == MeasureSpec.UNSPECIFIED\r
-                || heightMeasureSpec == MeasureSpec.AT_MOST\r
-                || heightMeasureSpec == MeasureSpec.UNSPECIFIED) {\r
-            //宽度高度至少有一个确定的值,不能同时为wrap_content\r
-            return;\r
-        } else { //至少有一个为确定值,要获取其中的最小值\r
-            if (widthMode == MeasureSpec.EXACTLY) {\r
-                mWidth = widthSize;\r
-            }\r
-\r
-            if (heightMode == MeasureSpec.EXACTLY) {\r
-                mHeight = heightSize;\r
-            }\r
-        }\r
-    }\r
-\r
-\r
-    @Override\r
-    protected void onDraw(Canvas canvas) {\r
-        super.onDraw(canvas);\r
-\r
-        float[] snrNmber = measureTextWidth(mSnrNmber, mTextPaint);\r
-        float[] snrValue = measureTextWidth(mSnrValue, mTextPaint);\r
-\r
-        float hv = getHistogramHeight(snrValue[1], snrNmber[1], mBL);\r
-\r
-        canvas.drawText(mSnrNmber, (mWidth - snrNmber[0]) / 2, mHeight, mTextPaint);\r
-        canvas.drawText(mSnrValue, (mWidth - snrValue[0]) / 2, mHeight - snrNmber[1] - hv, mTextPaint);\r
-\r
-        canvas.drawRect(0, mHeight - (hv + snrNmber[1] - 2), mWidth, mHeight - snrNmber[1], mPaint);\r
-    }\r
-\r
-    private float getHistogramHeight(float vh, float nh, float bl) {\r
-        return (mHeight - vh - nh) * bl;\r
-    }\r
-\r
-    private float[] measureTextWidth(String mText, Paint textPaint) {\r
-        Paint.FontMetrics fontMetrics = textPaint.getFontMetrics();\r
-        float height1 = fontMetrics.bottom - fontMetrics.top;\r
-        float strWidth = textPaint.measureText(mText);\r
-        return new float[]{strWidth, height1};\r
-    }\r
-\r
-    private float spToPx(float sp) {\r
-        return TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, sp, getResources().getDisplayMetrics());\r
-    }\r
-\r
-    public void updateValue(float value,int number,int bgColor){\r
-        mPaint.setColor(bgColor);\r
-        mSnrNmber = String.valueOf(number);\r
-        mSnrValue = String.valueOf((int)value);\r
-        mBL=value*0.025F;\r
-\r
-        invalidate();\r
-    }\r
-}\r
+package mobile.miki;
+
+import android.content.Context;
+import android.graphics.Canvas;
+import android.graphics.Color;
+import android.graphics.Paint;
+import android.support.annotation.Nullable;
+import android.util.AttributeSet;
+import android.util.TypedValue;
+import android.view.View;
+
+import mobile.miki.util.FTUtils;
+
+
+public class SnrHistogramView extends View {
+
+
+    private int mWidth = 0;
+    private int mHeight = 0;
+
+    private Paint mPaint;
+    private Paint mTextPaint;
+
+    private String mSnrValue = "80";
+    private String mSnrNmber = "60";
+
+    private float mBL=1f;
+
+    public SnrHistogramView(Context context) {
+        this(context, null);
+    }
+
+    public SnrHistogramView(Context context, @Nullable AttributeSet attrs) {
+        this(context, attrs, 0);
+    }
+
+    public SnrHistogramView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
+        super(context, attrs, defStyleAttr);
+        mPaint = new Paint();
+        mTextPaint = new Paint();
+
+        mPaint.setAntiAlias(true);
+        mPaint.setDither(true);
+        int mBgColor = Color.GREEN;
+        mPaint.setColor(mBgColor);
+        mPaint.setStyle(Paint.Style.FILL);
+
+        mTextPaint.setAntiAlias(true);
+        mTextPaint.setDither(true);
+        mTextPaint.setColor(Color.WHITE);
+        mTextPaint.setStyle(Paint.Style.FILL);
+        if(FTUtils.isGT09()){
+            mTextPaint.setTextSize(spToPx(12));
+        }else {
+            mTextPaint.setTextSize(spToPx(24));
+        }
+    }
+
+    @Override
+    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
+        super.onMeasure(widthMeasureSpec, heightMeasureSpec);
+
+
+        int widthSize = MeasureSpec.getSize(widthMeasureSpec);
+        int widthMode = MeasureSpec.getMode(widthMeasureSpec);
+        int heightSize = MeasureSpec.getSize(heightMeasureSpec);
+        int heightMode = MeasureSpec.getMode(heightMeasureSpec);
+
+
+        if (widthMode == MeasureSpec.AT_MOST
+                || widthMode == MeasureSpec.UNSPECIFIED
+                || heightMeasureSpec == MeasureSpec.AT_MOST
+                || heightMeasureSpec == MeasureSpec.UNSPECIFIED) {
+            //宽度高度至少有一个确定的值,不能同时为wrap_content
+            return;
+        } else { //至少有一个为确定值,要获取其中的最小值
+            if (widthMode == MeasureSpec.EXACTLY) {
+                mWidth = widthSize;
+            }
+
+            if (heightMode == MeasureSpec.EXACTLY) {
+                mHeight = heightSize;
+            }
+        }
+    }
+
+
+    @Override
+    protected void onDraw(Canvas canvas) {
+        super.onDraw(canvas);
+
+        float[] snrNmber = measureTextWidth(mSnrNmber, mTextPaint);
+        float[] snrValue = measureTextWidth(mSnrValue, mTextPaint);
+
+        float hv = getHistogramHeight(snrValue[1], snrNmber[1], mBL);
+
+        canvas.drawText(mSnrNmber, (mWidth - snrNmber[0]) / 2, mHeight, mTextPaint);
+        canvas.drawText(mSnrValue, (mWidth - snrValue[0]) / 2, mHeight - snrNmber[1] - hv, mTextPaint);
+
+        canvas.drawRect(0, mHeight - (hv + snrNmber[1] - 2), mWidth, mHeight - snrNmber[1], mPaint);
+    }
+
+    private float getHistogramHeight(float vh, float nh, float bl) {
+        return (mHeight - vh - nh) * bl;
+    }
+
+    private float[] measureTextWidth(String mText, Paint textPaint) {
+        Paint.FontMetrics fontMetrics = textPaint.getFontMetrics();
+        float height1 = fontMetrics.bottom - fontMetrics.top;
+        float strWidth = textPaint.measureText(mText);
+        return new float[]{strWidth, height1};
+    }
+
+    private float spToPx(float sp) {
+        return TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, sp, getResources().getDisplayMetrics());
+    }
+
+    public void updateValue(float value,int number,int bgColor){
+        mPaint.setColor(bgColor);
+        mSnrNmber = String.valueOf(number);
+        mSnrValue = String.valueOf((int)value);
+        mBL=value*0.025F;
+
+        invalidate();
+    }
+}
index 4a725b8..2cabb9e 100644 (file)
-package mobile.miki;\r
-\r
-import android.content.Context;\r
-import android.content.Intent;\r
-import android.graphics.Bitmap;\r
-import android.graphics.Canvas;\r
-import android.graphics.Color;\r
-import android.graphics.Paint;\r
-import android.graphics.Paint.Style;\r
-import android.os.Bundle;\r
-import android.preference.PreferenceManager;\r
-import android.util.Log;\r
-import android.view.Display;\r
-import android.view.MotionEvent;\r
-import android.view.View;\r
-import android.view.Window;\r
-import android.view.WindowManager;\r
-import android.widget.Toast;\r
-\r
-import java.util.ArrayList;\r
-import java.util.Iterator;\r
-\r
-import mobile.miki.lcd.LcdActivity;\r
-import mobile.miki.mainui.TestMainActivity;\r
-import mobile.miki.mainui.TestMainList;\r
-import mobile.miki.util.Config;\r
-import mobile.miki.util.FTUtils;\r
-\r
-//import sim.android.mtkcit.TestActivity;\r
-//import sim.android.mtkcit.cittools.CITTools;\r
-\r
-\r
-public class TouchTest extends BaseActivity {\r
-       private static final String TAG = "TouchpanelTest";\r
-       private static final boolean mDebug = false;\r
-       private TPTestView tpView;\r
-       private ArrayList<Rect> rectList;\r
-       private static  int numX = 4;\r
-       private static  int numY = 7;\r
-       private int mDisplayWidth = 320;\r
-       private int mDisplayHeight = 320;\r
-       private int absX;\r
-       private int absY;\r
-       boolean running;\r
-\r
-       @Override\r
-       public void onCreate(Bundle savedInstanceState) {\r
-               super.onCreate(savedInstanceState);\r
-               MyApplication.getInstance().addActivity(this);\r
-               if (mDebug)\r
-                       Log.v(TAG, "start TouchpanelTest");\r
-               getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);\r
-               requestWindowFeature(Window.FEATURE_NO_TITLE);\r
-               // 发送广播给systemUI全屏显示\r
-               Intent systemuiIntent = new Intent();\r
-               systemuiIntent.setAction("mobile.miki.touchscreen.TouchScreen_Activity");\r
-               systemuiIntent.putExtra("close", true);\r
-               sendBroadcast(systemuiIntent);\r
-               // end\r
-               initRec();\r
-               Toast.makeText(this, /*"请进行触摸屏测试"*/this.getResources().getString(R.string.touchtest_toast), Toast.LENGTH_LONG).show();\r
-               tpView = new TPTestView(this);\r
-               setContentView(tpView);\r
-               Intent intent = getIntent();\r
-               running = false;\r
-               if (intent != null) {\r
-                       running = intent.getBooleanExtra("running", false);\r
-               }\r
-\r
-       }\r
-\r
-       private void initRec() {\r
-\r
-               Display myDisplay = getWindowManager().getDefaultDisplay();\r
-\r
-\r
-               if (FTUtils.isA9()){\r
-                       mDisplayHeight = 170;\r
-                       mDisplayWidth = 170;\r
-               }else if(FTUtils.isV20()) {\r
-                       mDisplayHeight = 280;\r
-                       mDisplayWidth = 280;\r
-               }else {\r
-                       mDisplayHeight = myDisplay.getHeight();\r
-                       mDisplayWidth = myDisplay.getWidth();\r
-               }\r
-\r
-               mDisplayHeight = mDisplayHeight;\r
-               \r
-\r
-               absY = mDisplayHeight / numY;\r
-\r
-               // mDisplayWidth = 859;\r
-               \r
-//             if(myDisplay.getWidth()==730){\r
-//                     mDisplayWidth = 855;\r
-//             }else{\r
-//                     mDisplayWidth = 1280;\r
-//             }\r
-               \r
-               \r
-               absX = mDisplayWidth / numX;\r
-               rectList = new ArrayList<TouchTest.Rect>(numX * numY);\r
-               for (int i = 0; i < numX; i++) {\r
-                       for (int j = 0; j < numY; j += (numY - 1) / 2) {\r
-                               Rect r = new Rect(i * absX, j * absY, absX, absY);\r
-\r
-                               rectList.add(r);\r
-                       }\r
-               }\r
-\r
-               for (int i = 0; i < numX; i += (numX - 1) / 2) {\r
-                       for (int j = 1; j < numY - 1; j++) {\r
-                               if (j == (numY - 1) / 2)\r
-                                       continue;\r
-\r
-                               Rect r = new Rect(i * absX, j * absY, absX, absY);\r
-\r
-                               rectList.add(r);\r
-                       }\r
-               }\r
-\r
-               \r
-//             for (int i = 0; i < 2; i++) {\r
-//                     for (int j = 0; j < 2; j++) {\r
-//                             Rect r = new Rect(absX + i * absX * (numX - 1) / 2, absY + j * absY * (numY - 1) / 2,\r
-//                                             (numX - 3) / 2 * absX, (numY - 3) / 2 * absY);\r
-//\r
-//                             rectList.add(r);\r
-//\r
-//                     }\r
-//             }\r
-       }\r
-\r
-       private void doAfterTest() {\r
-               // Bundle b = new Bundle();\r
-               // Intent intent = new Intent();\r
-               // b.putInt("test_result", 1);\r
-               //\r
-               // intent.putExtras(b);\r
-               // setResult(RESULT_OK, intent);\r
-\r
-//             // 发送广播给systemUI显示bar\r
-//             Intent systemuiIntent = new Intent();\r
-//             systemuiIntent.setAction("mobile.miki.touchscreen.TouchTest");\r
-//             systemuiIntent.putExtra("open", true);\r
-//             sendBroadcast(systemuiIntent);\r
-\r
-               Intent intent2 =  Config.getNextTestIntent(this,this.getClass());//new Intent(this, LcdActivity.class);\r
-               intent2.putExtra("running", true);\r
-               Intent intent1 = new Intent(this, TestMainActivity.class);\r
-\r
-               if (!running) {\r
-                       startActivity(intent1);\r
-               } else {\r
-                       startActivity(intent2);\r
-               }\r
-               PreferenceManager.getDefaultSharedPreferences(getApplicationContext()).edit().putString("touch", "true")\r
-                               .commit();\r
-\r
-               finish();\r
-\r
-       }\r
-\r
-       private class Rect {\r
-               int x;\r
-               int y;\r
-               int dx;\r
-               int dy;\r
-\r
-               Rect(int x, int y, int dx, int dy) {\r
-                       this.x = x;\r
-                       this.y = y;\r
-                       this.dx = dx;\r
-                       this.dy = dy;\r
-               }\r
-\r
-               public boolean isInRect(int x, int y) {\r
-                       if (x >= this.x && x <= this.x + this.dx && y >= this.y && y <= this.y + this.dy) {\r
-                               return true;\r
-                       } else {\r
-                               return false;\r
-                       }\r
-               }\r
-       }\r
-\r
-       private class TPTestView extends View {\r
-               private Bitmap bitmap;\r
-               private Canvas canvas;\r
-               private Paint paint;\r
-               private Rect tempRect;\r
-\r
-               public TPTestView(Context context) {\r
-                       super(context);\r
-                       paint = new Paint(Paint.DITHER_FLAG);\r
-                       bitmap = Bitmap.createBitmap(mDisplayWidth, mDisplayHeight, Bitmap.Config.ARGB_8888);\r
-                       canvas = new Canvas();\r
-                       canvas.setBitmap(bitmap);\r
-\r
-                       paint.setStyle(Style.FILL);\r
-                       paint.setStrokeWidth(5);\r
-                       paint.setColor(Color.WHITE);\r
-                       paint.setAntiAlias(true);\r
-\r
-                       Iterator<Rect> iterator = rectList.iterator();\r
-                       while (iterator.hasNext()) {\r
-                               Rect rect = iterator.next();\r
-                               canvas.drawRect(rect.x, rect.y, rect.x + rect.dx - 1, rect.y + rect.dy - 1, paint);\r
-                       }\r
-                       invalidate();\r
-\r
-                       paint.setColor(Color.GREEN);\r
-\r
-               }\r
-\r
-               protected void onDraw(Canvas canvas) {\r
-                       canvas.drawBitmap(bitmap, 0, 0, null);\r
-               }\r
-\r
-               public boolean onTouchEvent(MotionEvent event) {\r
-                       int action = event.getAction();\r
-                       float x = event.getX();\r
-                       float y = event.getY();\r
-                       if (mDebug)\r
-                               Log.v(TAG, "onTouchEvent" + " x=" + x + " y=" + y);\r
-\r
-                       if (action == MotionEvent.ACTION_DOWN || action == MotionEvent.ACTION_MOVE) {\r
-                               if (rectList.size() == 0) {\r
-                                       doAfterTest();\r
-                               }\r
-                               boolean bNeedFindRect = false;\r
-                               if (tempRect == null) {\r
-                                       bNeedFindRect = true;\r
-                               } else {\r
-                                       if (!tempRect.isInRect((int) x, (int) y)) {\r
-                                               bNeedFindRect = true;\r
-                                       } else {\r
-                                               bNeedFindRect = false;\r
-                                       }\r
-\r
-                               }\r
-                               if (mDebug)\r
-                                       Log.v(TAG, "onTouchEvent" + " bNeedFindRect=" + bNeedFindRect);\r
-                               if (bNeedFindRect) {\r
-                                       Iterator<Rect> iterator = rectList.iterator();\r
-                                       while (iterator.hasNext()) {\r
-                                               Rect rect = iterator.next();\r
-                                               if (rect.isInRect((int) x, (int) y)) {\r
-                                                       tempRect = rect;\r
-                                                       canvas.drawRect(rect.x, rect.y, rect.x + rect.dx, rect.y + rect.dy, paint);\r
-                                                       invalidate();\r
-                                                       rectList.remove(rect);\r
-                                                       break;\r
-                                               }\r
-                                       }\r
-                               }\r
-                       }\r
-                       return true;\r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void onBackPressed() {\r
-               // super.onBackPressed();\r
-               PreferenceManager.getDefaultSharedPreferences(getApplicationContext()).edit().putString("touch", "false")\r
-                               .commit();\r
-               if (running) {\r
-                       Intent intent = new Intent(this, TestMainList.class);\r
-                       startActivity(intent);\r
-                       finish();\r
-               //      doAfterTest();\r
-               } else {\r
-                       finish();\r
-               }\r
-\r
-       }\r
-\r
-}\r
+package mobile.miki;
+
+import android.content.Context;
+import android.content.Intent;
+import android.graphics.Bitmap;
+import android.graphics.Canvas;
+import android.graphics.Color;
+import android.graphics.Paint;
+import android.graphics.Paint.Style;
+import android.os.Bundle;
+import android.preference.PreferenceManager;
+import android.util.Log;
+import android.view.Display;
+import android.view.MotionEvent;
+import android.view.View;
+import android.view.Window;
+import android.view.WindowManager;
+import android.widget.Toast;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+
+import mobile.miki.lcd.LcdActivity;
+import mobile.miki.mainui.TestMainActivity;
+import mobile.miki.mainui.TestMainList;
+import mobile.miki.util.Config;
+import mobile.miki.util.FTUtils;
+
+//import sim.android.mtkcit.TestActivity;
+//import sim.android.mtkcit.cittools.CITTools;
+
+
+public class TouchTest extends BaseActivity {
+       private static final String TAG = "TouchpanelTest";
+       private static final boolean mDebug = false;
+       private TPTestView tpView;
+       private ArrayList<Rect> rectList;
+       private static  int numX = 4;
+       private static  int numY = 7;
+       private int mDisplayWidth = 320;
+       private int mDisplayHeight = 320;
+       private int absX;
+       private int absY;
+       boolean running;
+
+       @Override
+       public void onCreate(Bundle savedInstanceState) {
+               super.onCreate(savedInstanceState);
+               MyApplication.getInstance().addActivity(this);
+               if (mDebug)
+                       Log.v(TAG, "start TouchpanelTest");
+               getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
+               requestWindowFeature(Window.FEATURE_NO_TITLE);
+               // 发送广播给systemUI全屏显示
+               Intent systemuiIntent = new Intent();
+               systemuiIntent.setAction("mobile.miki.touchscreen.TouchScreen_Activity");
+               systemuiIntent.putExtra("close", true);
+               sendBroadcast(systemuiIntent);
+               // end
+               initRec();
+               Toast.makeText(this, /*"请进行触摸屏测试"*/this.getResources().getString(R.string.touchtest_toast), Toast.LENGTH_LONG).show();
+               tpView = new TPTestView(this);
+               setContentView(tpView);
+               Intent intent = getIntent();
+               running = false;
+               if (intent != null) {
+                       running = intent.getBooleanExtra("running", false);
+               }
+
+       }
+
+       private void initRec() {
+
+               Display myDisplay = getWindowManager().getDefaultDisplay();
+
+
+               if (FTUtils.isA9()){
+                       mDisplayHeight = 170;
+                       mDisplayWidth = 170;
+               }else if(FTUtils.isV20()|| FTUtils.isGT09()) {
+                       mDisplayHeight = 280;
+                       mDisplayWidth = 280;
+               }else {
+                       mDisplayHeight = myDisplay.getHeight();
+                       mDisplayWidth = myDisplay.getWidth();
+               }
+
+               mDisplayHeight = mDisplayHeight;
+               
+
+               absY = mDisplayHeight / numY;
+
+               // mDisplayWidth = 859;
+               
+//             if(myDisplay.getWidth()==730){
+//                     mDisplayWidth = 855;
+//             }else{
+//                     mDisplayWidth = 1280;
+//             }
+               
+               
+               absX = mDisplayWidth / numX;
+               rectList = new ArrayList<TouchTest.Rect>(numX * numY);
+               for (int i = 0; i < numX; i++) {
+                       for (int j = 0; j < numY; j += (numY - 1) / 2) {
+                               Rect r = new Rect(i * absX, j * absY, absX, absY);
+
+                               rectList.add(r);
+                       }
+               }
+
+               for (int i = 0; i < numX; i += (numX - 1) / 2) {
+                       for (int j = 1; j < numY - 1; j++) {
+                               if (j == (numY - 1) / 2)
+                                       continue;
+
+                               Rect r = new Rect(i * absX, j * absY, absX, absY);
+
+                               rectList.add(r);
+                       }
+               }
+
+               
+//             for (int i = 0; i < 2; i++) {
+//                     for (int j = 0; j < 2; j++) {
+//                             Rect r = new Rect(absX + i * absX * (numX - 1) / 2, absY + j * absY * (numY - 1) / 2,
+//                                             (numX - 3) / 2 * absX, (numY - 3) / 2 * absY);
+//
+//                             rectList.add(r);
+//
+//                     }
+//             }
+       }
+
+       private void doAfterTest() {
+               // Bundle b = new Bundle();
+               // Intent intent = new Intent();
+               // b.putInt("test_result", 1);
+               //
+               // intent.putExtras(b);
+               // setResult(RESULT_OK, intent);
+
+//             // 发送广播给systemUI显示bar
+//             Intent systemuiIntent = new Intent();
+//             systemuiIntent.setAction("mobile.miki.touchscreen.TouchTest");
+//             systemuiIntent.putExtra("open", true);
+//             sendBroadcast(systemuiIntent);
+
+               Intent intent2 =  Config.getNextTestIntent(this,this.getClass());//new Intent(this, LcdActivity.class);
+               intent2.putExtra("running", true);
+               Intent intent1 = new Intent(this, TestMainActivity.class);
+
+               if (!running) {
+                       startActivity(intent1);
+               } else {
+                       startActivity(intent2);
+               }
+               PreferenceManager.getDefaultSharedPreferences(getApplicationContext()).edit().putString("touch", "true")
+                               .commit();
+
+               finish();
+
+       }
+
+       private class Rect {
+               int x;
+               int y;
+               int dx;
+               int dy;
+
+               Rect(int x, int y, int dx, int dy) {
+                       this.x = x;
+                       this.y = y;
+                       this.dx = dx;
+                       this.dy = dy;
+               }
+
+               public boolean isInRect(int x, int y) {
+                       if (x >= this.x && x <= this.x + this.dx && y >= this.y && y <= this.y + this.dy) {
+                               return true;
+                       } else {
+                               return false;
+                       }
+               }
+       }
+
+       private class TPTestView extends View {
+               private Bitmap bitmap;
+               private Canvas canvas;
+               private Paint paint;
+               private Rect tempRect;
+
+               public TPTestView(Context context) {
+                       super(context);
+                       paint = new Paint(Paint.DITHER_FLAG);
+                       bitmap = Bitmap.createBitmap(mDisplayWidth, mDisplayHeight, Bitmap.Config.ARGB_8888);
+                       canvas = new Canvas();
+                       canvas.setBitmap(bitmap);
+
+                       paint.setStyle(Style.FILL);
+                       paint.setStrokeWidth(5);
+                       paint.setColor(Color.WHITE);
+                       paint.setAntiAlias(true);
+
+                       Iterator<Rect> iterator = rectList.iterator();
+                       while (iterator.hasNext()) {
+                               Rect rect = iterator.next();
+                               canvas.drawRect(rect.x, rect.y, rect.x + rect.dx - 1, rect.y + rect.dy - 1, paint);
+                       }
+                       invalidate();
+
+                       paint.setColor(Color.GREEN);
+
+               }
+
+               protected void onDraw(Canvas canvas) {
+                       canvas.drawBitmap(bitmap, 0, 0, null);
+               }
+
+               public boolean onTouchEvent(MotionEvent event) {
+                       int action = event.getAction();
+                       float x = event.getX();
+                       float y = event.getY();
+                       if (mDebug)
+                               Log.v(TAG, "onTouchEvent" + " x=" + x + " y=" + y);
+
+                       if (action == MotionEvent.ACTION_DOWN || action == MotionEvent.ACTION_MOVE) {
+                               if (rectList.size() == 0) {
+                                       doAfterTest();
+                               }
+                               boolean bNeedFindRect = false;
+                               if (tempRect == null) {
+                                       bNeedFindRect = true;
+                               } else {
+                                       if (!tempRect.isInRect((int) x, (int) y)) {
+                                               bNeedFindRect = true;
+                                       } else {
+                                               bNeedFindRect = false;
+                                       }
+
+                               }
+                               if (mDebug)
+                                       Log.v(TAG, "onTouchEvent" + " bNeedFindRect=" + bNeedFindRect);
+                               if (bNeedFindRect) {
+                                       Iterator<Rect> iterator = rectList.iterator();
+                                       while (iterator.hasNext()) {
+                                               Rect rect = iterator.next();
+                                               if (rect.isInRect((int) x, (int) y)) {
+                                                       tempRect = rect;
+                                                       canvas.drawRect(rect.x, rect.y, rect.x + rect.dx, rect.y + rect.dy, paint);
+                                                       invalidate();
+                                                       rectList.remove(rect);
+                                                       break;
+                                               }
+                                       }
+                               }
+                       }
+                       return true;
+               }
+       }
+
+       @Override
+       public void onBackPressed() {
+               // super.onBackPressed();
+               PreferenceManager.getDefaultSharedPreferences(getApplicationContext()).edit().putString("touch", "false")
+                               .commit();
+               if (running) {
+                       Intent intent = new Intent(this, TestMainList.class);
+                       startActivity(intent);
+                       finish();
+               //      doAfterTest();
+               } else {
+                       finish();
+               }
+
+       }
+
+}
index a08cd8d..f4d3bba 100644 (file)
-/**\r
- * Generated by smali2java 1.0.0.558\r
- * Copyright (C) 2013 Hensence.com\r
- */\r
-\r
-package mobile.miki;\r
-\r
-import android.content.BroadcastReceiver;\r
-import android.content.Context;\r
-import android.content.Intent;\r
-import android.content.IntentFilter;\r
-import android.os.Build;\r
-import android.os.Bundle;\r
-import android.os.SystemProperties;\r
-import android.preference.PreferenceManager;\r
-import android.telephony.TelephonyManager;\r
-import android.util.DisplayMetrics;\r
-import android.util.Log;\r
-import android.view.View;\r
-import android.widget.LinearLayout;\r
-import android.widget.TextView;\r
-\r
-import mobile.miki.mainui.ButtonViewTwo;\r
-import mobile.miki.mainui.TestMainActivity;\r
-import mobile.miki.mainui.TestMainList;\r
-import mobile.miki.util.Config;\r
-import mobile.miki.util.FTUtils;\r
-import mobile.miki.util.IATUtils;\r
-\r
-public class VersionActivity extends BaseActivity implements android.view.View.OnClickListener {\r
-    private static final String TAG = "VersionActivity";\r
-    private ButtonViewTwo buttonView;\r
-    boolean running;\r
-    boolean pcbatest;\r
-    TextView rfParametersValue; //校准状态\r
-    String imeiValue = "";\r
-    String barCode = "";\r
-    LinearLayout ll_imei2;\r
-    private TextView simidParametersValue, cidParameters, cidParametersValue;\r
-\r
-    protected void onCreate(Bundle savedInstanceState) {\r
-        super.onCreate(savedInstanceState);\r
-        MyApplication.getInstance().addActivity(this);\r
-        setContentView(R.layout.version_layout);\r
-        Intent intent = getIntent();\r
-        running = false;\r
-        pcbatest = false;\r
-        if (intent != null) {\r
-            running = intent.getBooleanExtra("running", false);\r
-            pcbatest = intent.getBooleanExtra("pcbatest",false);\r
-        }\r
-\r
-        rfParametersValue = (TextView) findViewById(R.id.rfParametersValue);\r
-        ll_imei2 = ((LinearLayout) findViewById(R.id.ll_imei2));\r
-        ll_imei2.setVisibility(View.GONE);\r
-        //版本号\r
-        ((TextView) findViewById(R.id.tvBuildNumberValue)).setText(Build.DISPLAY);\r
-        //SIM卡 ICCID\r
-        simidParametersValue = (TextView) findViewById(R.id.SimidParametersValue);\r
-        setICCID();\r
-        setImei();\r
-\r
-        cidParameters = (TextView)findViewById(R.id.cidParameters);\r
-        cidParametersValue = (TextView) findViewById(R.id.cidParametersValue);\r
-        barCode = SystemProperties.get("gsm.serial", "");\r
-        Log.i(TAG, "barCode " + barCode);\r
-        //写入cid号\r
-        String cidValue = "";\r
-        Log.i(TAG, "ro.product.brand" + SystemProperties.get("ro.product.brand",""));\r
-        if("sprd".equalsIgnoreCase(SystemProperties.get("ro.product.brand",""))){\r
-            cidValue = FTUtils.GetCidFromSystem();\r
-        }else{\r
-            cidValue = getSerialNumber(barCode);\r
-        }\r
-        cidParameters.setText(getResources().getString(R.string.cid));\r
-        // 校准\r
-        setRF();\r
-\r
-        // 糖果cid地址指向serialno位置\r
-        if (FTUtils.isSugar()) {\r
-            ((TextView) findViewById(R.id.barcode)).setText(barCode);\r
-            cidParametersValue.setText(Build.SERIAL);\r
-            ((TextView) findViewById(R.id.wifi_mac_address)).setText(FTUtils.getWifiMacAddress());\r
-            ((TextView) findViewById(R.id.bluethooth_mac_address)).setText(FTUtils.getBtAddressViaReflection());\r
-        } else {\r
-            cidParametersValue.setText(cidValue);\r
-            ((LinearLayout) findViewById(R.id.ll_wifi_mac_address)).setVisibility(View.GONE);\r
-            ((LinearLayout) findViewById(R.id.ll_bluethooth_mac_address)).setVisibility(View.GONE);\r
-            ((LinearLayout) findViewById(R.id.ll_barcode)).setVisibility(View.GONE);\r
-        }\r
-\r
-        // 展讯获取校准标准\r
-        if (FTUtils.isLieBao() || SystemProperties.get("ro.product.brand", "").equalsIgnoreCase("SPRD")) {\r
-            getZhanXunRf();\r
-            String zhanxunCid = FTUtils.GetCidFromSystem();\r
-            cidParameters.setVisibility(View.GONE);\r
-            cidParametersValue.setText(zhanxunCid);\r
-        }\r
-        // end\r
-        getDisplayMetrics();\r
-\r
-        buttonView = (ButtonViewTwo) findViewById(R.id.btn_set);\r
-        buttonView.btn_left.setOnClickListener(this);\r
-        buttonView.btn_right.setOnClickListener(this);\r
-        buttonView.btn_left.setClickable(false);\r
-\r
-        registerBroadCast();\r
-    }\r
-\r
-    private void setImei() {\r
-        // imei\r
-        TelephonyManager telephonyManager = (TelephonyManager) this.getSystemService(Context.TELEPHONY_SERVICE);\r
-        if (Build.VERSION.SDK_INT < 26) {\r
-            imeiValue = telephonyManager.getDeviceId();\r
-        } else {\r
-            imeiValue = FTUtils.getImei(this);\r
-        }\r
-        ((TextView) findViewById(R.id.tv_imei)).setText(imeiValue + "");\r
-\r
-        // imei2\r
-        String imei2 = SystemProperties.get("gsm.mtk.imei2", "");\r
-        //酷达需要imei2\r
-        String android_model = Build.MODEL;\r
-        if (android_model.contains("CMCC-CW1A")) {\r
-            if (imei2 != null) {\r
-                ll_imei2.setVisibility(View.VISIBLE);\r
-                ((TextView) findViewById(R.id.imeiParametersValue)).setText(imei2);\r
-            }\r
-        }\r
-    }\r
-\r
-\r
-    private void setRF() {\r
-        if (barCode.length() == 0 || barCode == null) {//值为空,未校准\r
-            rfParametersValue.setText(R.string.no);\r
-            PreferenceManager.getDefaultSharedPreferences(getApplicationContext()).edit().putString("rf", "false")\r
-                    .commit();\r
-//             } else if (strVal.length()>=62 && "10".equals(strVal.substring(60, 62))) {//值不为空且后面等于10,校准\r
-        } else if (barCode.length() >= 62 && barCode.substring(barCode.length() - 10, barCode.length()).contains("10")) {\r
-            rfParametersValue.setText(getResources().getString(R.string.yes));\r
-            PreferenceManager.getDefaultSharedPreferences(getApplicationContext()).edit().putString("rf", "true")\r
-                    .commit();\r
-        } else {//值不为空,后面不等于10,未校准\r
-            rfParametersValue.setText(getResources().getString(R.string._fail));\r
-            PreferenceManager.getDefaultSharedPreferences(getApplicationContext()).edit().putString("rf", "false")\r
-                    .commit();\r
-        }\r
-    }\r
-\r
-    private void setICCID() {\r
-        if ("".equals(getSimId()) || getSimId() == null) {\r
-            simidParametersValue.setText("null");\r
-        } else {\r
-            simidParametersValue.setText(getSimId());\r
-        }\r
-    }\r
-\r
-    //获取屏幕分辨率\r
-    private void getDisplayMetrics() {\r
-        DisplayMetrics dm = new DisplayMetrics();\r
-        this.getWindowManager().getDefaultDisplay().getMetrics(dm);\r
-        int screenWidth = dm.widthPixels;\r
-        int screenHeight = dm.heightPixels;\r
-        ((TextView) findViewById(R.id.screenResolutionParametersValue)).setText(screenWidth + "*" + screenHeight);\r
-    }\r
-\r
-    public static String getSerialNumber(String serial) {\r
-        try {\r
-            if (serial != null) {\r
-                serial = serial.replaceAll("\\s*", "");//去掉空白字符\r
-                if (serial.length() >= 16) {\r
-                    serial = serial.substring(0, 16);\r
-                }\r
-            }\r
-        } catch (Exception e) {\r
-            e.printStackTrace();\r
-        }\r
-        return serial;\r
-    }\r
-\r
-\r
-    public String getSimId() {\r
-        TelephonyManager telephonyManager = (TelephonyManager) this\r
-                .getSystemService(Context.TELEPHONY_SERVICE);\r
-\r
-        String simSerialNumber = telephonyManager.getSimSerialNumber();\r
-\r
-        return simSerialNumber;\r
-    }\r
-\r
-    @Override\r
-    public void onClick(View arg0) {\r
-        Intent intent ;\r
-//        if (pcbatest) {\r
-//            intent = new Intent(this, CameraPreview.class);\r
-//            intent.putExtra("running", true);\r
-//            intent.putExtra("pcbatest", true);\r
-//        }else{\r
-            intent = Config.getNextTestIntent(this,this.getClass());//new Intent(this, TouchTest.class);\r
-            intent.putExtra("running", true);\r
-            intent.putExtra("pcbatest",false);\r
-//        }\r
-\r
-        Intent intent1 = new Intent(this, TestMainActivity.class);\r
-        // TestResult testResult = (TestResult) getApplicationContext();\r
-        switch (arg0.getId()) {\r
-\r
-            case R.id.btn_two_left:\r
-                if (!running) {\r
-                    startActivity(intent1);\r
-                } else {\r
-                    startActivity(intent);\r
-                }\r
-                PreferenceManager.getDefaultSharedPreferences(getApplicationContext()).edit().putString("version", "true")\r
-                        .commit();\r
-                finish();\r
-                break;\r
-            case R.id.btn_two_right:\r
-                if (!running) {\r
-                    startActivity(intent1);\r
-                } else {\r
-                    startActivity(intent);\r
-                }\r
-                PreferenceManager.getDefaultSharedPreferences(getApplicationContext()).edit().putString("version", "false")\r
-                        .commit();\r
-                finish();\r
-                break;\r
-        }\r
-    }\r
-\r
-    @Override\r
-    protected void onResume() {\r
-        buttonView.setSuccessColor();\r
-        buttonView.btn_left.setClickable(true);\r
-        super.onResume();\r
-    }\r
-\r
-    @Override\r
-    public void onBackPressed() {\r
-        // super.onBackPressed();\r
-        if (running) {\r
-            Intent intent = new Intent(this, TestMainList.class);\r
-            startActivity(intent);\r
-            finish();\r
-        } else {\r
-            finish();\r
-        }\r
-    }\r
-\r
-    private void registerBroadCast() {\r
-        IntentFilter filter1 = new IntentFilter();\r
-        filter1.addAction("android.intent.action.SIM_STATE_CHANGED");\r
-        registerReceiver(getSimState, filter1);\r
-    }\r
-\r
-    // 广播\r
-    private BroadcastReceiver getSimState = new BroadcastReceiver() {\r
-        @Override\r
-        public void onReceive(Context arg0, Intent arg1) {\r
-            String action = arg1.getAction();\r
-            if (action.equals("android.intent.action.SIM_STATE_CHANGED")) {\r
-                if ("".equals(getSimId()) || getSimId() == null) {\r
-                    simidParametersValue.setText("null");\r
-                } else {\r
-                    simidParametersValue.setText(getSimId());\r
-                }\r
-            }\r
-\r
-        }\r
-    };\r
-\r
-    @Override\r
-    protected void onDestroy() {\r
-        super.onDestroy();\r
-        unregisterReceiver(getSimState);\r
-    }\r
-\r
-    private String str = "loading...";\r
-\r
-    private void getZhanXunRf() {\r
-        str = "GSM ";\r
-        str += IATUtils.sendATCmd("AT+SGMR=0,0,3,0", "atchannel0");\r
-        sleep(100);\r
-        str += "WCDMA ";\r
-        str += IATUtils.sendATCmd("AT+SGMR=0,0,3,1", "atchannel0");\r
-        sleep(100);\r
-        str += "LTE ";\r
-        str += IATUtils.sendATCmd("AT+SGMR=1,0,3,3", "atchannel0");\r
-        sleep(100);\r
-        Log.i(TAG, "str " + str);\r
-        boolean rfSuccess = isRfSuccess(str);\r
-        if (rfSuccess) {\r
-            rfParametersValue.setText(getResources().getString(R.string.yes));\r
-        } else {\r
-            rfParametersValue.setText(getResources().getString(R.string._fail));\r
-        }\r
-        Log.i(TAG, "rfSuccess " + rfSuccess);\r
-    }\r
-\r
-    private void sleep(long time) {\r
-        try {\r
-            Thread.sleep(time);\r
-        } catch (InterruptedException e) {\r
-            e.printStackTrace();\r
-        }\r
-    }\r
-\r
-    private boolean isRfSuccess(String str) {\r
-        if (str.contains("BIT2:DCS AGC calibrated Pass") && str.contains("BIT3:DCS APC calibrated Pass")\r
-                && str.contains("BIT4:EGSM AGC calibrated Pass") && str.contains("BIT5:EGSM APC calibrated Pass")\r
-                && str.contains("BIT8:GSM AFC calibrated Pass") && str.contains("BIT20:EDGE Calibration Pass")\r
-                && str.contains("BIT1:TDD LTE AGC Pass") && str.contains("BIT2:TDD LTE APC Pass")) {\r
-            return true;\r
-        }\r
-        return false;\r
-    }\r
-\r
+/**
+ * Generated by smali2java 1.0.0.558
+ * Copyright (C) 2013 Hensence.com
+ */
+
+package mobile.miki;
+
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.os.Build;
+import android.os.Bundle;
+import android.os.SystemProperties;
+import android.preference.PreferenceManager;
+import android.telephony.TelephonyManager;
+import android.util.DisplayMetrics;
+import android.util.Log;
+import android.view.View;
+import android.widget.LinearLayout;
+import android.widget.TextView;
+
+import mobile.miki.mainui.ButtonViewTwo;
+import mobile.miki.mainui.TestMainActivity;
+import mobile.miki.mainui.TestMainList;
+import mobile.miki.util.Config;
+import mobile.miki.util.FTUtils;
+import mobile.miki.util.IATUtils;
+
+public class VersionActivity extends BaseActivity implements android.view.View.OnClickListener {
+    private static final String TAG = "VersionActivity";
+    private ButtonViewTwo buttonView;
+    boolean running;
+    boolean pcbatest;
+    TextView rfParametersValue; //校准状态
+    String imeiValue = "";
+    String barCode = "";
+    LinearLayout ll_imei2;
+    private TextView simidParametersValue, cidParameters, cidParametersValue;
+
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        MyApplication.getInstance().addActivity(this);
+        if(FTUtils.isGT09()){
+            setContentView(R.layout.version_layout_280);
+        }else {
+            setContentView(R.layout.version_layout);
+        }
+        Intent intent = getIntent();
+        running = false;
+        pcbatest = false;
+        if (intent != null) {
+            running = intent.getBooleanExtra("running", false);
+            pcbatest = intent.getBooleanExtra("pcbatest",false);
+        }
+
+        rfParametersValue = (TextView) findViewById(R.id.rfParametersValue);
+        ll_imei2 = ((LinearLayout) findViewById(R.id.ll_imei2));
+        ll_imei2.setVisibility(View.GONE);
+        //版本号
+        ((TextView) findViewById(R.id.tvBuildNumberValue)).setText(Build.DISPLAY);
+        //SIM卡 ICCID
+        simidParametersValue = (TextView) findViewById(R.id.SimidParametersValue);
+        setICCID();
+        setImei();
+
+        cidParameters = (TextView)findViewById(R.id.cidParameters);
+        cidParametersValue = (TextView) findViewById(R.id.cidParametersValue);
+        barCode = SystemProperties.get("gsm.serial", "");
+        Log.i(TAG, "barCode " + barCode);
+        //写入cid号
+        String cidValue = "";
+        Log.i(TAG, "ro.product.brand" + SystemProperties.get("ro.product.brand",""));
+        if("sprd".equalsIgnoreCase(SystemProperties.get("ro.product.brand",""))){
+            cidValue = FTUtils.GetCidFromSystem();
+        }else{
+            cidValue = getSerialNumber(barCode);
+        }
+        cidParameters.setText(getResources().getString(R.string.cid));
+        // 校准
+        setRF();
+
+        // 糖果cid地址指向serialno位置
+        if (FTUtils.isSugar()) {
+            ((TextView) findViewById(R.id.barcode)).setText(barCode);
+            cidParametersValue.setText(Build.SERIAL);
+            ((TextView) findViewById(R.id.wifi_mac_address)).setText(FTUtils.getWifiMacAddress());
+            ((TextView) findViewById(R.id.bluethooth_mac_address)).setText(FTUtils.getBtAddressViaReflection());
+        } else {
+            cidParametersValue.setText(cidValue);
+            ((LinearLayout) findViewById(R.id.ll_wifi_mac_address)).setVisibility(View.GONE);
+            ((LinearLayout) findViewById(R.id.ll_bluethooth_mac_address)).setVisibility(View.GONE);
+            ((LinearLayout) findViewById(R.id.ll_barcode)).setVisibility(View.GONE);
+        }
+
+        // 展讯获取校准标准
+        if (FTUtils.isLieBao() || SystemProperties.get("ro.product.brand", "").equalsIgnoreCase("SPRD")) {
+            getZhanXunRf();
+            String zhanxunCid = FTUtils.GetCidFromSystem();
+            cidParameters.setVisibility(View.GONE);
+            cidParametersValue.setText(zhanxunCid);
+        }
+        // end
+        getDisplayMetrics();
+
+        buttonView = (ButtonViewTwo) findViewById(R.id.btn_set);
+        buttonView.btn_left.setOnClickListener(this);
+        buttonView.btn_right.setOnClickListener(this);
+        buttonView.btn_left.setClickable(false);
+
+        registerBroadCast();
+    }
+
+    private void setImei() {
+        // imei
+        TelephonyManager telephonyManager = (TelephonyManager) this.getSystemService(Context.TELEPHONY_SERVICE);
+        if (Build.VERSION.SDK_INT < 26) {
+            imeiValue = telephonyManager.getDeviceId();
+        } else {
+            imeiValue = FTUtils.getImei(this);
+        }
+        ((TextView) findViewById(R.id.tv_imei)).setText(imeiValue + "");
+
+        // imei2
+        String imei2 = SystemProperties.get("gsm.mtk.imei2", "");
+        //酷达需要imei2
+        String android_model = Build.MODEL;
+        if (android_model.contains("CMCC-CW1A")) {
+            if (imei2 != null) {
+                ll_imei2.setVisibility(View.VISIBLE);
+                ((TextView) findViewById(R.id.imeiParametersValue)).setText(imei2);
+            }
+        }
+    }
+
+
+    private void setRF() {
+        if (barCode.length() == 0 || barCode == null) {//值为空,未校准
+            rfParametersValue.setText(R.string.no);
+            PreferenceManager.getDefaultSharedPreferences(getApplicationContext()).edit().putString("rf", "false")
+                    .commit();
+//             } else if (strVal.length()>=62 && "10".equals(strVal.substring(60, 62))) {//值不为空且后面等于10,校准
+        } else if (barCode.length() >= 62 && barCode.substring(barCode.length() - 10, barCode.length()).contains("10")) {
+            rfParametersValue.setText(getResources().getString(R.string.yes));
+            PreferenceManager.getDefaultSharedPreferences(getApplicationContext()).edit().putString("rf", "true")
+                    .commit();
+        } else {//值不为空,后面不等于10,未校准
+            rfParametersValue.setText(getResources().getString(R.string._fail));
+            PreferenceManager.getDefaultSharedPreferences(getApplicationContext()).edit().putString("rf", "false")
+                    .commit();
+        }
+    }
+
+    private void setICCID() {
+        if ("".equals(getSimId()) || getSimId() == null) {
+            simidParametersValue.setText("null");
+        } else {
+            simidParametersValue.setText(getSimId());
+        }
+    }
+
+    //获取屏幕分辨率
+    private void getDisplayMetrics() {
+        DisplayMetrics dm = new DisplayMetrics();
+        this.getWindowManager().getDefaultDisplay().getMetrics(dm);
+        int screenWidth = dm.widthPixels;
+        int screenHeight = dm.heightPixels;
+        ((TextView) findViewById(R.id.screenResolutionParametersValue)).setText(screenWidth + "*" + screenHeight);
+    }
+
+
+    public static String getSerialNumber(String serial) {
+        try {
+            if (serial != null) {
+                serial = serial.replaceAll("\\s*", "");//去掉空白字符
+                if (serial.length() >= 16) {
+                    serial = serial.substring(0, 16);
+                }
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return serial;
+    }
+
+
+    public String getSimId() {
+        TelephonyManager telephonyManager = (TelephonyManager) this
+                .getSystemService(Context.TELEPHONY_SERVICE);
+
+        String simSerialNumber = telephonyManager.getSimSerialNumber();
+
+        return simSerialNumber;
+    }
+
+    @Override
+    public void onClick(View arg0) {
+        Intent intent ;
+//        if (pcbatest) {
+//            intent = new Intent(this, CameraPreview.class);
+//            intent.putExtra("running", true);
+//            intent.putExtra("pcbatest", true);
+//        }else{
+            intent = Config.getNextTestIntent(this,this.getClass());//new Intent(this, TouchTest.class);
+            intent.putExtra("running", true);
+            intent.putExtra("pcbatest",false);
+//        }
+
+        Intent intent1 = new Intent(this, TestMainActivity.class);
+        // TestResult testResult = (TestResult) getApplicationContext();
+        switch (arg0.getId()) {
+
+            case R.id.btn_two_left:
+                if (!running) {
+                    startActivity(intent1);
+                } else {
+                    startActivity(intent);
+                }
+                PreferenceManager.getDefaultSharedPreferences(getApplicationContext()).edit().putString("version", "true")
+                        .commit();
+                finish();
+                break;
+            case R.id.btn_two_right:
+                if (!running) {
+                    startActivity(intent1);
+                } else {
+                    startActivity(intent);
+                }
+                PreferenceManager.getDefaultSharedPreferences(getApplicationContext()).edit().putString("version", "false")
+                        .commit();
+                finish();
+                break;
+        }
+    }
+
+    @Override
+    protected void onResume() {
+        buttonView.setSuccessColor();
+        buttonView.btn_left.setClickable(true);
+        super.onResume();
+    }
+
+    @Override
+    public void onBackPressed() {
+        // super.onBackPressed();
+        if (running) {
+            Intent intent = new Intent(this, TestMainList.class);
+            startActivity(intent);
+            finish();
+        } else {
+            finish();
+        }
+    }
+
+    private void registerBroadCast() {
+        IntentFilter filter1 = new IntentFilter();
+        filter1.addAction("android.intent.action.SIM_STATE_CHANGED");
+        registerReceiver(getSimState, filter1);
+    }
+
+    // 广播
+    private BroadcastReceiver getSimState = new BroadcastReceiver() {
+        @Override
+        public void onReceive(Context arg0, Intent arg1) {
+            String action = arg1.getAction();
+            if (action.equals("android.intent.action.SIM_STATE_CHANGED")) {
+                if ("".equals(getSimId()) || getSimId() == null) {
+                    simidParametersValue.setText("null");
+                } else {
+                    simidParametersValue.setText(getSimId());
+                }
+            }
+
+        }
+    };
+
+    @Override
+    protected void onDestroy() {
+        super.onDestroy();
+        unregisterReceiver(getSimState);
+    }
+
+    private String str = "loading...";
+
+    private void getZhanXunRf() {
+        str = "GSM ";
+        str += IATUtils.sendATCmd("AT+SGMR=0,0,3,0", "atchannel0");
+        sleep(100);
+        str += "WCDMA ";
+        str += IATUtils.sendATCmd("AT+SGMR=0,0,3,1", "atchannel0");
+        sleep(100);
+        str += "LTE ";
+        str += IATUtils.sendATCmd("AT+SGMR=1,0,3,3", "atchannel0");
+        sleep(100);
+        Log.i(TAG, "str " + str);
+        boolean rfSuccess = isRfSuccess(str);
+        if (rfSuccess) {
+            rfParametersValue.setText(getResources().getString(R.string.yes));
+        } else {
+            rfParametersValue.setText(getResources().getString(R.string._fail));
+        }
+        Log.i(TAG, "rfSuccess " + rfSuccess);
+    }
+
+    private void sleep(long time) {
+        try {
+            Thread.sleep(time);
+        } catch (InterruptedException e) {
+            e.printStackTrace();
+        }
+    }
+
+    private boolean isRfSuccess(String str) {
+        if (str.contains("BIT2:DCS AGC calibrated Pass") && str.contains("BIT3:DCS APC calibrated Pass")
+                && str.contains("BIT4:EGSM AGC calibrated Pass") && str.contains("BIT5:EGSM APC calibrated Pass")
+                && str.contains("BIT8:GSM AFC calibrated Pass") && str.contains("BIT20:EDGE Calibration Pass")
+                && str.contains("BIT1:TDD LTE AGC Pass") && str.contains("BIT2:TDD LTE APC Pass")) {
+            return true;
+        }
+        return false;
+    }
+
 }
\ No newline at end of file
index 7a4379a..366d69d 100644 (file)
@@ -1,57 +1,61 @@
-package mobile.miki.adapter;\r
-\r
-import android.content.Context;\r
-import android.view.LayoutInflater;\r
-import android.view.View;\r
-import android.view.ViewGroup;\r
-import android.widget.BaseAdapter;\r
-import android.widget.TextView;\r
-\r
-import java.util.List;\r
-\r
-import mobile.miki.R;\r
-\r
-public class TestMainListAdapter extends BaseAdapter {\r
-    private Context mContext;\r
-    private List<String> list;\r
-    private String[] stateArr;\r
-\r
-    public TestMainListAdapter(Context context, List<String> list, String[] stateArr) {\r
-        mContext = context;\r
-        this.list = list;\r
-        this.stateArr = stateArr;\r
-    }\r
-\r
-    @Override\r
-    public int getCount() {\r
-        return list.size();\r
-    }\r
-\r
-    @Override\r
-    public Object getItem(int i) {\r
-        return list.get(i);\r
-    }\r
-\r
-    @Override\r
-    public long getItemId(int i) {\r
-        return 0;\r
-    }\r
-    @Override\r
-    public View getView(int position, View convertView, ViewGroup parent) {\r
-        LayoutInflater mInflater = LayoutInflater.from(mContext);\r
-        convertView = mInflater.inflate(R.layout.testmain_adapter, null);\r
-        TextView text = (TextView) convertView.findViewById(R.id.text_item);\r
-        text.setText(list.get(position));\r
-        if (stateArr[position].equals("true")) {\r
-            convertView.setBackgroundResource(R.drawable.button_common_green_bg);\r
-        } else if (stateArr[position].equals("false")) {\r
-            convertView.setBackgroundResource(R.drawable.button_common_red_bg);\r
-        }\r
-        return convertView;\r
-    }\r
-\r
-    private String getString(int stringId) {\r
-        return mContext.getResources().getString(stringId);\r
-    }\r
-\r
-}\r
+package mobile.miki.adapter;
+
+import android.content.Context;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.BaseAdapter;
+import android.widget.TextView;
+
+import java.util.List;
+
+import mobile.miki.R;
+import mobile.miki.util.FTUtils;
+
+public class TestMainListAdapter extends BaseAdapter {
+    private Context mContext;
+    private List<String> list;
+    private String[] stateArr;
+
+    public TestMainListAdapter(Context context, List<String> list, String[] stateArr) {
+        mContext = context;
+        this.list = list;
+        this.stateArr = stateArr;
+    }
+
+    @Override
+    public int getCount() {
+        return list.size();
+    }
+
+    @Override
+    public Object getItem(int i) {
+        return list.get(i);
+    }
+
+    @Override
+    public long getItemId(int i) {
+        return 0;
+    }
+    @Override
+    public View getView(int position, View convertView, ViewGroup parent) {
+        LayoutInflater mInflater = LayoutInflater.from(mContext);
+        if(FTUtils.isGT09())
+            convertView = mInflater.inflate(R.layout.testmain_adapter_280, null);
+        else
+            convertView = mInflater.inflate(R.layout.testmain_adapter, null);
+        TextView text = (TextView) convertView.findViewById(R.id.text_item);
+        text.setText(list.get(position));
+        if (stateArr[position].equals("true")) {
+            convertView.setBackgroundResource(R.drawable.button_common_green_bg);
+        } else if (stateArr[position].equals("false")) {
+            convertView.setBackgroundResource(R.drawable.button_common_red_bg);
+        }
+        return convertView;
+    }
+
+    private String getString(int stringId) {
+        return mContext.getResources().getString(stringId);
+    }
+
+}
index e6deeb2..6bd1202 100644 (file)
@@ -79,7 +79,10 @@ public class TestMainActivity extends BaseActivity implements OnClickListener, A
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         MyApplication.getInstance().addActivity(this);
-        setContentView(R.layout.urovo_layout_table);
+        if(FTUtils.isGT09())
+            setContentView(R.layout.urovo_layout_table_280);
+        else
+            setContentView(R.layout.urovo_layout_table);
         initView();
 
     }
index df0ed4b..2babe78 100644 (file)
@@ -57,6 +57,9 @@ public class TestMainList extends BaseActivity implements OnClickListener {
                // TODO Auto-generated method stub
                super.onCreate(savedInstanceState);
                MyApplication.getInstance().addActivity(this);
+               if(FTUtils.isGT09()){
+                       setContentView(R.layout.dig_layout_testlist_280);
+               }else
                setContentView(R.layout.dig_layout_testlist);
 
                pcbatest = (LinearLayout) findViewById(R.id.pcba_test);
index 030b810..186dada 100644 (file)
-package mobile.miki.util;\r
-\r
-import android.app.Application;\r
-import android.content.Context;\r
-import android.content.Intent;\r
-\r
-import java.util.ArrayList;\r
-import java.util.List;\r
-\r
-import mobile.miki.AntiMonitorActivity;\r
-import mobile.miki.BatteryTestActivity;\r
-import mobile.miki.BlooToothActivity;\r
-import mobile.miki.BrightnessTest;\r
-import mobile.miki.CameraPreview;\r
-import mobile.miki.DSPActivity;\r
-import mobile.miki.DialerTestActivity;\r
-import mobile.miki.GpsTest;\r
-import mobile.miki.GravitySensorActivity;\r
-import mobile.miki.HeartRate;\r
-import mobile.miki.KeysTestActivity;\r
-import mobile.miki.MikeTest;\r
-import mobile.miki.MotorTestActivity;\r
-import mobile.miki.MyApplication;\r
-import mobile.miki.R;\r
-import mobile.miki.RingtoneActivity;\r
-import mobile.miki.SimDetectActivity;\r
-import mobile.miki.SystemMemory;\r
-import mobile.miki.TemperatureActivity;\r
-import mobile.miki.TouchTest;\r
-import mobile.miki.UltravioletMonitorActivity;\r
-import mobile.miki.VersionActivity;\r
-import mobile.miki.WifiTestActiviy;\r
-import mobile.miki.lcd.LcdActivity;\r
-import mobile.miki.mainui.TestMainActivity;\r
-\r
-public class Config {\r
-\r
-    private static List<String> TestItems=null;\r
-    private static List<String> TestResult=null;\r
-    public static void setTestItems(List<String> items){\r
-\r
-        if(items==null){\r
-            Logger.d("setTestItems items is null");\r
-            return ;\r
-        }\r
-        if (TestItems==null){\r
-            TestItems=new ArrayList<String>();\r
-            TestResult=new ArrayList<String>();\r
-        }\r
-        TestItems.clear();\r
-        TestResult.clear();\r
-\r
-        for (int i=0;i< items.size();i++ ) {\r
-            TestItems.add(i,items.get(i));\r
-            TestResult.add(i,"false");\r
-        }\r
-\r
-   }\r
-\r
-   public static int getIndexByTestItemName(String name){\r
-       Logger.d("name "+name+" item "+TestItems);\r
-\r
-//       if (TestItems==null) initConfig(MyApplication.getInstance().getApplicationContext());\r
-        if(name!=null && TestItems!=null) {\r
-            for (int i = 0; i < TestItems.size(); i++) {\r
-                Logger.d("name "+name+" item "+TestItems.get(i)+" "+i);\r
-                if (name.equals(TestItems.get(i))) {\r
-                    return i;\r
-                }\r
-            }\r
-        }\r
-        return -1;\r
-   }\r
-    public static String getNextTestItemName(String testItemmName){\r
-\r
-        int index=-1;\r
-        index=getIndexByTestItemName(testItemmName);\r
-        Logger.d("find "+testItemmName+", index "+index);\r
-        if (TestItems!=null && index >=0&& index+1< TestItems.size()){\r
-            String itemname= TestItems.get(index+1);\r
-            return itemname;\r
-        }else{\r
-            return null;\r
-        }\r
-    }\r
-   public static String getNextTestItemName(int index){\r
-       if (TestItems!=null && index >=0&& index+1< TestItems.size()){\r
-           return TestItems.get(index+1);\r
-       }else{\r
-           return null;\r
-       }\r
-   }\r
-\r
-   public static Intent getNextTestIntent(Context context,Class cls){\r
-        String currentTestItemName=getTestNameByClass(context,cls.getSimpleName());\r
-        Logger.d("currentTestItemName="+currentTestItemName);\r
-        String nextTestItemName=getNextTestItemName(currentTestItemName);\r
-       Logger.d("nextTestItemName="+nextTestItemName);\r
-       return getIntent(context,nextTestItemName);\r
-   }\r
-   public static String getTestNameByClass(Context context,String ClassName){\r
-\r
-        if (context==null || ClassName==null) return null;\r
-        if (ClassName.equals(VersionActivity.class.getSimpleName())) {\r
-            return context.getResources().getString(R.string.version_new);\r
-        }else if (ClassName.equals(TouchTest.class.getSimpleName())){\r
-            return context.getResources().getString(R.string.touch);\r
-        }else if (ClassName.equals(LcdActivity.class.getSimpleName())){\r
-            return context.getResources().getString(R.string.light_new);\r
-        }else if (ClassName.equals(CameraPreview.class.getSimpleName())){\r
-            return context.getResources().getString(R.string.camera);\r
-        }else if (ClassName.equals(WifiTestActiviy.class.getSimpleName())){\r
-            return context.getResources().getString(R.string.wifi);\r
-        }else if (ClassName.equals(GpsTest.class.getSimpleName())){\r
-            return context.getResources().getString(R.string.gps);\r
-        }else if (ClassName.equals(RingtoneActivity.class.getSimpleName())){\r
-            return context.getResources().getString(R.string.speak);\r
-        }else if (ClassName.equals(MikeTest.class.getSimpleName())){\r
-            return context.getResources().getString(R.string.mic_title);\r
-        }else if (ClassName.equals(SimDetectActivity.class.getSimpleName())){\r
-            return context.getResources().getString(R.string.sim_title);\r
-        }else if (ClassName.equals(DialerTestActivity.class.getSimpleName())){\r
-            return context.getResources().getString(R.string.dual_new);\r
-        }else if (ClassName.equals(SystemMemory.class.getSimpleName())){\r
-            return context.getResources().getString(R.string.ramromTest);\r
-        }else if (ClassName.equals(BrightnessTest.class.getSimpleName())){\r
-            return context.getResources().getString(R.string.beiguang_new);\r
-        }else if (ClassName.equals(GravitySensorActivity.class.getSimpleName())){\r
-            return context.getResources().getString(R.string.test_sensor);\r
-        }else if (ClassName.equals(BatteryTestActivity.class.getSimpleName())){\r
-            return context.getResources().getString(R.string.test_battery);\r
-        }else if (ClassName.equals(KeysTestActivity.class.getSimpleName())){\r
-            return context.getResources().getString(R.string.test_keypad);\r
-        }else if (ClassName.equals(BlooToothActivity.class.getSimpleName())){\r
-            return context.getResources().getString(R.string.bt);\r
-        }else if (ClassName.equals(MotorTestActivity.class.getSimpleName())){\r
-            return context.getResources().getString(R.string.shakeTest);\r
-        }else if (ClassName.equals(UltravioletMonitorActivity.class.getSimpleName())){\r
-            return context.getResources().getString(R.string.ultraviolet);\r
-        }else if (ClassName.equals(DSPActivity.class.getSimpleName())){\r
-            return context.getResources().getString(R.string.dsp);\r
-        }else if (ClassName.equals(HeartRate.class.getSimpleName())) {\r
-            return context.getResources().getString(R.string.heartrate);\r
-        }else if (ClassName.equals(AntiMonitorActivity.class.getSimpleName())){\r
-            return context.getResources().getString(R.string.anti_check);\r
-        }else if (ClassName.equals(TemperatureActivity.class.getSimpleName())){\r
-            return context.getResources().getString(R.string.temperature);\r
-        }else {\r
-\r
-            return null;\r
-        }\r
-\r
-   }\r
-    public static Intent getIntent(Context context, String testItemName) {\r
-\r
-        if (context==null || testItemName==null)\r
-            return (new Intent(context, TestMainActivity.class));;\r
-        Intent intent = null;\r
-        if (testItemName.equals(context.getResources().getString(R.string.version_new))) {\r
-            intent = new Intent(context, VersionActivity.class);\r
-        } else if (testItemName.equals(context.getResources().getString(R.string.touch))) {\r
-            intent = new Intent(context, TouchTest.class);\r
-        } else if (testItemName.equals(context.getResources().getString(R.string.light_new))) {\r
-            intent = new Intent(context, LcdActivity.class);\r
-        } else if (testItemName.equals(context.getResources().getString(R.string.camera))) {\r
-            intent = new Intent(context, CameraPreview.class);\r
-        } else if (testItemName.equals(context.getResources().getString(R.string.wifi))) {\r
-            intent = new Intent(context, WifiTestActiviy.class);\r
-        }else if (testItemName.equals(context.getResources().getString(R.string.gps))) {\r
-            intent = new Intent(context, GpsTest.class);\r
-        }else if (testItemName.equals(context.getResources().getString(R.string.speak))) {\r
-            intent = new Intent(context, RingtoneActivity.class);\r
-        }else if (testItemName.equals(context.getResources().getString(R.string.mic_title))) {\r
-            intent = new Intent(context, MikeTest.class);\r
-        }else if (testItemName.equals(context.getResources().getString(R.string.sim_title))) {\r
-            intent = new Intent(context, SimDetectActivity.class);\r
-        }else if (testItemName.equals(context.getResources().getString(R.string.dual_new))) {\r
-            intent = new Intent(context, DialerTestActivity.class);\r
-        }else if (testItemName.equals(context.getResources().getString(R.string.ramromTest))) {\r
-            intent = new Intent(context, SystemMemory.class);\r
-        }else if (testItemName.equals(context.getResources().getString(R.string.beiguang_new))) {\r
-            intent = new Intent(context, BrightnessTest.class);\r
-        }else if (testItemName.equals(context.getResources().getString(R.string.test_sensor))) {\r
-            intent = new Intent(context, GravitySensorActivity.class);\r
-        }else if (testItemName.equals(context.getResources().getString(R.string.test_battery))) {\r
-            intent = new Intent(context, BatteryTestActivity.class);\r
-        }else if (testItemName.equals(context.getResources().getString(R.string.test_keypad))) {\r
-            intent = new Intent(context, KeysTestActivity.class);\r
-        }else if (testItemName.equals(context.getResources().getString(R.string.bt))) {\r
-            intent = new Intent(context, BlooToothActivity.class);\r
-        }else if (testItemName.equals(context.getResources().getString(R.string.shakeTest))) {\r
-            intent = new Intent(context, MotorTestActivity.class);\r
-        }else if (testItemName.equals(context.getResources().getString(R.string.ultraviolet))) {\r
-            intent = new Intent(context, UltravioletMonitorActivity.class);\r
-        }else if (testItemName.equals(context.getResources().getString(R.string.dsp))) {\r
-            intent = new Intent(context, DSPActivity.class);\r
-        }else if (testItemName.equals(context.getResources().getString(R.string.heartrate))) {\r
-            intent = new Intent(context, HeartRate.class);\r
-        }else if (testItemName.equals(context.getResources().getString(R.string.anti_check))) {\r
-            intent = new Intent(context, AntiMonitorActivity.class);\r
-        }else if (testItemName.equals(context.getResources().getString(R.string.temperature))) {\r
-            intent = new Intent(context, TemperatureActivity.class);\r
-        }\r
-\r
-        if (intent != null) {\r
-            intent.putExtra("running", false);\r
-        }else{\r
-            intent = new Intent(context, TestMainActivity.class);\r
-        }\r
-        return intent;\r
-    }\r
-   public static String getItemAt(int i){\r
-       if (TestItems!=null && i >=0&& i< TestItems.size()){\r
-           return TestItems.get(i);\r
-       }else{\r
-           return null;\r
-       }\r
-   }\r
-    public static String getItemResultAt(int i){\r
-        if (TestResult!=null && i >=0&& i< TestResult.size()){\r
-            return TestResult.get(i);\r
-        }else{\r
-            return null;\r
-        }\r
-    }\r
-\r
-    public static boolean setTestResult(int i, boolean pass){\r
-        if (TestResult!=null && i >=0&& i< TestResult.size()){\r
-             TestResult.set(i,String.valueOf(pass));\r
-             return true;\r
-        }\r
-        return false;\r
-    }\r
-\r
-    public static void initConfig(Context context){\r
-        setTestItems(getArray(context));\r
-\r
-    }\r
-\r
-    public static String[] getList(Context context) {\r
-        String[] listTem = {context.getString(R.string.version_new), context.getString(R.string.touch), context.getString(R.string.light_new), context.getString(R.string.camera),\r
-                context.getString(R.string.wifi), context.getString(R.string.gps), context.getString(R.string.speak), context.getString(R.string.mic_title),\r
-                context.getString(R.string.sim_title), context.getString(R.string.dual_new), context.getString(R.string.ramromTest), context.getString(R.string.beiguang_new),\r
-                context.getString(R.string.test_sensor), context.getString(R.string.test_battery)};\r
-        return listTem;\r
-    }\r
-    public static String[] stateArr;\r
-    public static List<String> testResultList;\r
-    public static List<String> getArray(Context context) {\r
-        List<String> list = new ArrayList<String>();\r
-        testResultList = new ArrayList<String>();\r
-        for (int i = 0; i < getList(context).length; i++) {\r
-            list.add(getList(context)[i]);\r
-            testResultList.add(sharedPreferencesArr[i]);\r
-        }\r
-        if (FTUtils.isLieBao()) {\r
-            list.add(context.getString(R.string.test_keypad));\r
-            testResultList.add("keys");\r
-        } else if (FTUtils.isSugar()) {\r
-            list.add(context.getString(R.string.test_keypad));\r
-            list.add(context.getString(R.string.bt));\r
-            list.add(context.getString(R.string.shakeTest));\r
-            list.add(context.getString(R.string.ultraviolet));\r
-\r
-            testResultList.add("keys");\r
-            testResultList.add("bt");\r
-            testResultList.add("vibrator");\r
-            testResultList.add("Ultraviolet");\r
-        } else if (FTUtils.isS06()) {\r
-            // s06 添加dsp测试\r
-            list.add(context.getString(R.string.hall));\r
-            list.add(context.getString(R.string.bt));\r
-            list.add(context.getString(R.string.dsp));\r
-            list.add(context.getString(R.string.heartrate));\r
-\r
-            testResultList.add("keys");\r
-            testResultList.add("bt");\r
-            testResultList.add("dsp");\r
-            testResultList.add("heartrate");\r
-\r
-        } else if (FTUtils.hasHRS_TEMP()){\r
-\r
-            //list.add(context.getString(R.string.test_keypad));\r
-            list.add(context.getString(R.string.heartrate));\r
-            list.add(context.getString(R.string.temperature));\r
-            list.remove(context.getString(R.string.camera));\r
-            list.add(context.getString(R.string.anti_check));\r
-            //testResultList.add("keys");\r
-            testResultList.add("heartrate");\r
-            testResultList.add("temperature");\r
-            testResultList.remove("camera");\r
-            testResultList.add("anti");\r
-        } else if (FTUtils.isQ3FT()){\r
-            list.add(context.getString(R.string.test_keypad));\r
-            list.add(context.getString(R.string.heartrate));\r
-            list.add(context.getString(R.string.temperature));\r
-            list.remove(context.getString(R.string.camera));\r
-            list.add(context.getString(R.string.anti_check));\r
-            testResultList.add("keys");\r
-            testResultList.add("heartrate");\r
-            testResultList.add("temperature");\r
-            testResultList.remove("camera");\r
-            testResultList.add("anti");\r
-        } else if (FTUtils.isQ3F()){\r
-\r
-            list.add(context.getString(R.string.test_keypad));\r
-            list.add(context.getString(R.string.shakeTest));\r
-            list.add(context.getString(R.string.heartrate));\r
-            testResultList.add("keys");\r
-            testResultList.add("vibrator");\r
-            testResultList.add("heartrate");\r
-        }\r
-        stateArr = new String[testResultList.size()];\r
-        return list;\r
-    }\r
-\r
-\r
-    static String[] sharedPreferencesArr = {"version", "touch", "lcd", "camera", "wifi", "gps", "speak", "mic", "sim", "dialer",\r
-            "watchmemory", "light", "Gsensor", "watchbattery"/*, "keys", "bt", "vibrator", "Ultraviolet", "dsp"*/};\r
-}\r
+package mobile.miki.util;
+
+import android.app.Application;
+import android.content.Context;
+import android.content.Intent;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import mobile.miki.AntiMonitorActivity;
+import mobile.miki.BatteryTestActivity;
+import mobile.miki.BlooToothActivity;
+import mobile.miki.BrightnessTest;
+import mobile.miki.CameraPreview;
+import mobile.miki.DSPActivity;
+import mobile.miki.DialerTestActivity;
+import mobile.miki.GpsTest;
+import mobile.miki.GravitySensorActivity;
+import mobile.miki.HeartRate;
+import mobile.miki.KeysTestActivity;
+import mobile.miki.MikeTest;
+import mobile.miki.MotorTestActivity;
+import mobile.miki.MyApplication;
+import mobile.miki.R;
+import mobile.miki.RingtoneActivity;
+import mobile.miki.SimDetectActivity;
+import mobile.miki.SystemMemory;
+import mobile.miki.TemperatureActivity;
+import mobile.miki.TouchTest;
+import mobile.miki.UltravioletMonitorActivity;
+import mobile.miki.VersionActivity;
+import mobile.miki.WifiTestActiviy;
+import mobile.miki.lcd.LcdActivity;
+import mobile.miki.mainui.TestMainActivity;
+
+public class Config {
+
+    private static List<String> TestItems=null;
+    private static List<String> TestResult=null;
+    public static void setTestItems(List<String> items){
+
+        if(items==null){
+            Logger.d("setTestItems items is null");
+            return ;
+        }
+        if (TestItems==null){
+            TestItems=new ArrayList<String>();
+            TestResult=new ArrayList<String>();
+        }
+        TestItems.clear();
+        TestResult.clear();
+
+        for (int i=0;i< items.size();i++ ) {
+            TestItems.add(i,items.get(i));
+            TestResult.add(i,"false");
+        }
+
+   }
+
+   public static int getIndexByTestItemName(String name){
+       Logger.d("name "+name+" item "+TestItems);
+
+//       if (TestItems==null) initConfig(MyApplication.getInstance().getApplicationContext());
+        if(name!=null && TestItems!=null) {
+            for (int i = 0; i < TestItems.size(); i++) {
+                Logger.d("name "+name+" item "+TestItems.get(i)+" "+i);
+                if (name.equals(TestItems.get(i))) {
+                    return i;
+                }
+            }
+        }
+        return -1;
+   }
+    public static String getNextTestItemName(String testItemmName){
+
+        int index=-1;
+        index=getIndexByTestItemName(testItemmName);
+        Logger.d("find "+testItemmName+", index "+index);
+        if (TestItems!=null && index >=0&& index+1< TestItems.size()){
+            String itemname= TestItems.get(index+1);
+            return itemname;
+        }else{
+            return null;
+        }
+    }
+   public static String getNextTestItemName(int index){
+       if (TestItems!=null && index >=0&& index+1< TestItems.size()){
+           return TestItems.get(index+1);
+       }else{
+           return null;
+       }
+   }
+
+   public static Intent getNextTestIntent(Context context,Class cls){
+        String currentTestItemName=getTestNameByClass(context,cls.getSimpleName());
+        Logger.d("currentTestItemName="+currentTestItemName);
+        String nextTestItemName=getNextTestItemName(currentTestItemName);
+       Logger.d("nextTestItemName="+nextTestItemName);
+       return getIntent(context,nextTestItemName);
+   }
+   public static String getTestNameByClass(Context context,String ClassName){
+
+        if (context==null || ClassName==null) return null;
+        if (ClassName.equals(VersionActivity.class.getSimpleName())) {
+            return context.getResources().getString(R.string.version_new);
+        }else if (ClassName.equals(TouchTest.class.getSimpleName())){
+            return context.getResources().getString(R.string.touch);
+        }else if (ClassName.equals(LcdActivity.class.getSimpleName())){
+            return context.getResources().getString(R.string.light_new);
+        }else if (ClassName.equals(CameraPreview.class.getSimpleName())){
+            return context.getResources().getString(R.string.camera);
+        }else if (ClassName.equals(WifiTestActiviy.class.getSimpleName())){
+            return context.getResources().getString(R.string.wifi);
+        }else if (ClassName.equals(GpsTest.class.getSimpleName())){
+            return context.getResources().getString(R.string.gps);
+        }else if (ClassName.equals(RingtoneActivity.class.getSimpleName())){
+            return context.getResources().getString(R.string.speak);
+        }else if (ClassName.equals(MikeTest.class.getSimpleName())){
+            return context.getResources().getString(R.string.mic_title);
+        }else if (ClassName.equals(SimDetectActivity.class.getSimpleName())){
+            return context.getResources().getString(R.string.sim_title);
+        }else if (ClassName.equals(DialerTestActivity.class.getSimpleName())){
+            return context.getResources().getString(R.string.dual_new);
+        }else if (ClassName.equals(SystemMemory.class.getSimpleName())){
+            return context.getResources().getString(R.string.ramromTest);
+        }else if (ClassName.equals(BrightnessTest.class.getSimpleName())){
+            return context.getResources().getString(R.string.beiguang_new);
+        }else if (ClassName.equals(GravitySensorActivity.class.getSimpleName())){
+            return context.getResources().getString(R.string.test_sensor);
+        }else if (ClassName.equals(BatteryTestActivity.class.getSimpleName())){
+            return context.getResources().getString(R.string.test_battery);
+        }else if (ClassName.equals(KeysTestActivity.class.getSimpleName())){
+            return context.getResources().getString(R.string.test_keypad);
+        }else if (ClassName.equals(BlooToothActivity.class.getSimpleName())){
+            return context.getResources().getString(R.string.bt);
+        }else if (ClassName.equals(MotorTestActivity.class.getSimpleName())){
+            return context.getResources().getString(R.string.shakeTest);
+        }else if (ClassName.equals(UltravioletMonitorActivity.class.getSimpleName())){
+            return context.getResources().getString(R.string.ultraviolet);
+        }else if (ClassName.equals(DSPActivity.class.getSimpleName())){
+            return context.getResources().getString(R.string.dsp);
+        }else if (ClassName.equals(HeartRate.class.getSimpleName())) {
+            return context.getResources().getString(R.string.heartrate);
+        }else if (ClassName.equals(AntiMonitorActivity.class.getSimpleName())){
+            return context.getResources().getString(R.string.anti_check);
+        }else if (ClassName.equals(TemperatureActivity.class.getSimpleName())){
+            return context.getResources().getString(R.string.temperature);
+        }else {
+
+            return null;
+        }
+
+   }
+    public static Intent getIntent(Context context, String testItemName) {
+
+        if (context==null || testItemName==null)
+            return (new Intent(context, TestMainActivity.class));;
+        Intent intent = null;
+        if (testItemName.equals(context.getResources().getString(R.string.version_new))) {
+            intent = new Intent(context, VersionActivity.class);
+        } else if (testItemName.equals(context.getResources().getString(R.string.touch))) {
+            intent = new Intent(context, TouchTest.class);
+        } else if (testItemName.equals(context.getResources().getString(R.string.light_new))) {
+            intent = new Intent(context, LcdActivity.class);
+        } else if (testItemName.equals(context.getResources().getString(R.string.camera))) {
+            intent = new Intent(context, CameraPreview.class);
+        } else if (testItemName.equals(context.getResources().getString(R.string.wifi))) {
+            intent = new Intent(context, WifiTestActiviy.class);
+        }else if (testItemName.equals(context.getResources().getString(R.string.gps))) {
+            intent = new Intent(context, GpsTest.class);
+        }else if (testItemName.equals(context.getResources().getString(R.string.speak))) {
+            intent = new Intent(context, RingtoneActivity.class);
+        }else if (testItemName.equals(context.getResources().getString(R.string.mic_title))) {
+            intent = new Intent(context, MikeTest.class);
+        }else if (testItemName.equals(context.getResources().getString(R.string.sim_title))) {
+            intent = new Intent(context, SimDetectActivity.class);
+        }else if (testItemName.equals(context.getResources().getString(R.string.dual_new))) {
+            intent = new Intent(context, DialerTestActivity.class);
+        }else if (testItemName.equals(context.getResources().getString(R.string.ramromTest))) {
+            intent = new Intent(context, SystemMemory.class);
+        }else if (testItemName.equals(context.getResources().getString(R.string.beiguang_new))) {
+            intent = new Intent(context, BrightnessTest.class);
+        }else if (testItemName.equals(context.getResources().getString(R.string.test_sensor))) {
+            intent = new Intent(context, GravitySensorActivity.class);
+        }else if (testItemName.equals(context.getResources().getString(R.string.test_battery))) {
+            intent = new Intent(context, BatteryTestActivity.class);
+        }else if (testItemName.equals(context.getResources().getString(R.string.test_keypad))) {
+            intent = new Intent(context, KeysTestActivity.class);
+        }else if (testItemName.equals(context.getResources().getString(R.string.bt))) {
+            intent = new Intent(context, BlooToothActivity.class);
+        }else if (testItemName.equals(context.getResources().getString(R.string.shakeTest))) {
+            intent = new Intent(context, MotorTestActivity.class);
+        }else if (testItemName.equals(context.getResources().getString(R.string.ultraviolet))) {
+            intent = new Intent(context, UltravioletMonitorActivity.class);
+        }else if (testItemName.equals(context.getResources().getString(R.string.dsp))) {
+            intent = new Intent(context, DSPActivity.class);
+        }else if (testItemName.equals(context.getResources().getString(R.string.heartrate))) {
+            intent = new Intent(context, HeartRate.class);
+        }else if (testItemName.equals(context.getResources().getString(R.string.anti_check))) {
+            intent = new Intent(context, AntiMonitorActivity.class);
+        }else if (testItemName.equals(context.getResources().getString(R.string.temperature))) {
+            intent = new Intent(context, TemperatureActivity.class);
+        }
+
+        if (intent != null) {
+            intent.putExtra("running", false);
+        }else{
+            intent = new Intent(context, TestMainActivity.class);
+        }
+        return intent;
+    }
+   public static String getItemAt(int i){
+       if (TestItems!=null && i >=0&& i< TestItems.size()){
+           return TestItems.get(i);
+       }else{
+           return null;
+       }
+   }
+    public static String getItemResultAt(int i){
+        if (TestResult!=null && i >=0&& i< TestResult.size()){
+            return TestResult.get(i);
+        }else{
+            return null;
+        }
+    }
+
+    public static boolean setTestResult(int i, boolean pass){
+        if (TestResult!=null && i >=0&& i< TestResult.size()){
+             TestResult.set(i,String.valueOf(pass));
+             return true;
+        }
+        return false;
+    }
+
+    public static void initConfig(Context context){
+        setTestItems(getArray(context));
+
+    }
+
+    public static String[] getList(Context context) {
+        String[] listTem = {context.getString(R.string.version_new), context.getString(R.string.touch), context.getString(R.string.light_new), context.getString(R.string.camera),
+                context.getString(R.string.wifi), context.getString(R.string.gps), context.getString(R.string.speak), context.getString(R.string.mic_title),
+                context.getString(R.string.sim_title), context.getString(R.string.dual_new), context.getString(R.string.ramromTest), context.getString(R.string.beiguang_new),
+                context.getString(R.string.test_sensor), context.getString(R.string.test_battery)};
+        return listTem;
+    }
+    public static String[] stateArr;
+    public static List<String> testResultList;
+    public static List<String> getArray(Context context) {
+        List<String> list = new ArrayList<String>();
+        testResultList = new ArrayList<String>();
+        for (int i = 0; i < getList(context).length; i++) {
+            list.add(getList(context)[i]);
+            testResultList.add(sharedPreferencesArr[i]);
+        }
+        if (FTUtils.isLieBao()) {
+            list.add(context.getString(R.string.test_keypad));
+            testResultList.add("keys");
+        } else if (FTUtils.isSugar()) {
+            list.add(context.getString(R.string.test_keypad));
+            list.add(context.getString(R.string.bt));
+            list.add(context.getString(R.string.shakeTest));
+            list.add(context.getString(R.string.ultraviolet));
+
+            testResultList.add("keys");
+            testResultList.add("bt");
+            testResultList.add("vibrator");
+            testResultList.add("Ultraviolet");
+        } else if (FTUtils.isS06()) {
+            // s06 添加dsp测试
+            list.add(context.getString(R.string.hall));
+            list.add(context.getString(R.string.bt));
+            list.add(context.getString(R.string.dsp));
+            list.add(context.getString(R.string.heartrate));
+
+            testResultList.add("keys");
+            testResultList.add("bt");
+            testResultList.add("dsp");
+            testResultList.add("heartrate");
+
+
+        } else if (FTUtils.isQ3FT()){
+            list.add(context.getString(R.string.test_keypad));
+            list.add(context.getString(R.string.heartrate));
+            list.add(context.getString(R.string.temperature));
+            list.add(context.getString(R.string.shakeTest));
+            list.add(context.getString(R.string.anti_check));
+            testResultList.add("keys");
+            testResultList.add("heartrate");
+            testResultList.add("temperature");
+            testResultList.add("vibrator");
+            testResultList.add("anti");
+        } else if (FTUtils.isQ3F()){
+
+            list.add(context.getString(R.string.test_keypad));
+            list.add(context.getString(R.string.shakeTest));
+            list.add(context.getString(R.string.heartrate));
+            testResultList.add("keys");
+            testResultList.add("vibrator");
+            testResultList.add("heartrate");
+        }else if (FTUtils.isGT09()) {
+            list.add(context.getString(R.string.shakeTest));
+            testResultList.add("vibrator");
+
+            list.remove(context.getString(R.string.sim_title));
+            list.remove(context.getString(R.string.dual_new));
+            testResultList.remove("sim");
+            testResultList.remove("dialer");
+        } else if (FTUtils.hasHRS_TEMP()){
+
+            //list.add(context.getString(R.string.test_keypad));
+            list.remove(context.getString(R.string.camera));
+            list.add(context.getString(R.string.heartrate));
+            list.add(context.getString(R.string.temperature));
+            list.add(context.getString(R.string.anti_check));
+            //testResultList.add("keys");
+            testResultList.remove("camera");
+            testResultList.add("heartrate");
+            testResultList.add("temperature");
+            testResultList.add("anti");
+        }
+        stateArr = new String[testResultList.size()];
+        return list;
+    }
+
+
+    static String[] sharedPreferencesArr = {"version", "touch", "lcd", "camera", "wifi", "gps", "speak", "mic", "sim", "dialer",
+            "watchmemory", "light", "Gsensor", "watchbattery"/*, "keys", "bt", "vibrator", "Ultraviolet", "dsp"*/};
+}
index 21f7cee..052fa2a 100644 (file)
-package mobile.miki.util;\r
-\r
-import android.bluetooth.BluetoothAdapter;\r
-import android.content.Context;\r
-import android.content.SharedPreferences;\r
-import android.os.Build;\r
-import android.os.SystemProperties;\r
-import android.telephony.TelephonyManager;\r
-import android.util.Log;\r
-\r
-import java.io.FileInputStream;\r
-import java.lang.reflect.Method;\r
-import java.net.NetworkInterface;\r
-import java.net.SocketException;\r
-import java.util.Enumeration;\r
-\r
-public class FTUtils {\r
-    public static String getDISPLAY() {\r
-        return Build.DISPLAY.toUpperCase();\r
-    }\r
-\r
-    public static String getMODEL() {\r
-        return Build.MODEL.toUpperCase();\r
-    }\r
-\r
-    /**\r
-     * 展讯猎豹项目\r
-     * @return\r
-     */\r
-    public static boolean isLieBao() {\r
-        return getMODEL().contains("C02A") || getMODEL().contains("S09") || getMODEL().contains("C02");\r
-    }\r
-\r
-    /**\r
-     * sugar\r
-     * @return\r
-     */\r
-    public static boolean isSugar() {\r
-        return getDISPLAY().contains("W501CS") || getMODEL().contains("SUGAR");\r
-    }\r
-\r
-    public static boolean doPCBATest(){\r
-        return false;\r
-    }\r
-    public static void SetPreferences(Context paramContext, int paramInt,\r
-                                      Long time) {\r
-        SharedPreferences sharedPreferences = paramContext.getSharedPreferences("AgingTest", 0);\r
-        String str = paramContext.getResources().getString(paramInt);\r
-        SharedPreferences.Editor localEditor = sharedPreferences.edit();\r
-        localEditor.putLong(str, time);\r
-        localEditor.commit();\r
-    }\r
-\r
-    public static long GetPreferences(Context paramContext, int paramInt) {\r
-        SharedPreferences sharedPreferences = paramContext.getSharedPreferences("AgingTest", 0);\r
-        String str = paramContext.getResources().getString(paramInt);\r
-        long time = sharedPreferences.getLong(str, 0);\r
-        return time;\r
-    }\r
-\r
-    public static void SetAgeingWorktimePreferences(Context paramContext, int paramInt,\r
-                                      int time) {\r
-        SharedPreferences sharedPreferences = paramContext.getSharedPreferences("AgingTest_workTime", 0);\r
-        String str = paramContext.getResources().getString(paramInt);\r
-        SharedPreferences.Editor localEditor = sharedPreferences.edit();\r
-        localEditor.putInt(str, time);\r
-        localEditor.commit();\r
-    }\r
-\r
-    public static int GetAgeingWorktimePreferences(Context paramContext, int paramInt) {\r
-        SharedPreferences sharedPreferences = paramContext.getSharedPreferences("AgingTest_workTime", 0);\r
-        String str = paramContext.getResources().getString(paramInt);\r
-        int time = sharedPreferences.getInt(str, 0);\r
-        return time;\r
-    }\r
-\r
-\r
-    /**\r
-     * android 7.0及以上 (2)扫描各个网络接口获取mac地址\r
-     *\r
-     */\r
-    /**\r
-     * 获取设备HardwareAddress地址\r
-     *\r
-     * @return\r
-     */\r
-    public static String getWifiMacAddress() {\r
-        Enumeration<NetworkInterface> interfaces = null;\r
-        try {\r
-            interfaces = NetworkInterface.getNetworkInterfaces();\r
-        } catch (SocketException e) {\r
-            e.printStackTrace();\r
-        }\r
-        String hardWareAddress = null;\r
-        NetworkInterface iF = null;\r
-        if (interfaces == null) {\r
-            return null;\r
-        }\r
-        while (interfaces.hasMoreElements()) {\r
-            iF = interfaces.nextElement();\r
-            try {\r
-                hardWareAddress = bytesToString(iF.getHardwareAddress());\r
-                if (hardWareAddress != null)\r
-                    break;\r
-            } catch (SocketException e) {\r
-                e.printStackTrace();\r
-            }\r
-        }\r
-        return hardWareAddress;\r
-    }\r
-\r
-    /***\r
-     * byte转为String\r
-     *\r
-     * @param bytes\r
-     * @return\r
-     */\r
-    private static String bytesToString(byte[] bytes) {\r
-        if (bytes == null || bytes.length == 0) {\r
-            return null;\r
-        }\r
-        StringBuilder buf = new StringBuilder();\r
-        for (byte b : bytes) {\r
-            buf.append(String.format("%02X:", b));\r
-        }\r
-        if (buf.length() > 0) {\r
-            buf.deleteCharAt(buf.length() - 1);\r
-        }\r
-        return buf.toString();\r
-    }\r
-\r
-\r
-\r
-    // 展讯获取cid\r
-    public static String GetCidFromSystem() {\r
-        String cid_file = SystemProperties.get("ro.product.partitionpath", "") + "miscdata";\r
-        byte[] resCid = new byte[16];\r
-        try {\r
-            byte[] buf = new byte[50];\r
-            FileInputStream inputStream = new FileInputStream(cid_file);\r
-            int len = inputStream.read(buf);\r
-            if (len < 50) return null;\r
-            for (int i = 0; i < 16; i++) {\r
-                resCid[i] = buf[i + 28];\r
-            }\r
-//            for (int i = 0; i < 16; i++) {\r
-//                if ((resCid[i] >= 0x30 && resCid[i] <= 0x39) || (resCid[i] >= 0x61 && resCid[i] <= 0x7A) || (resCid[i] >= 0x41 && resCid[i] <= 0x5A)) {\r
-//                    // valid\r
-//                } else {\r
-//                    // invalid\r
-//                    for (int j = 28; j < 28 + 16; j++) {\r
-//                        resCid[j] = 0x30;\r
-//                    }\r
-//                    break;\r
-//                }\r
-//            }\r
-        } catch (Exception e) {\r
-            e.printStackTrace();\r
-        }\r
-        String cid = new String(resCid);\r
-        Log.d("FTUtils", "get cid=" + cid);\r
-        return cid;\r
-    }\r
-\r
-    public static String getImei(Context context) {\r
-        TelephonyManager manager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);\r
-        String imei = "";\r
-\r
-        Class clazz = null;\r
-        if (manager != null) {\r
-            clazz = manager.getClass();\r
-        }\r
-\r
-        try {\r
-            Method getImei = null;\r
-            if (clazz != null) {\r
-                getImei = clazz.getDeclaredMethod("getImei");\r
-            }\r
-            if (getImei != null) {\r
-                getImei.setAccessible(true);\r
-                imei = (String) getImei.invoke(manager);\r
-            }\r
-        } catch (Exception e) {\r
-            e.printStackTrace();\r
-        }\r
-        return imei;\r
-    }\r
-\r
-    public static String getBtAddressViaReflection() {\r
-        return BluetoothAdapter.getDefaultAdapter().getAddress();\r
-    }\r
-\r
-    public static boolean isS06() {\r
-        if (SystemProperties.get("ro.product.brand", "").equalsIgnoreCase("SPRD") && SystemProperties.get("ro.build.version.release", "").equalsIgnoreCase("8.1.0")) {\r
-            return true;\r
-        }\r
-        return false;\r
-    }\r
-\r
-    public static boolean isA9(){\r
-        if(SystemProperties.get("persist.sys.id_num","").equalsIgnoreCase("A9")\r
-                || SystemProperties.get("persist.sys.customname","").equalsIgnoreCase("YQ")) {\r
-\r
-            return true;\r
-        }\r
-        return false;\r
-    }\r
-    public static boolean isV20(){\r
-        if(SystemProperties.get("persist.sys.id_num","").equalsIgnoreCase("V20")\r
-                || SystemProperties.get("persist.sys.customname","").equalsIgnoreCase("C46")) {\r
-\r
-            return true;\r
-        }\r
-        return false;\r
-    }\r
-    public static  boolean isQ3FT(){\r
-\r
-        if ( SystemProperties.get("persist.sys.customname","").equalsIgnoreCase("VitracK")) {\r
-            return true;\r
-        }\r
-        return false;\r
-    }\r
-    public static  boolean isQ3F(){\r
-\r
-        if (getMODEL().contains("C41-QL02")||getMODEL().contains("C41S-QL02")|| SystemProperties.get("ro.product.isQ3F","").equalsIgnoreCase("true") || SystemProperties.get("persist.sys.id_num","").equalsIgnoreCase("q3f")) {\r
-            return true;\r
-        }\r
-        return false;\r
-    }\r
-    public static  boolean hasHRS_TEMP(){\r
-\r
-        if (getMODEL().contains("H88")\r
-                ||SystemProperties.get("ro.product.isH88","").equalsIgnoreCase("true")\r
-                || SystemProperties.get("persist.sys.id_num","").equalsIgnoreCase("H88")\r
-                || SystemProperties.get("persist.sys.id_num","").equalsIgnoreCase("A9")\r
-                || SystemProperties.get("persist.sys.customname","").equalsIgnoreCase("YQ")\r
-        ) {\r
-            return true;\r
-        }\r
-        return false;\r
-    }\r
-}\r
+package mobile.miki.util;
+
+import android.bluetooth.BluetoothAdapter;
+import android.content.Context;
+import android.content.SharedPreferences;
+import android.os.Build;
+import android.os.SystemProperties;
+import android.telephony.TelephonyManager;
+import android.util.Log;
+
+import java.io.FileInputStream;
+import java.lang.reflect.Method;
+import java.net.NetworkInterface;
+import java.net.SocketException;
+import java.util.Enumeration;
+
+public class FTUtils {
+    public static String getDISPLAY() {
+        return Build.DISPLAY.toUpperCase();
+    }
+
+    public static String getMODEL() {
+        return Build.MODEL.toUpperCase();
+    }
+
+    /**
+     * 展讯猎豹项目
+     * @return
+     */
+    public static boolean isLieBao() {
+//        return getMODEL().contains("C02A") || getMODEL().contains("S09") || getMODEL().contains("C02");
+        return false;
+    }
+
+    /**
+     * sugar
+     * @return
+     */
+    public static boolean isSugar() {
+//        return getDISPLAY().contains("W501CS") || getMODEL().contains("SUGAR");
+        return false;
+    }
+
+    public static boolean doPCBATest(){
+        return false;
+    }
+    public static void SetPreferences(Context paramContext, int paramInt,
+                                      Long time) {
+        SharedPreferences sharedPreferences = paramContext.getSharedPreferences("AgingTest", 0);
+        String str = paramContext.getResources().getString(paramInt);
+        SharedPreferences.Editor localEditor = sharedPreferences.edit();
+        localEditor.putLong(str, time);
+        localEditor.commit();
+    }
+
+    public static long GetPreferences(Context paramContext, int paramInt) {
+        SharedPreferences sharedPreferences = paramContext.getSharedPreferences("AgingTest", 0);
+        String str = paramContext.getResources().getString(paramInt);
+        long time = sharedPreferences.getLong(str, 0);
+        return time;
+    }
+
+    public static void SetAgeingWorktimePreferences(Context paramContext, int paramInt,
+                                      int time) {
+        SharedPreferences sharedPreferences = paramContext.getSharedPreferences("AgingTest_workTime", 0);
+        String str = paramContext.getResources().getString(paramInt);
+        SharedPreferences.Editor localEditor = sharedPreferences.edit();
+        localEditor.putInt(str, time);
+        localEditor.commit();
+    }
+
+    public static int GetAgeingWorktimePreferences(Context paramContext, int paramInt) {
+        SharedPreferences sharedPreferences = paramContext.getSharedPreferences("AgingTest_workTime", 0);
+        String str = paramContext.getResources().getString(paramInt);
+        int time = sharedPreferences.getInt(str, 0);
+        return time;
+    }
+
+
+    /**
+     * android 7.0及以上 (2)扫描各个网络接口获取mac地址
+     *
+     */
+    /**
+     * 获取设备HardwareAddress地址
+     *
+     * @return
+     */
+    public static String getWifiMacAddress() {
+        Enumeration<NetworkInterface> interfaces = null;
+        try {
+            interfaces = NetworkInterface.getNetworkInterfaces();
+        } catch (SocketException e) {
+            e.printStackTrace();
+        }
+        String hardWareAddress = null;
+        NetworkInterface iF = null;
+        if (interfaces == null) {
+            return null;
+        }
+        while (interfaces.hasMoreElements()) {
+            iF = interfaces.nextElement();
+            try {
+                hardWareAddress = bytesToString(iF.getHardwareAddress());
+                if (hardWareAddress != null)
+                    break;
+            } catch (SocketException e) {
+                e.printStackTrace();
+            }
+        }
+        return hardWareAddress;
+    }
+
+    /***
+     * byte转为String
+     *
+     * @param bytes
+     * @return
+     */
+    private static String bytesToString(byte[] bytes) {
+        if (bytes == null || bytes.length == 0) {
+            return null;
+        }
+        StringBuilder buf = new StringBuilder();
+        for (byte b : bytes) {
+            buf.append(String.format("%02X:", b));
+        }
+        if (buf.length() > 0) {
+            buf.deleteCharAt(buf.length() - 1);
+        }
+        return buf.toString();
+    }
+
+
+
+    // 展讯获取cid
+    public static String GetCidFromSystem() {
+        String cid_file = SystemProperties.get("ro.product.partitionpath", "") + "miscdata";
+        byte[] resCid = new byte[16];
+        try {
+            byte[] buf = new byte[50];
+            FileInputStream inputStream = new FileInputStream(cid_file);
+            int len = inputStream.read(buf);
+            if (len < 50) return null;
+            for (int i = 0; i < 16; i++) {
+                resCid[i] = buf[i + 28];
+            }
+//            for (int i = 0; i < 16; i++) {
+//                if ((resCid[i] >= 0x30 && resCid[i] <= 0x39) || (resCid[i] >= 0x61 && resCid[i] <= 0x7A) || (resCid[i] >= 0x41 && resCid[i] <= 0x5A)) {
+//                    // valid
+//                } else {
+//                    // invalid
+//                    for (int j = 28; j < 28 + 16; j++) {
+//                        resCid[j] = 0x30;
+//                    }
+//                    break;
+//                }
+//            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        String cid = new String(resCid);
+        Log.d("FTUtils", "get cid=" + cid);
+        return cid;
+    }
+
+    public static String getImei(Context context) {
+        TelephonyManager manager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
+        String imei = "";
+
+        Class clazz = null;
+        if (manager != null) {
+            clazz = manager.getClass();
+        }
+
+        try {
+            Method getImei = null;
+            if (clazz != null) {
+                getImei = clazz.getDeclaredMethod("getImei");
+            }
+            if (getImei != null) {
+                getImei.setAccessible(true);
+                imei = (String) getImei.invoke(manager);
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return imei;
+    }
+
+    public static String getBtAddressViaReflection() {
+        return BluetoothAdapter.getDefaultAdapter().getAddress();
+    }
+
+    public static boolean isS06() {
+//        if (SystemProperties.get("ro.product.brand", "").equalsIgnoreCase("SPRD") && SystemProperties.get("ro.build.version.release", "").equalsIgnoreCase("8.1.0")) {
+//            return true;
+//        }
+        return false;
+    }
+
+    public static boolean isA9(){
+        if(SystemProperties.get("persist.sys.id_num","").equalsIgnoreCase("A9")
+                || SystemProperties.get("persist.sys.customname","").equalsIgnoreCase("YQ")) {
+
+            return true;
+        }
+        return false;
+    }
+    public static boolean isV20(){
+        if(SystemProperties.get("persist.sys.id_num","").equalsIgnoreCase("V20")
+                || SystemProperties.get("persist.sys.customname","").equalsIgnoreCase("C46")) {
+
+            return true;
+        }
+        return false;
+    }
+
+    public static boolean isGT09(){
+        if(SystemProperties.get("persist.sys.id_num","").equalsIgnoreCase("GT09")
+                || SystemProperties.get("persist.sys.customname","").equalsIgnoreCase("GT09")) {
+
+            return true;
+        }
+        return false;
+    }
+
+    public static  boolean isQ3FT(){
+
+        if ( SystemProperties.get("persist.sys.customname","").equalsIgnoreCase("VitracK")) {
+            return true;
+        }
+        return false;
+    }
+    public static  boolean isQ3F(){
+
+        if (getMODEL().contains("C41-QL02")||getMODEL().contains("C41S-QL02")|| SystemProperties.get("ro.product.isQ3F","").equalsIgnoreCase("true") || SystemProperties.get("persist.sys.id_num","").equalsIgnoreCase("q3f")) {
+            return true;
+        }
+        return false;
+    }
+    public static  boolean hasHRS_TEMP(){
+
+        if (getMODEL().contains("H88")
+                ||SystemProperties.get("ro.product.isH88","").equalsIgnoreCase("true")
+                || SystemProperties.get("persist.sys.id_num","").equalsIgnoreCase("H88")
+                || SystemProperties.get("persist.sys.id_num","").equalsIgnoreCase("A9")
+                || SystemProperties.get("persist.sys.customname","").equalsIgnoreCase("YQ")
+        ) {
+            return true;
+        }
+        return false;
+    }
+}
diff --git a/app/src/main/libs/armeabi-v7a/ag333m_tool b/app/src/main/libs/armeabi-v7a/ag333m_tool
new file mode 100644 (file)
index 0000000..001b677
Binary files /dev/null and b/app/src/main/libs/armeabi-v7a/ag333m_tool differ
diff --git a/app/src/main/libs/armeabi-v7a/libag3335m_jni.so b/app/src/main/libs/armeabi-v7a/libag3335m_jni.so
new file mode 100644 (file)
index 0000000..ac58cc6
Binary files /dev/null and b/app/src/main/libs/armeabi-v7a/libag3335m_jni.so differ
diff --git a/app/src/main/res/layout/dig_layout_testlist_280.xml b/app/src/main/res/layout/dig_layout_testlist_280.xml
new file mode 100644 (file)
index 0000000..9234bd1
--- /dev/null
@@ -0,0 +1,363 @@
+<?xml version="1.0" encoding="utf-8"?>
+<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    >
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:background="@drawable/bg_daytime"
+        android:orientation="vertical">
+
+        <TextView
+            android:id="@+id/Factory_test_title"
+            style="@style/category_title_style"
+            android:layout_width="match_parent"
+            android:layout_height="30dp"
+            android:gravity="center|center_horizontal"
+            android:text="@string/benji"
+            android:textSize="22sp" />
+
+        <include layout="@layout/urovo_layout_listline" />
+
+        <LinearLayout
+            android:id="@+id/pcba_test"
+            android:layout_width="match_parent"
+            android:layout_height="0dp"
+            android:layout_weight="1"
+            android:background="@drawable/listpress"
+            android:gravity="center_vertical"
+            android:orientation="vertical"
+            tools:visibility="gone">
+
+            <TextView
+                style="@style/title_text_large_style"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                android:gravity="center"
+                android:text="@string/pcbaTest"
+                android:textSize="22sp" />
+
+            <TextView
+                style="@style/content_text_medium_style"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                android:layout_marginTop="2dp"
+                android:gravity="center_vertical"
+                android:text="@string/Engineer_mode_title"
+                android:visibility="gone" />
+        </LinearLayout>
+
+        <View
+            android:id="@+id/view"
+            android:layout_width="match_parent"
+            android:layout_height="1dp"
+            android:background="#c0c0c0" />
+
+        <LinearLayout
+            android:id="@+id/moblie_test"
+            android:layout_width="match_parent"
+            android:layout_height="0dp"
+            android:layout_weight="1"
+            android:background="@drawable/listpress"
+            android:gravity="center_vertical"
+            android:orientation="vertical">
+
+            <TextView
+                style="@style/title_text_large_style"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                android:gravity="center"
+                android:text="@string/autoTest"
+                android:textSize="15sp" />
+
+            <TextView
+                style="@style/content_text_medium_style"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                android:layout_marginTop="2dp"
+                android:gravity="center_vertical"
+                android:text="@string/Engineer_mode_title"
+                android:visibility="gone" />
+        </LinearLayout>
+
+        <View
+            android:layout_width="match_parent"
+            android:layout_height="1dp"
+            android:background="#c0c0c0" />
+
+
+        <LinearLayout
+            android:id="@+id/engineer_mode_test"
+            android:layout_width="match_parent"
+            android:layout_height="0dp"
+            android:layout_weight="1"
+            android:background="@drawable/listpress"
+            android:gravity="center_vertical"
+            android:orientation="vertical">
+
+            <TextView
+                style="@style/title_text_large_style"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                android:gravity="center"
+                android:text="@string/testReport"
+                android:textSize="15sp" />
+
+            <TextView
+                style="@style/content_text_medium_style"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                android:layout_marginTop="2dp"
+                android:gravity="center_vertical"
+                android:text="@string/Engineer_mode_title"
+                android:visibility="gone" />
+        </LinearLayout>
+
+        <View
+            android:layout_width="match_parent"
+            android:layout_height="1dp"
+            android:background="#c0c0c0" />
+        <LinearLayout
+            android:id="@+id/flagposiontion"
+            android:layout_width="match_parent"
+            android:layout_height="0dp"
+            android:layout_weight="1"
+            android:background="@drawable/listpress"
+            android:clickable="true"
+            android:gravity="center_vertical"
+            android:orientation="vertical">
+
+            <TextView
+                style="@style/title_text_large_style"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                android:gravity="center"
+                android:text="@string/flag_position"
+                android:textSize="15sp" />
+        </LinearLayout>
+
+        <View
+            android:layout_width="match_parent"
+            android:layout_height="1dp"
+            android:background="#c0c0c0" />
+
+        <LinearLayout
+            android:id="@+id/ageing_mode"
+            android:layout_width="match_parent"
+            android:layout_height="0dp"
+            android:layout_weight="1"
+            android:background="@drawable/listpress"
+            android:clickable="true"
+            android:gravity="center_vertical"
+            android:orientation="vertical">
+
+            <TextView
+                style="@style/title_text_large_style"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                android:gravity="center"
+                android:text="@string/ageing_mode"
+                android:textSize="15sp" />
+        </LinearLayout>
+
+        <View
+            android:id="@+id/view2"
+            android:layout_width="match_parent"
+            android:layout_height="1dp"
+            android:background="#c0c0c0" />
+
+        <LinearLayout
+            android:id="@+id/gps_full_test"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:layout_weight="1"
+            android:background="@drawable/listpress"
+            android:gravity="center_vertical"
+            android:orientation="vertical">
+
+            <TextView
+                style="@style/title_text_large_style"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                android:gravity="center"
+                android:text="@string/gps"
+                android:textSize="15sp" />
+
+            <TextView
+                style="@style/content_text_medium_style"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                android:layout_marginTop="2dp"
+                android:gravity="center_vertical"
+                android:text="@string/Engineer_mode_title"
+                android:visibility="gone" />
+
+        </LinearLayout>
+
+        <View
+            android:layout_width="match_parent"
+            android:layout_height="1dp"
+            android:background="#c0c0c0" />
+
+        <LinearLayout
+            android:id="@+id/download_mode"
+            android:layout_width="match_parent"
+            android:layout_height="0dp"
+            android:layout_weight="1"
+            android:background="@drawable/listpress"
+            android:clickable="true"
+            android:gravity="center_vertical"
+            android:orientation="vertical">
+
+            <TextView
+                style="@style/title_text_large_style"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                android:gravity="center"
+                android:text="@string/download_mode"
+                android:textSize="15sp" />
+        </LinearLayout>
+
+        <View
+            android:layout_width="match_parent"
+            android:layout_height="1dp"
+            android:background="#c0c0c0" />
+
+
+        <LinearLayout
+            android:id="@+id/map_copy_tools"
+            android:layout_width="match_parent"
+            android:layout_height="0dp"
+            android:layout_weight="1"
+            android:background="@drawable/listpress"
+            android:gravity="center_vertical"
+            android:orientation="vertical">
+
+            <TextView
+                style="@style/title_text_large_style"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                android:gravity="center"
+                android:text="@string/resunme"
+                android:textSize="15sp" />
+
+            <TextView
+                style="@style/content_text_medium_style"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                android:layout_marginTop="2dp"
+                android:gravity="center_vertical"
+                android:text="@string/Engineer_mode_title"
+                android:visibility="gone" />
+        </LinearLayout>
+
+        <View
+            android:layout_width="match_parent"
+            android:layout_height="1dp"
+            android:background="#c0c0c0" />
+
+        <LinearLayout
+            android:id="@+id/shutdown_system"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:layout_weight="1"
+            android:background="@drawable/listpress"
+            android:gravity="center_vertical"
+            android:orientation="vertical">
+
+            <TextView
+                style="@style/title_text_large_style"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                android:gravity="center"
+                android:text="@string/power_off"
+                android:textSize="15sp" />
+
+            <TextView
+                style="@style/content_text_medium_style"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                android:layout_marginTop="2dp"
+                android:gravity="center_vertical"
+                android:text="@string/Engineer_mode_title"
+                android:visibility="gone" />
+        </LinearLayout>
+
+        <View
+            android:id="@+id/view5"
+            android:layout_width="match_parent"
+            android:layout_height="1dp"
+            android:background="#c0c0c0" />
+
+        <LinearLayout
+            android:id="@+id/dail"
+            android:layout_width="match_parent"
+            android:layout_height="0dp"
+            android:layout_weight="1"
+            android:background="@drawable/listpress"
+            android:clickable="true"
+            android:gravity="center_vertical"
+            android:orientation="vertical">
+
+            <TextView
+                android:id="@+id/textView15"
+                style="@style/content_text_medium_style"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                android:layout_marginTop="2dp"
+                android:layout_weight="1"
+                android:gravity="center_vertical"
+                android:text="@string/Engineer_mode_title"
+                android:visibility="gone" />
+
+            <TextView
+                style="@style/title_text_large_style"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                android:gravity="center"
+                android:text="@string/dual_new"
+                android:textSize="15sp" />
+        </LinearLayout>
+
+        <View
+            android:id="@+id/view3"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_weight="1"
+            android:background="#c0c0c0" />
+
+        <LinearLayout
+            android:id="@+id/tempAdjustLayout"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:layout_weight="1"
+            android:background="@drawable/listpress"
+            android:clickable="true"
+            android:gravity="center_vertical"
+            android:orientation="vertical">
+
+            <TextView
+                android:id="@+id/textViewTempAdjust"
+                style="@style/content_text_medium_style"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                android:layout_marginTop="2dp"
+                android:layout_weight="1"
+                android:gravity="center_vertical"
+                android:text="@string/Engineer_mode_title"
+                android:visibility="gone" />
+
+            <TextView
+                style="@style/title_text_large_style"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                android:gravity="center"
+                android:text="@string/tempAdjust"
+                android:textSize="15sp" />
+        </LinearLayout>
+
+    </LinearLayout>
+</ScrollView>
\ No newline at end of file
diff --git a/app/src/main/res/layout/gps_full_test_activity_280.xml b/app/src/main/res/layout/gps_full_test_activity_280.xml
new file mode 100644 (file)
index 0000000..599083a
--- /dev/null
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    tools:context=".GPSActivity"
+    android:background="@color/colorIcBg">
+
+    <TextView
+        android:id="@+id/ic_lc_fix_name"
+        style="@style/IcTextStyle"
+        android:text="@string/gps_full_title"
+        android:textSize="10sp" />
+
+    <TextView
+        android:id="@+id/ic_lc_fix_value"
+        style="@style/IcTextStyle"
+        android:layout_marginStart="10dp"
+        android:layout_toEndOf="@id/ic_lc_fix_name"
+        android:textSize="10sp" />
+
+    <TextView
+        android:id="@+id/ic_lc_star_name"
+        style="@style/IcTextStyle"
+        android:layout_below="@id/ic_lc_fix_name"
+        android:text="@string/gps_star_count"
+        android:textSize="10sp" />
+
+    <TextView
+        android:id="@+id/ic_lc_star_value"
+        style="@style/IcTextStyle"
+        android:layout_below="@id/ic_lc_fix_name"
+        android:layout_marginStart="10dp"
+        android:layout_toEndOf="@id/ic_lc_star_name"
+        android:textSize="10sp" />
+
+    <TextView
+        android:id="@+id/ic_lc_hoop_name"
+        style="@style/IcTextStyle"
+        android:layout_below="@id/ic_lc_star_name"
+        android:text="@string/gps_dop"
+        android:textSize="10sp" />
+
+    <TextView
+        android:id="@+id/ic_lc_hoop_value"
+        style="@style/IcTextStyle"
+        android:layout_below="@id/ic_lc_star_name"
+        android:layout_marginStart="10dp"
+        android:layout_toEndOf="@id/ic_lc_hoop_name"
+        android:textSize="10sp" />
+
+
+
+    <TextView
+        android:id="@+id/ic_lc_searchCount"
+        style="@style/IcTextStyle"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_below="@id/ic_lc_hoop_name"
+        android:text="@string/gps_scan_time"
+        android:textSize="10sp" />
+
+    <TextView
+        android:id="@+id/ic_lc_searchCount_value"
+        style="@style/IcTextStyle"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_below="@id/ic_lc_hoop_name"
+        android:layout_marginStart="10dp"
+        android:layout_toEndOf="@id/ic_lc_searchCount"
+        android:textSize="10sp" />
+    <android.support.v7.widget.RecyclerView
+        android:id="@+id/app_list"
+        android:layout_below="@id/ic_lc_searchCount"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"/>
+</RelativeLayout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/testmain_adapter_280.xml b/app/src/main/res/layout/testmain_adapter_280.xml
new file mode 100644 (file)
index 0000000..e457e87
--- /dev/null
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:background="@drawable/button_common_white_bg"
+    android:orientation="vertical">
+
+    <TextView
+        android:id="@+id/text_item"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:textSize="10sp"
+        android:layout_gravity="center"
+        android:gravity="center"
+        android:text="11111111"/>
+
+
+</LinearLayout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/urovo_layout_table_280.xml b/app/src/main/res/layout/urovo_layout_table_280.xml
new file mode 100644 (file)
index 0000000..1eaf6e7
--- /dev/null
@@ -0,0 +1,57 @@
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="vertical"
+    tools:context=".mainui.TestMainActivity">
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:gravity="center_vertical"
+        android:orientation="horizontal">
+
+
+        <RelativeLayout
+            android:layout_width="wrap_content"
+            android:layout_height="match_parent">
+
+            <TextView
+                android:id="@+id/ceshibaogao"
+                style="@style/category_title_style"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_centerHorizontal="true"
+                android:text="@string/testReport"
+                android:textSize="15sp" />
+
+
+            <TextView
+                android:id="@+id/tip2"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_below="@+id/ceshibaogao"
+                android:text="@string/tip2"
+                android:textColor="#000"
+                android:textSize="10sp" />
+
+            <Button
+                android:id="@+id/test_result"
+                android:layout_width="wrap_content"
+                android:layout_height="30dp"
+                android:layout_below="@+id/tip2"
+                android:layout_centerHorizontal="true"
+                android:text="@string/clear_new"
+                android:textSize="10sp" />
+
+        </RelativeLayout>
+    </LinearLayout>
+
+    <GridView
+        android:id="@+id/gridview"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:numColumns="3"
+        />
+
+</LinearLayout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/urovo_layout_test_result_280.xml b/app/src/main/res/layout/urovo_layout_test_result_280.xml
new file mode 100644 (file)
index 0000000..e9bd52a
--- /dev/null
@@ -0,0 +1,195 @@
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="859dp"
+    android:layout_height="match_parent"
+    android:background="#ccc"
+    android:orientation="vertical" >
+
+    <include layout="@layout/urovo_layout_listline" />
+
+    <ScrollView
+        android:layout_width="match_parent"
+        android:layout_height="0dp"
+        android:layout_weight="1" >
+
+        <LinearLayout
+            android:layout_width="fill_parent"
+            android:layout_height="fill_parent"
+            android:orientation="vertical" >
+
+            <!-- jiaju test -->
+
+            <LinearLayout
+                android:id="@+id/jiaoju_test"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:orientation="vertical" >
+
+                <TextView
+                    android:id="@+id/jiaju"
+                    android:layout_width="fill_parent"
+                    android:layout_height="wrap_content"
+                    android:layout_marginTop="10dp"
+                    android:background="@drawable/setting_title_bg"
+                    android:gravity="center"
+                    android:paddingLeft="10.0dip"
+                    android:text="@string/jiaju"
+                    android:textSize="28sp"
+                    android:textStyle="bold" />
+
+                <TextView
+                    android:id="@+id/nv_tag"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:layout_marginTop="10dp"
+                    android:gravity="left"
+                    android:textColor="@color/black"
+                    android:textSize="26sp" />
+
+                <!-- <include layout="@layout/urovo_layout_listline" /> -->
+
+                <TextView
+                    android:id="@+id/pass"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:layout_marginTop="10dp"
+                    android:gravity="left"
+                    android:textColor="@color/black"
+                    android:textSize="15sp" />
+
+                <!-- <include layout="@layout/urovo_layout_listline" /> -->
+
+                <TextView
+                    android:id="@+id/fail"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:layout_marginTop="10dp"
+                    android:gravity="left"
+                    android:textColor="@color/black"
+                    android:textSize="15sp" />
+
+                <include layout="@layout/urovo_layout_listline" />
+
+                <TextView
+                    android:id="@+id/none"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:layout_marginTop="10dp"
+                    android:gravity="left"
+                    android:text="@string/none"
+                    android:textColor="@color/black"
+                    android:textSize="15sp" />
+                <include layout="@layout/urovo_layout_listline" />
+            </LinearLayout>
+            <!-- auto test -->
+
+            <LinearLayout
+                android:id="@+id/auto_test"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:orientation="vertical" >
+
+                <TextView
+                    android:id="@+id/auto"
+                    android:layout_width="fill_parent"
+                    android:layout_height="wrap_content"
+                    android:layout_marginTop="10dp"
+                    android:background="@drawable/setting_title_bg"
+                    android:gravity="center"
+                    android:paddingLeft="10.0dip"
+                    android:text="@string/auto"
+                    android:textSize="28sp"
+                    android:textStyle="bold" />
+
+                <TextView
+                    android:id="@+id/nv_tag1"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:layout_marginTop="5px"
+                    android:gravity="left"
+                    android:textColor="@color/black"
+                    android:textSize="15sp" />
+
+                <!-- <include layout="@layout/urovo_layout_listline" /> -->
+
+                <TextView
+                    android:id="@+id/pass1"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:layout_marginTop="10dp"
+                    android:gravity="left"
+                    android:textColor="@color/black"
+                    android:textSize="15sp" />
+
+                <!-- <include layout="@layout/urovo_layout_listline" /> -->
+
+                <TextView
+                    android:id="@+id/fail1"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:layout_marginTop="10dp"
+                    android:gravity="left"
+                    android:textColor="@color/black"
+                    android:textSize="15sp" />
+
+                <include layout="@layout/urovo_layout_listline" />
+
+                <TextView
+                    android:id="@+id/none1"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:layout_marginTop="10dp"
+                    android:gravity="left"
+                    android:text="@string/none1"
+                    android:textColor="@color/black"
+                    android:textSize="15sp" />
+                
+                  <include layout="@layout/urovo_layout_listline" />
+            </LinearLayout>
+
+           <!--  <include layout="@layout/urovo_layout_listline" /> -->
+
+            <LinearLayout
+                android:id="@+id/rf_Gs_test"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:orientation="vertical" >
+
+                <TextView
+                    android:id="@+id/rf_Gs"
+                    android:layout_width="fill_parent"
+                    android:layout_height="wrap_content"
+                    android:layout_marginTop="10dp"
+                    android:background="@drawable/setting_title_bg"
+                    android:gravity="center"
+                    android:paddingLeft="10.0dip"
+                    android:text="@string/sigle_new"
+                    android:textSize="28sp"
+                    android:textStyle="bold" />
+
+                <TextView
+                    android:id="@+id/none2"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:layout_marginTop="10dp"
+                    android:gravity="left"
+                    android:text="@string/none2"
+                    android:textColor="@color/black"
+                    android:textSize="15sp" />
+            </LinearLayout>
+
+            <include layout="@layout/urovo_layout_listline" />
+        </LinearLayout>
+    </ScrollView>
+
+    <Button
+        android:id="@+id/close"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginBottom="10dp"
+        android:layout_marginTop="10dp"
+        android:gravity="center"
+        android:text="@string/close_r"
+        android:textSize="20sp" />
+
+</LinearLayout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/version_layout_280.xml b/app/src/main/res/layout/version_layout_280.xml
new file mode 100644 (file)
index 0000000..2d5b0e4
--- /dev/null
@@ -0,0 +1,350 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/relativeLayout1"
+    android:layout_width="match_parent"
+    android:layout_height="fill_parent"
+    android:background="@android:color/white"
+    android:orientation="vertical">
+
+    <ScrollView
+        android:id="@+id/scrollView1"
+        android:layout_width="fill_parent"
+        android:layout_height="0dp"
+        android:layout_marginBottom="0dp"
+        android:layout_weight="1"
+        android:background="@drawable/white">
+
+        <LinearLayout
+            android:id="@+id/linearLayout10"
+            android:layout_width="fill_parent"
+            android:layout_height="wrap_content"
+            android:orientation="vertical">
+            <!--版本号-->
+            <LinearLayout
+                android:layout_width="fill_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginBottom="1.0dip"
+                android:background="@drawable/white"
+                android:orientation="vertical">
+                <TextView
+                    android:id="@+id/tvBuildNumber"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:text="@string/buildNumber"
+                    android:textAppearance="?android:textAppearanceMedium"
+                    android:textColor="@drawable/black"
+                    android:textSize="10sp" />
+
+                <TextView
+                    android:id="@+id/tvBuildNumberValue"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:text="@string/empty"
+                    android:textColor="@drawable/black"
+                    android:textSize="10sp" />
+            </LinearLayout>
+
+            <View
+                android:layout_width="match_parent"
+                android:layout_height="1dp"
+                android:background="#c0c0c0" />
+
+            <!-- dou mod 20160831 -->
+            <!--imei-->
+            <LinearLayout
+                android:layout_width="fill_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginBottom="1.0dip"
+                android:background="@drawable/white"
+                android:visibility="gone"
+                android:orientation="vertical">
+
+                <TextView
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:text="@string/imei"
+                    android:textAppearance="?android:textAppearanceMedium"
+                    android:textColor="@drawable/black"
+                    android:textSize="10sp" />
+
+                <TextView
+                    android:id="@+id/tv_imei"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:text="@string/empty"
+                    android:textColor="@drawable/black"
+                    android:textSize="10sp" />
+            </LinearLayout>
+
+            <View
+                android:layout_width="match_parent"
+                android:layout_height="1dp"
+                android:background="#c0c0c0" />
+
+            <!--barcode-->
+            <LinearLayout
+                android:id="@+id/ll_barcode"
+                android:layout_width="fill_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginBottom="1.0dip"
+                android:background="@drawable/white"
+                android:orientation="vertical">
+
+                <TextView
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:text="@string/barcode"
+                    android:textAppearance="?android:textAppearanceMedium"
+                    android:textColor="@drawable/black"
+                    android:textSize="10sp" />
+
+                <TextView
+                    android:id="@+id/barcode"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:text="@string/empty"
+                    android:textColor="@drawable/black"
+                    android:textSize="10sp" />
+            </LinearLayout>
+
+            <View
+                android:layout_width="match_parent"
+                android:layout_height="1dp"
+                android:background="#c0c0c0" />
+            <!--校准-->
+            <LinearLayout
+                android:layout_width="fill_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginBottom="1.0dip"
+                android:background="@drawable/white"
+                android:visibility="gone"
+                android:orientation="vertical">
+
+                <TextView
+                    android:id="@+id/rfParameters"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:text="@string/rf_parameters"
+                    android:textAppearance="?android:textAppearanceMedium"
+                    android:textColor="@drawable/black"
+                    android:textSize="10sp" />
+
+                <TextView
+                    android:id="@+id/rfParametersValue"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:text="@string/empty"
+                    android:textColor="@drawable/black"
+                    android:textSize="10sp" />
+            </LinearLayout>
+
+            <View
+                android:layout_width="match_parent"
+                android:layout_height="1dp"
+                android:background="#c0c0c0" />
+            <!-- cid号 -->
+            <LinearLayout
+                android:id="@+id/linearLayout12"
+                android:layout_width="fill_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginBottom="1.0dip"
+                android:background="@drawable/white"
+                android:visibility="gone"
+                android:orientation="vertical">
+
+                <TextView
+                    android:id="@+id/cidParameters"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:text="cid"
+                    android:textAppearance="?android:textAppearanceMedium"
+                    android:textColor="@drawable/black"
+                    android:textSize="10sp" />
+
+                <TextView
+                    android:id="@+id/cidParametersValue"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:text="@string/empty"
+                    android:textColor="@drawable/black"
+                    android:textSize="10sp" />
+            </LinearLayout>
+
+            <View
+                android:layout_width="match_parent"
+                android:layout_height="1dp"
+                android:background="#c0c0c0" />
+
+            <!--SIM卡 ICCID-->
+            <LinearLayout
+                android:id="@+id/linearLayout11"
+                android:layout_width="fill_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginBottom="1.0dip"
+                android:visibility="gone"
+                android:background="@drawable/white"
+                android:orientation="vertical">
+
+                <TextView
+                    android:id="@+id/SimIdParameters"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:text="@string/simid_parameters"
+                    android:textAppearance="?android:textAppearanceMedium"
+                    android:textColor="@drawable/black"
+                    android:textSize="10sp" />
+
+                <TextView
+                    android:id="@+id/SimidParametersValue"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:text="@string/empty"
+                    android:textColor="@drawable/black"
+                    android:textSize="10sp" />
+            </LinearLayout>
+
+            <View
+                android:layout_width="match_parent"
+                android:layout_height="1dp"
+                android:background="#c0c0c0" />
+
+            <!-- imei2 -->
+            <LinearLayout
+                android:id="@+id/ll_imei2"
+                android:layout_width="fill_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginBottom="1.0dip"
+                android:background="@drawable/white"
+                android:visibility="gone"
+                android:orientation="vertical">
+
+                <TextView
+                    android:id="@+id/imeiParameters"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:text="@string/imei2"
+                    android:textAppearance="?android:textAppearanceMedium"
+                    android:textColor="@drawable/black"
+                    android:textSize="10sp" />
+
+                <TextView
+                    android:id="@+id/imeiParametersValue"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:text="@string/empty"
+                    android:textColor="@drawable/black"
+                    android:textSize="10sp" />
+            </LinearLayout>
+
+            <View
+                android:layout_width="match_parent"
+                android:layout_height="1dp"
+                android:background="#c0c0c0" />
+
+            <!-- 获取屏幕分辨率 -->
+            <LinearLayout
+                android:id="@+id/linearLayout14"
+                android:layout_width="fill_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginBottom="1.0dip"
+                android:background="@drawable/white"
+                android:orientation="vertical">
+
+                <TextView
+                    android:id="@+id/screenResolutionParameters"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:text="@string/screen_resolution"
+                    android:textAppearance="?android:textAppearanceMedium"
+                    android:textColor="@drawable/black"
+                    android:textSize="10sp" />
+
+                <TextView
+                    android:id="@+id/screenResolutionParametersValue"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:text="@string/empty"
+                    android:textColor="@drawable/black"
+                    android:textSize="10sp" />
+            </LinearLayout>
+
+            <View
+                android:layout_width="match_parent"
+                android:layout_height="1dp"
+                android:background="#c0c0c0" />
+
+            <!--wifi mac地址-->
+            <LinearLayout
+                android:id="@+id/ll_wifi_mac_address"
+                android:layout_width="fill_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginBottom="1.0dip"
+                android:background="@drawable/white"
+                android:visibility="gone"
+                android:orientation="vertical">
+
+                <TextView
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:text="@string/wifi_mac_addaress"
+                    android:textAppearance="?android:textAppearanceMedium"
+                    android:textColor="@drawable/black"
+                    android:textSize="10sp" />
+
+                <TextView
+                    android:id="@+id/wifi_mac_address"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:text="@string/empty"
+                    android:textColor="@drawable/black"
+                    android:textSize="10sp" />
+            </LinearLayout>
+
+            <View
+                android:layout_width="match_parent"
+                android:layout_height="1dp"
+                android:background="#c0c0c0" />
+
+            <!--蓝牙 mac地址-->
+            <LinearLayout
+                android:id="@+id/ll_bluethooth_mac_address"
+                android:layout_width="fill_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginBottom="1.0dip"
+                android:background="@drawable/white"
+                android:visibility="gone"
+                android:orientation="vertical">
+
+                <TextView
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:text="@string/bluethooth_mac_addaress"
+                    android:textAppearance="?android:textAppearanceMedium"
+                    android:textColor="@drawable/black"
+                    android:textSize="10sp" />
+
+                <TextView
+                    android:id="@+id/bluethooth_mac_address"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:text="@string/empty"
+                    android:textColor="@drawable/black"
+                    android:textSize="10sp" />
+            </LinearLayout>
+
+            <View
+                android:layout_width="match_parent"
+                android:layout_height="1dp"
+                android:background="#c0c0c0" />
+            <!-- end -->
+        </LinearLayout>
+    </ScrollView>
+
+    <mobile.miki.mainui.ButtonViewTwo
+        android:id="@+id/btn_set"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_alignParentBottom="true"
+        android:layout_centerHorizontal="true"></mobile.miki.mainui.ButtonViewTwo>
+
+</LinearLayout>
\ No newline at end of file
index 520a967..565f939 100644 (file)
-<?xml version="1.0" encoding="utf-8"?>\r
-<resources>\r
-    <string name="project" translatable="false">Kdragon_80_t11</string>\r
-    <string name="KEY_POWER" translatable="false">false</string>\r
-    <string name="KEY_VLUP" translatable="false">true</string>\r
-    <string name="KEY_VLDOWN" translatable="false">true</string>\r
-    <string name="KEY_SEARCH" translatable="false">false</string>\r
-    <string name="KEY_HOME" translatable="false">true</string>\r
-    <string name="KEY_MENU" translatable="false">true</string>\r
-    <string name="KEY_BACK" translatable="false">true</string>\r
-    <string name="KEY_CAMERA" translatable="false">false</string>\r
-    <string name="KEY_EARPHONE" translatable="false">false</string>\r
-    <string name="timer_format" formatted="false" translatable="false">%02d:%02d</string>\r
-    <string name="app_name">FactoryMode</string>\r
-    <string name="otaupdate">OTA Update</string>\r
-    <string name="light">Light_induction</string>\r
-    <string name="noLight">Could not get brightness value</string>\r
-    <string name="defaultlightness">Getting_brightness</string>\r
-    <string name="lightness">brightness</string>\r
-    <string name="lightTip">Tip: the phone is positive toward the light source is conducive to faster access to brightness</string>\r
-    <string name="magnetic">Magnetic_induction</string>\r
-    <string name="magneticX">Magnetic field x</string>\r
-    <string name="magneticY">Magnetic field Y</string>\r
-    <string name="magneticZ">Magnetic field Z</string>\r
-    <string name="gravity">Gravity induction</string>\r
-    <string name="gravityX">Gravity x</string>\r
-    <string name="gravityY">Gravity Y</string>\r
-    <string name="gravityZ">Gravity Z</string>\r
-    <string name="shakeTest">Vibration_test</string>\r
-    <string name="shakeClick">Click_shock</string>\r
-    <string name="noShake">Does not support the mobile phone vibration</string>\r
-    <string name="keysTest">Key test</string>\r
-    <string name="keyPower">Power</string>\r
-    <string name="keyVLDown">VLUp</string>\r
-    <string name="keyVLUP">VLDown</string>\r
-    <string name="keySearch">Search</string>\r
-    <string name="keyHome">Home</string>\r
-    <string name="keyMenu">Menu</string>\r
-    <string name="keyBack">Back</string>\r
-    <string name="keyCamera">Camera</string>\r
-    <string name="keyCall">Call</string>\r
-    <string name="keyEndCall">EndCall</string>\r
-    <string name="empty">--</string>\r
-    <string name="detectSim">Sim card detection</string>\r
-    <string name="detectSim1">Detection Sim1</string>\r
-    <string name="detectSim2">Detection Sim2</string>\r
-    <string name="sim1">Sim1</string>\r
-    <string name="sim2">Sim2</string>\r
-    <string name="cardTest">SDcardtest</string>\r
-    <string name="cardAvail">Insert SD card</string>\r
-    <string name="cardFreeSize">Available space</string>\r
-    <string name="cardUsedSize">used space</string>\r
-    <string name="cardTotalSize">SD card capacity</string>\r
-    <string name="card2TotalSize">SD2 card capacity</string>\r
-    <string name="checkSum">Checksum</string>\r
-    <string name="nandFlash">Cell phone memory</string>\r
-    <string name="manufacturerID">Manufacturer ID</string>\r
-    <string name="deviceID">device ID</string>\r
-    <string name="rwTestResult">Read and write test results</string>\r
-    <string name="signalTest">Signal test</string>\r
-    <string name="signalRsult">Signal test results</string>\r
-    <string name="signalTestError">Signal test failure</string>\r
-    <string name="emergencyCall">Call 112</string>\r
-    <string name="chinaMoveCall">Call 10086</string>\r
-    <string name="emergencyCallSuccess">Call an emergency call success</string>\r
-    <string name="emergencyCallFail">Call emergency failure</string>\r
-    <string name="headsetTest">Headset test</string>\r
-    <string name="headsetAvail">There is no headset</string>\r
-    <string name="startMusic">play</string>\r
-    <string name="headsetButton">According to the remote control button</string>\r
-    <string name="gpsTest">GPS location</string>\r
-    <string name="gpsLongitude">longitude</string>\r
-    <string name="gpsDimensions">latitude</string>\r
-    <string name="coldRestart">cold boot</string>\r
-    <string name="hotRestart">Hot start</string>\r
-    <string name="noPosition">No geographic information</string>\r
-    <string name="gpsTTFF">GPS TTFF</string>\r
-    <string name="gpslocation">Getting GPS location information...</string>\r
-    <string name="sec">sec</string>\r
-    <string name="fmTest">Screen brightness</string>\r
-    <string name="fmSetFreq">channel</string>\r
-    <string name="rssi">RSSI</string>\r
-    <string name="mhz">MHZ</string>\r
-    <string name="dbm">(dBm)</string>\r
-    <string name="testFreq0">Test Freq 0</string>\r
-    <string name="testFreq1">Test Freq 1</string>\r
-    <string name="testFreq2">Test Freq 2</string>\r
-    <string name="testFreq3">Test Freq 3</string>\r
-    <string name="bluetooth">Bluetooth test</string>\r
-    <string name="blState">Bluetooth status</string>\r
-    <string name="blOpen">Turn on Bluetooth</string>\r
-    <string name="blOpened">Bluetooth is turned on</string>\r
-    <string name="blNoSerport">The current phone does not support Bluetooth</string>\r
-    <string name="bldenied">Bluetooth has been banned</string>\r
-    <string name="blScan">Bluetooth scan</string>\r
-    <string name="blScaning">Scanning Bluetooth device</string>\r
-    <string name="wifitest">WIFI test</string>\r
-    <string name="wfState">WIFI state</string>\r
-    <string name="wfOpen">Start WIFI</string>\r
-    <string name="wfScan">WIFI scan</string>\r
-    <string name="wfScaning">Is sweeping the hot spots</string>\r
-    <string name="cameraTest">Camera test</string>\r
-    <string name="mainCamera">Main camera</string>\r
-    <string name="subCamera">Vice camera</string>\r
-    <string name="ringtone">Bell test</string>\r
-    <string name="ringStart">Click play</string>\r
-    <string name="receiverTest">Receiver test</string>\r
-    <string name="loopback">Microphone test</string>\r
-    <string name="mic1">Mobile phone microphone test</string>\r
-    <string name="mic2">Headphone microphone test</string>\r
-    <string name="receiverStart">Click play</string>\r
-    <string name="colon">:</string>\r
-    <string name="nothing">nothing</string>\r
-    <string name="ok">correct</string>\r
-    <string name="found">find</string>\r
-    <string name="tsb">Taiwan equipment</string>\r
-    <string name="returnBack">return</string>\r
-    <string name="getInfo">Getting information...</string>\r
-    <string name="noFoundDev">No devices found</string>\r
-    <string name="noMainC">Rear facing camera is not supported</string>\r
-    <string name="noSubC">Rear facing camera is not supported</string>\r
-    <string name="gpsOk">GPS module normal</string>\r
-    <string name="pleaseOpGps">Please open the GPS first!</string>\r
-    <string name="waitForpo">Wait for location information</string>\r
-    <string name="state">state</string>\r
-    <string name="have">yes</string>\r
-    <string name="yes">yes</string>\r
-    <string name="no">no</string>\r
-    <string name="_fail">Fail</string>\r
-    <string name="checkFail">Failure detection</string>\r
-    <string name="rwCheckSuccess">Reading and writing test success</string>\r
-    <string name="rwCheckFail">Reading and writing test success</string>\r
-    <string name="dailSuccess">Call success</string>\r
-    <string name="dailFail">Call failed</string>\r
-    <string name="grd">A hot spot</string>\r
-    <string name="foundNoHot">Did not search to the hot spots</string>\r
-    <string name="openWififail">WIFI startup failed</string>\r
-    <string name="scanBegin">Start scanning</string>\r
-    <string name="wifiOpening">Starting WIFI...</string>\r
-    <string name="wifiOpen">WIFI has been started</string>\r
-    <string name="noSuportWifi">Does not support WIFI</string>\r
-    <string name="pleaseInsertHS">Please insert the headset</string>\r
-    <string name="pleaseOffHS">Please unplug the headset</string>\r
-    <string name="record">sound recording</string>\r
-    <string name="recordStart">Is recording</string>\r
-    <string name="stop">stop it</string>\r
-    <string name="recordstop">Stop status</string>\r
-    <string name="play">play</string>\r
-    <string name="delete">delete</string>\r
-    <string name="recordFile">Recording file</string>\r
-    <string name="testTouchScreen">touch screen</string>\r
-    <string name="TouchScreen">TouchScreen</string>\r
-    <string name="TouchScreen_HandWriting">TouchScreen_HandWriting</string>\r
-    <string name="TouchScreen_Verification">TouchScreen_Verification</string>\r
-    <string name="TouchScreen_VerificationPoint">TouchScreen_VerificationPoint</string>\r
-    <string name="TouchScreen_VerificationLine">TouchScreen_VerificationLine</string>\r
-    <string name="TouchScreen_VerificationShaking">TouchScreen_VerificationShaking</string>\r
-    <string name="TouchScreen_MultiTouch">TouchScreen_MultiTouch</string>\r
-    <string name="TouchScreen_Settings_TextValue">The value</string>\r
-    <string name="TouchScreen_Settings_TextSpinner">Category</string>\r
-    <string name="TouchScreen_Settings_TextSet">Set</string>\r
-    <string name="TouchScreen_Settings">Settings</string>\r
-    <string name="TouchScreen_Settings_Value">0</string>\r
-    <string name="TouchScreen_Settings_sdcard">OFF</string>\r
-    <string name="TouchScreen_Settings_uart">OFF</string>\r
-    <string name="TouchScreen_Settings_TextUart">Enable Uart Log</string>\r
-    <string name="TouchScreen_Settings_TextSDcard">Enable SD card Log</string>\r
-    <string name="power">Electricity</string>\r
-    <string name="noPower">Unable to obtain power</string>\r
-    <string name="nowState">current state</string>\r
-    <string name="playrecord">Being played</string>\r
-    <string name="recordFirst">No audio file, please record</string>\r
-    <string name="palyfinish">Play end</string>\r
-    <string name="distanceSensor">Distance sensing</string>\r
-    <string name="noDistanceSensor">No distance sensing information</string>\r
-    <string name="inDistance">Object approach</string>\r
-    <string name="outDistance">Object departure</string>\r
-    <string name="distanceTip">Tip: hand block / leave screen at the top of the test</string>\r
-    <string name="largestSound">Max volume play</string>\r
-    <string name="capture">Capture</string>\r
-    <string name="cameraMotor">Camera motor</string>\r
-    <string name="pullFar">Pull to the maximum</string>\r
-    <string name="pullClose">Pull to the minimum</string>\r
-    <string name="pullLoop">Cycle focus</string>\r
-    <string name="pullStopLoop">Stop cycle focus</string>\r
-    <string name="matvTest">TV signal test</string>\r
-    <string name="press">Hold down</string>\r
-    <string name="release">let go</string>\r
-    <string name="lastOne">Last one</string>\r
-    <string name="nextOne">Next one</string>\r
-    <string name="singleTest">single test</string>\r
-    <string name="read_imei">Display IMEI number</string>\r
-    <string name="modify_imei_sim1">Modify SIM1</string>\r
-    <string name="modify_imei_sim2">Modify SIM2</string>\r
-    <string name="input_imei_title">Please enter a new IMEI number</string>\r
-    <string name="autoTest">Automatic testing自动测试</string>\r
-    <string name="pcbaTest">PCBA testing</string>\r
-    <string name="sysVersion">edition</string>\r
-    <string name="reStore">Restore factory settings</string>\r
-    <string name="mediaTest">mediaTest</string>\r
-    <string name="readAPN">APN query</string>\r
-    <string name="sim_lock_settings">SIM card lock function setting</string>\r
-    <string name="modify_imei">Modify IMEI number</string>\r
-    <string name="testReport">Test report测试报告</string>\r
-    <string name="beginTestGPS">Click start GPS test</string>\r
-    <string name="beginTestTM">Click start FM test</string>\r
-    <string name="beginTestCamera">Click to start the camera test</string>\r
-    <string name="beginTestMtv">Click to start the TV signal test</string>\r
-    <string name="beginTestCmotor">Click to start the camera motor test</string>\r
-    <string name="beginTestScreenTouch">beginTestScreenTouch</string>\r
-    <string name="beginTestMulitScreenTouch">beginTestMulitScreenTouch</string>\r
-    <string name="testSucess">success</string>\r
-    <string name="testFail">fail</string>\r
-    <string name="testReprot">Test report</string>\r
-    <string name="bbChip">BB Chip</string>\r
-    <string name="msBoard">MS Board</string>\r
-    <string name="modemVer">Modem Ver</string>\r
-    <string name="buildTime">Build Time</string>\r
-    <string name="buildNumber">Build Number</string>\r
-    <string name="uBootVer">UBoot Ver</string>\r
-    <string name="kernelVer">Kernel Ver</string>\r
-    <string name="androidVer">Android Ver</string>\r
-    <string name="swVer">SW Ver</string>\r
-    <string name="verno">Custom Build Verno</string>\r
-    <string name="deviceInfoDefault">unKnown</string>\r
-    <string name="isLatestOne">Is the last one</string>\r
-    <string name="isTopOne">Is the last one</string>\r
-    <string name="reScan">Re scan</string>\r
-    <string name="versionTest">Version test</string>\r
-    <string name="flashLightTest">Flash test</string>\r
-    <string name="openLight">open</string>\r
-    <string name="closeLight">close</string>\r
-    <string name="appsPath">Application path</string>\r
-    <string name="defaultPath">mnt/sdcard/apps</string>\r
-    <string name="installPath">Installation location</string>\r
-    <string name="sdCard">SDCard</string>\r
-    <string name="phone">mobile phone</string>\r
-    <string name="startInstall">Start installation</string>\r
-    <string name="selectInsLocation">Please select the installation location</string>\r
-    <string name="noApps">No application can be installed</string>\r
-    <string name="nowInstall">Being installed</string>\r
-    <string name="submit">determine</string>\r
-    <string name="unbound_cancel">cancel</string>\r
-    <string name="installFinish">Installation end</string>\r
-    <string name="installSoft">Installation software</string>\r
-    <string name="cmmbTest">mobile TV</string>\r
-    <string name="bCmmbTest">Click to enter the mobile TV test</string>\r
-    <string name="setMac">Write WIFI/ Bluetooth MAC address</string>\r
-    <string name="phoneDetail">Device Status</string>\r
-    <string name="imei">IMEI</string>\r
-\r
-    <string name="imei_invalid">invalid</string>\r
-    <string name="imei_write_successful">Write IMEI number is successful, please restart the phone into effect!</string>\r
-    <string name="imei_wirte_fail">Write IMEI number failed, please enter the correct IMEI number!</string>\r
-    <string name="storage">storage</string>\r
-    <string name="sdcard_storage">SD card storage available / total</string>\r
-    <string name="phone_storage">Internal storage available / total</string>\r
-    <string name="mac">MAC</string>\r
-    <string name="bt">Bluetooth</string>\r
-    <string name="wifi">WIFI</string>\r
-    <string name="checkDir">SD card structure</string>\r
-    <string name="installedSoft">Installed applications</string>\r
-    <string name="cpsdcard2">Copy_sdcard2</string>\r
-    <string name="cpsdcard2Hint">Click OK to copy all the files on the SDCard2 to SDCard, the same name of the file will be covered, to confirm the copy?</string>\r
-    <string name="cpsdcard2ing">Being copied...</string>\r
-    <string name="cpsdcard2finish">copy complete</string>\r
-    <string name="agree">confirm</string>\r
-    <string name="cancel">close</string>\r
-    <string name="srcDir">Source directory</string>\r
-    <string name="tarDir">Target directory</string>\r
-    <string name="srcPath">/mnt/sdcard2</string>\r
-    <string name="tarPath">/mnt/sdcard/miki</string>\r
-    <string name="version_label">Version</string>\r
-    <string name="sw_label">[SW VERSION]</string>\r
-    <string name="hw_label">[HW VERSION]</string>\r
-    <string name="btn_close">Close</string>\r
-    <string name="sw_and_hw">Version</string>\r
-    <string name="sn">SN</string>\r
-    <string name="sn_invalid">Invalid</string>\r
-    <string name="hw">Cosmote-ver1</string>\r
-    <string name="sw">Cosmote_</string>\r
-    <string name="vk_hw">Cosmote-ver1</string>\r
-    <string name="vk_sw">Cosmote_</string>\r
-    <string name="no_ota_file">There is no software version found.Please put the software version in the SDcard or internal storage.</string>\r
-    <string name="update_from_sd">upgrade</string>\r
-    <string name="update_make_sure_to_continue">This operation is not restored, are you sure?</string>\r
-    <string name="update_confirm">Yes</string>\r
-\r
-    <string name="update_make_sure_and_select_file">This operation is not restored, such as determining if you click on the button to select the upgrade file.</string>\r
-    <string name="update_select_file">Select file</string>\r
-    <string name="update_write_file_faild">fail to write to file</string>\r
-    <string name="update_file_wrong">File type error, or can not find the upgrade file</string>\r
-    <string name="update_make_sure_to_update">Do you need to upgrade the software?(Please put the software version in the SDcard or internal storage)</string>\r
-    <string name="TestMedia">TestMedia</string>\r
-    <string name="sdcardfile">SDcard</string>\r
-    <string name="buildIn">buildIn</string>\r
-    <string name="no_compass">No magnetic sensor found</string>\r
-    <string name="test_tv_SMT">SMT test</string>\r
-    <string name="test_tv_ZZ">Assembly test</string>\r
-    <string name="test_tv_Retain">Comprehensive test</string>\r
-    <string name="apn_mcc">MCC:</string>\r
-    <string name="apn_mnc">MNC:</string>\r
-    <string name="imei1">IMEI1</string>\r
-    <string name="apn_search">Search</string>\r
-    <string name="lcdTest">LCD</string>\r
-    <string name="lcdTest_lsn">LCD</string>\r
-    <string name="phoneTest">Telephone</string>\r
-    <string name="bgLightTest">Background light test</string>\r
-    <string name="bgLightStrong">Strong backlight</string>\r
-    <string name="bgLightWeak">Weak backlight</string>\r
-    <string name="imei_ok">determine</string>\r
-    <string name="imei2">imei2</string>\r
-    <string name="sorry_again">Sorry, your input is not correct. Please try again!</string>\r
-    <string name="ramTest">Ram</string>\r
-    <string name="romTest">Rom</string>\r
-    <string name="ramromTest">Memory!</string>\r
-    <string name="otgTest">OTG test</string>\r
-    <string name="otg_disconnect">No OTG device connection</string>\r
-    <string name="otg_connect">Detecting device</string>\r
-    <string name="powerBatteryTest">Power charge test</string>\r
-    <string name="power_charge_battery_state">Charging status</string>\r
-    <string name="power_current_battery">Current power</string>\r
-    <string name="power_battery">battery level</string>\r
-    <string name="power_state">Power state</string>\r
-    <string name="power_current_voltage">Current voltage</string>\r
-    <string name="power_temperature">Power supply temperature</string>\r
-    <string name="power_skill">Power technology</string>\r
-    <string name="power_electric">Battery terminal current</string>\r
-    <string name="power_time">Self starting time</string>\r
-    <string name="battery_info_power_unplugged">Not plugged in</string>\r
-    <string name="battery_info_power_ac">alternating current</string>\r
-    <string name="battery_info_power_usb">USB</string>\r
-    <string name="battery_info_power_wireless">wireless</string>\r
-    <string name="battery_info_power_ac_usb">alternating current + USB</string>\r
-    <string name="battery_info_power_unknown">未知</string>\r
-    <string name="battery_info_health_unknown">unknown</string>\r
-    <string name="battery_info_health_good">Good</string>\r
-    <string name="battery_info_health_overheat">overheated</string>\r
-    <string name="battery_info_health_dead">No electricity</string>\r
-    <string name="battery_info_health_over_voltage">Over voltage</string>\r
-    <string name="battery_info_health_unspecified_failure">unknown error</string>\r
-    <string name="battery_info_health_cold">Low power</string>\r
-    <string name="battery_info_temperature_units">° C</string>\r
-    <string name="beginPhoneTest">Click to start the phone test</string>\r
-    <string name="imeisnTest">IMEI/SN</string>\r
-    <string name="key_ear">Earphone button</string>\r
-    <string name="kernel_specified">**********</string>\r
-    <string name="kernelVer1">Kernel Ver1</string>\r
-    <string name="sim_lock">SIM card lock function</string>\r
-    <string name="call_fun">Call test</string>\r
-    <string name="begincall">Click Start test call</string>\r
-\r
-    <string name="battery_status">Battery status : </string>\r
-    <string name="battery_info_status_charging">Charging</string>\r
-    <string name="battery_v">Battery voltage : </string>\r
-    <string name="battery_temp">Battery temperature : </string>\r
-    <string name="battery_info_status_charging_ac">(AC)</string>\r
-    <string name="battery_info_status_charging_usb">(USB)</string>\r
-    <string name="battery_info_status_discharging">Not charging</string>\r
-    <string name="battery_info_status_not_charging">Not charging</string>\r
-    <string name="battery_info_status_full">Full</string>\r
-    <string name="battery_info_status_unknown">Unknown</string>\r
-    <string name="battery_info_voltage_units">mV</string>\r
-    <string name="battery_level">Battery level : </string>\r
-    <string name="battery_health">Battery health : </string>\r
-\r
-\r
-    <string name="battery_charging">Battery Charging Test</string>\r
-    <string name="ins_gsensor">Please turn over the phone to complete the test!</string>\r
-    <string name="ins_gsensor_toast">Pass!</string>\r
-\r
-    <string name="bt_empty" translatable="false"></string>\r
-\r
-    <string name="isZoom_y">PASS!</string>\r
-\r
-    <string name="isZoom_n">FAIL!</string>\r
-    <string name="rf_parameters">rf</string>\r
-    <string name="simid_parameters">SimSerialNumber</string>\r
-    <string name="vl_up">VLUp</string>\r
-    <string name="vl_down">VLDown</string>\r
-    <string name="sos">miaoSoS</string>\r
-    <string name="ageing_mode">Ageing mode老化模式</string>\r
-    <string name="ageing_speaker_test">Speaker test</string>\r
-    <string name="ageing_lcd_test">LCD test</string>\r
-    <string name="ageing_camera_test">Camera test</string>\r
-    <string name="show_volum">To adjust the volume, please click here</string>\r
-    <string name="brightness_setting">Dimming</string>\r
-\r
-    <string name="start_test_new">Start Testing</string>\r
-    <string name="benji">Factory test</string>\r
-    <string name="resunme">Reset恢复出厂设置</string>\r
-    <string name="ensure_power_off">确定关机?</string>\r
-    <string name="tip2">Logo: pass (green), not pass (red), not measured (white)</string>\r
-\r
-    <string name="clear_new">Clear the test data</string>\r
-    <string name="version_new">Version and calibration</string>\r
-    <string name="touch">Touch screen</string>\r
-    <string name="light_new">Display screen</string>\r
-    <string name="camera">Camera</string>\r
-    <string name="speak">Speaker</string>\r
-    <string name="mic_title">Microphone</string>\r
-    <string name="sim_title">SIM card</string>\r
-    <string name="dual_new">Phone</string>\r
-    <string name="beiguang_new">Backlight</string>\r
-    <string name="gps">GPS</string>\r
-    <string name="tempAdjust">Temperature Adjust 温度校准</string>\r
-    <string name="temperature">Temperature</string>\r
-    <string name="no_temperature">No Temperature device found!</string>\r
-    <string name="anti_check">AntiCheck</string>\r
-\r
-    <string name="startRecord">Start recording</string>\r
-    <string name="stopRecord">Stop recording</string>\r
-    <string name="startPlay">Start playing</string>\r
-    <string name="stopPlay">Stop play</string>\r
-    <string name="engineerMode">Engineering model</string>\r
-    <string name="more">More settings</string>\r
-    <string name="unbound">Unbound</string>\r
-    <string name="showProtocolInfo">ShowProtocolInfo</string>\r
-    <string name="touchtest_toast">Please touch screen test</string>\r
-    <string name="testing_lcd">Testing LCD</string>\r
-    <string name="fail">FAIL</string>\r
-    <string name="success">SUCCESS</string>\r
-    <string name="network">network</string>\r
-    <string name="signal">signal</string>\r
-    <string name="operator">operator</string>\r
-    <string name="pcbatest_gps_pass_rules">Pass Rule: one satellite SNR > 30 </string>\r
-    <string name="ageing_gps_pass_rules">Pass Rule: 3 satellites SNR > 30</string>\r
-    <string name="gps_pass_rules">Pass Rule: GPS Must Fixed</string>\r
-    <string name="location_sucess">Location success </string>\r
-    <string name="location_fail">Location fail</string>\r
-    <string name="gps_searching">Getting Gps information...</string>\r
-    <string name="total_memory">Total memory: </string>\r
-    <string name="avail_memory">Avail memory: </string>\r
-    <string name="testing_backlight">Testing backlight</string>\r
-    <string name="lcd_result">LCD Test Results</string>\r
-    <string name="lcd_result_tip">Please determine whether the screen display is normal</string>\r
-    <string name="ring_test">Playing music, please listen...</string>\r
-    <string name="lcdtest_toast">Click to display the brightness progress bar, double-click to exit</string>\r
-    <string name="speak_toast">please speak</string>\r
-    <string name="stop_record_toast">Stop recording</string>\r
-    <string name="playing_toast">Start playing</string>\r
-    <string name="stop_playing_toast">Stop play</string>\r
-    <string name="clear_new_wanr">Are you sure to clear the test data </string>\r
-    <string name="clear_new_yes">confirm </string>\r
-    <string name="clear_new_no">return</string>\r
-    <string name="cid">CID</string>\r
-    <string name="sim_hasRead">Identified</string>\r
-    <string name="screen_resolution">screenResolution</string>\r
-    <string name="download_mode">download_mode</string>\r
-\r
-    <string name="beginBackCameraTestCmotor">查看后拉摄像头</string>\r
-    <string name="rf_yes">是</string>\r
-    <string name="rf_no">否</string>\r
-    <string name="screen_bright">背光</string>\r
-    <string name="screen_bright_test">点击开始背光测试</string>\r
-    <string name="voice_phone_test">点击进入网络电话测试</string>\r
-    <string name="bluetootheTest">点击进入蓝牙测试</string>\r
-    <string name="radarTest">点击进入雷达测试</string>\r
-    <string name="radar">雷达测试</string>\r
-    <string name="open_radar">打开雷达</string>\r
-    <string name="close_radar">关闭雷达</string>\r
-    <!-- <string name="fm_test">FM测试</string> -->\r
-    <string name="open_fm">打开FM</string>\r
-    <string name="close_fm">关闭FM</string>\r
-    <string name="longitude">经度:</string>\r
-    <string name="latitude">纬度: </string>\r
-    <string name="brightness_test">屏幕亮度(请拖动滚动条):</string>\r
-    <string name="acc_test">acc点火测试</string>\r
-    <string name="brightLight">按键灯测试</string>\r
-    <string name="fm_isRing">提示:将收音机的频率调至101.0MHZ,测试收音机是否收到音乐,收到则成功,反之则失败。</string>\r
-    <string name="open_buttonLight">点击打开按键灯</string>\r
-\r
-    <string name="beginLCDTM">点击开始LCD测试</string>\r
-\r
-    <string name="result">测试结果</string>\r
-    <!-- <string name="app_name">"测试程序"</string> -->\r
-    <string name="action_settings">设置</string>\r
-    <string name="urovo_test">"Testing tools"</string>\r
-    <string name="model_number">设备型号:</string>\r
-    <string name="manufacturer">制造商:</string>\r
-    <string name="release_number">Android版本:</string>\r
-    <string name="display_number">版本号:</string>\r
-    <string name="test_category_title">测试选项</string>\r
-    <string name="device_model_unknown">设备型号未知</string>\r
-    <string name="device_info_default">未知</string>\r
-    <string name="refresh_complete">刷新完成</string>\r
-    <string name="test_next">下一个</string>\r
-    <string name="test_last">上一个</string>\r
-    <string name="yes1">Yes</string>\r
-    <string name="no1">No</string>\r
-    <string name="ok1">Ok</string>\r
-    <string name="cancel1">Cancel</string>\r
-    <string name="openall_title">全部功能模块</string>\r
-    <string name="openall_summary">打开或关闭全部功能模块</string>\r
-    <string name="show_alltest_title">显示所有测试选项</string>\r
-    <string name="show_alltest_summary">主界面显示所有测试选项</string>\r
-    <string name="setting_title">设置</string>\r
-    <string name="moblie_test_title">整机测试</string>\r
-    <string name="Engineer_mode_title">工程模式</string>\r
-    <string name="map_copy_tools_title">地图拷贝工具</string>\r
-    <!-- device info -->\r
-    <string name="deviceinfo_title">设备信息</string>\r
-    <!-- audio -->\r
-    <string name="audio_default_music">播放默认音频文件</string>\r
-    <string name="audio_sdcard_music">扬声器(喇叭)测试</string>\r
-    <string name="audio_none_music">未找到音频文件</string>\r
-    <string name="audio_palying_tital">正在播放</string>\r
-    <string name="unknown_arter">未知</string>\r
-    <!-- flashlight -->\r
-    <string name="flashlight_title">闪光灯</string>\r
-    <string name="flashlight_none">设备无闪光灯</string>\r
-    <string name="flashlight_on">打开</string>\r
-    <string name="flashlight_off">关闭</string>\r
-    <!-- LED -->\r
-    <string name="led_tite">LED灯测试</string>\r
-    <string name="led_red_on">红色(ON)</string>\r
-    <string name="led_red_off">红色(OFF)</string>\r
-    <string name="led_red">红色</string>\r
-    <string name="led_blue">蓝色</string>\r
-    <string name="led_blue_on">蓝色(ON)</string>\r
-    <string name="led_blue_off">蓝色(OFF)</string>\r
-    <!-- tests -->\r
-    <string name="app_name_android">androidtest</string>\r
-    <string name="test_decive_info">设备</string>\r
-    <string name="test_lcd">LCD</string>\r
-    <string name="test_keypad">按键</string>\r
-    <string name="test_led">LED</string>\r
-    <string name="test_scanner">扫描头</string>\r
-    <string name="test_motor">马达</string>\r
-    <string name="test_audio">音频</string>\r
-    <string name="test_card">磁条卡</string>\r
-    <string name="test_wifi">WiFi</string>\r
-    <string name="test_bluetooth">蓝牙</string>\r
-    <string name="test_flashlight">闪光灯</string>\r
-    <string name="test_printer">打印</string>\r
-    <string name="test_gps">GPS</string>\r
-    <string name="test_record">麦克风</string>\r
-    <string name="test_3g">GSM</string>\r
-    <string name="test_rfid">非接卡</string>\r
-    <string name="test_icc">IC卡</string>\r
-    <string name="test_jj">高频</string>\r
-    <string name="test_cleanall">清除</string>\r
-    <string name="test_openall">打开全部模块</string>\r
-    <string name="test_closeall">关闭全部模块</string>\r
-    <string name="test_specifytest">选择测试</string>\r
-    <string name="test_alltest">全功能测试</string>\r
-    <string name="test_agedtest">老化测试</string>\r
-    <string name="test_noticelabel">请观察PCBA绿灯蓝灯</string>\r
-\r
-    <!-- PICC -->\r
-    <string name="picc_title">PICC测试</string>\r
-    <string name="picc_hint">请将卡放置在识别区</string>\r
-    <string name="picc_none">设备不支持FRID刷卡</string>\r
-\r
-    <!-- NFC -->\r
-    <string name="nfc_hint">请将卡放置在识别区</string>\r
-    <string name="nfc_start">Start</string>\r
-    <string name="nfc_stop">Stop</string>\r
-    <string name="nfc_context_title">NFC Test </string>\r
-    <string name="nfc_title">Test Control</string>\r
-    <string name="nfctest_info">Please place the NFC test card on the top of the NFC detective area of the device,\r
-        then press the start button to start testing, the device will output the warning tone after detected the\r
-        NFC test card. Finally, Press the stop button will stop the test.</string>\r
-    <string name="nfc_frequency">test gap time(ms):</string>\r
-    <!-- motortest -->\r
-    <string name="vibrator_title">震动</string>\r
-    <string name="app_name_driver">drivertest</string>\r
-    <string name="start">震动</string>\r
-    <string name="loginstr">开</string>\r
-    <string name="logoutstr">关</string>\r
-    <string name="wifi1">WIFI</string>\r
-    <string name="wcdma">3G</string>\r
-    <string name="bluetoothcn">蓝牙</string>\r
-    <string name="smt">扫描头</string>\r
-    <string name="motor">马达(MS)</string>\r
-    <!-- camera -->\r
-    <string name="record_start">开始录制</string>\r
-    <string name="record_complete">"录制成功,已保存"</string>\r
-    <string name="takepic_complete">拍照成功</string>\r
-    <string name="no_sdcard">未找到sd卡</string>\r
-    <!-- keypad -->\r
-    <string name="keypad_title">按键测试</string>\r
-    <string name="keypad_s1">S1</string>\r
-    <string name="keypad_s2">S2</string>\r
-    <string name="keypad_scan">Scan</string>\r
-    <string name="keypad_dpad_up">Up</string>\r
-    <string name="keypad_dpad_down">Down</string>\r
-    <string name="keypad_dpad_left">Left</string>\r
-    <string name="keypad_dpad_right">Right</string>\r
-    <string name="keypad_menu">Menu</string>\r
-    <string name="keypad_esc">Esc</string>\r
-    <string name="keypad_home">Home</string>\r
-    <string name="key_0">0</string>\r
-    <string name="key_1">1</string>\r
-    <string name="key_2">2</string>\r
-    <string name="key_3">3</string>\r
-    <string name="key_4">4</string>\r
-    <string name="key_5">5</string>\r
-    <string name="key_6">6</string>\r
-    <string name="key_7">7</string>\r
-    <string name="key_8">8</string>\r
-    <string name="key_9">9</string>\r
-    <string name="key_point">.</string>\r
-    <string name="keypad_sft">Sft</string>\r
-    <string name="keypad_alt">Ctrl</string>\r
-    <string name="keypad_aa">Aa</string>\r
-    <string name="keypad_fn">Fn</string>\r
-    <string name="keypad_ent">Ent</string>\r
-    <string name="keypad_del">"Del"</string>\r
-    <string name="keypad_space">"Space"</string>\r
-    <string name="keypad_power">Power</string>\r
-    <string name="keypad_asterisk">*</string>\r
-    <string name="keypad_pound">#</string>\r
-    <string name="keypad_volup">Volume + </string>\r
-    <string name="keypad_voldn">Volume - </string>\r
-    <string name="endaudio">完成</string>\r
-    <string name="quit">退出</string>\r
-    <!-- Bluetooth -->\r
-    <string name="bluetooth_scan">扫描</string>\r
-    <string name="bluetooth_bonded">已配对的设备</string>\r
-    <string name="bltooth_descovering">正在搜索周围可用设备...</string>\r
-    <string name="bluetooth_bonded_none">无已配对设备</string>\r
-    <string name="bluetooth_connectable">周围可用设备</string>\r
-    <string name="bluetooth_connectable_none">未检测到可用设备</string>\r
-    <string name="bluetooth_disable">蓝牙功能未打开</string>\r
-    <string name="bluetooth_title">蓝牙测试</string>\r
-    <string name="bluetooth_scan_for_devices">"扫描查找设备"</string>\r
-    <string name="btscan">手动搜索设备</string>\r
-    <string name="bluetooth_scan_complete">搜索结束</string>\r
-    <string name="bluetooth_notfound">蓝牙不可用</string>\r
-    <!-- Wifi -->\r
-    <string name="wifi_scan_complete">刷新完成</string>\r
-    <string name="wifi_state_title">Wifi测试</string>\r
-    <string name="wifi_state_connected">连接状态</string>\r
-    <string name="wifi_networks">附近网络</string>\r
-    <string name="wifi_connected_title">已连接</string>\r
-    <string name="wifi_unconnected_title">未连接</string>\r
-    <string name="wifi_scan_none">正在扫描周边wifi,请稍候...</string>\r
-    <string name="wifi_refresh">刷新</string>\r
-    <string name="wifi_state_disabling">正在关闭</string>\r
-    <string name="wifi_state_disabled">WIFI功能未打开,正在开启...</string>\r
-    <string name="wifi_state_enabling">正在打开</string>\r
-    <string name="wifi_state_enabled">WIFI功能已打开</string>\r
-    <string name="wifi_state_unknown">未知</string>\r
-    <!-- ICC -->\r
-    <string name="icc_title">IC卡测试</string>\r
-    <string name="icc_hint">请插IC卡</string>\r
-    <string name="icc_read">读卡</string>\r
-    <!-- scanner -->\r
-    <string name="scannertype_title">扫描头类型:</string>\r
-    <string name="scan_set">设置扫描头类型:</string>\r
-    <string name="scan_title">扫描结果</string>\r
-    <string name="scan_result">扫描结果</string>\r
-    <string name="set_scanner_model_complete">设置扫描头类型成功</string>\r
-    <string name="scan_about_msg">This program is the sample application provided\r
-        with project android-serialport-api. The project is free and open\r
-        source.\n\nMore information and bug report\r
-        on:\nhttp://code.google.com/p/android-serialport-api/\n\n- Cédric</string>\r
-    <string name="scan_error_configuration">Please configure your serial port first.</string>\r
-    <string name="scan_error_security">You do not have read/write permission to the serial port.</string>\r
-    <string name="scan_error_unknown">The serial port can not be opened for an unknown reason.</string>\r
-    <string name="scan_setup">setup</string>\r
-    <string name="scan_loopback">loopback</string>\r
-    <string name="scan_about">about</string>\r
-    <string name="scan_quit">quit</string>\r
-    <string name="scan_console">console</string>\r
-    <string name="scan_openscan">打开扫描头</string>\r
-    <string name="scan_closescan">关闭扫描头</string>\r
-    <string name="scan_setscan">设置默认参数</string>\r
-    <!-- 3G -->\r
-    <string name="wcdmafresh">刷新</string>\r
-    <string name="wcdmatext">3G测试</string>\r
-    <string name="options">Advance options</string>\r
-    <string name="options_save">Save</string>\r
-    <string name="options_cancle">Cancel</string>\r
-    <string name="output_dsc">After th barcode</string>\r
-    <string name="checkbox1_str">Output as keyboard</string>\r
-    <string name="checkbox2_str">Vibrate</string>\r
-    <string name="checkbox3_str">Beep</string>\r
-    <string name="checkbox4_str">Append "enter"</string>\r
-    <!-- gps -->\r
-    <string name="title_gps">GPS数据</string>\r
-    <string name="gps_disable">GPS功能尚未打开</string>\r
-    <string name="gps_longitude">经度:</string>\r
-    <string name="gps_latitude">纬度:</string>\r
-    <string name="gps_speed">速度:</string>\r
-    <string name="gps_altitude">海拔:</string>\r
-    <string name="gps_direction">方位:</string>\r
-    <string name="gps_getloc_failed">"获取地理位置信息失败"</string>\r
-    <!-- motor -->\r
-    <string name="motor_vibrator_frequency">震动时间间隔(ms):</string>\r
-    <string name="motor_vibrator_tm">震动持续时间(ms):</string>\r
-    <string name="motor_bgvibrator_start">开始</string>\r
-    <string name="motor_bgvibrator_stop">结束</string>\r
-    <string name="motor_notfound">设备不支持震动</string>\r
-    <!-- sensor -->\r
-    <string name="sensor_options">设备支持感应器</string>\r
-    <string name="sensor_gravity">重力感应器</string>\r
-    <string name="sensor_accelerometer">加速度感应器</string>\r
-    <string name="sensor_light">光线感应器</string>\r
-    <string name="sensor_data_null">未能获取感应器数据</string>\r
-    <!-- magnetic stripe card -->\r
-    <string name="mag_result_title">刷卡数据统计</string>\r
-    <string name="mag_hint">请刷磁条卡</string>\r
-    <!-- Please brush magnetic stripe card -->\r
-    <string name="count_total_title">刷卡次数:</string>\r
-    <string name="count_track1_title">磁道1成功次数:</string>\r
-    <string name="count_track2_title">磁道2成功次数:</string>\r
-    <string name="count_track3_title">磁道3成功次数:</string>\r
-    <string name="card_data">磁条卡信息</string>\r
-    <string name="card_data_wrong">错误信息</string>\r
-    <!-- print -->\r
-    <string name="print_context">请输入需打印内容</string>\r
-    <string name="printer_context_title">编辑打印内容</string>\r
-    <string name="printer_title">打印</string>\r
-    <string name="printer_temp">"打印机温度: "</string>\r
-    <!-- Printers temperature: -->\r
-    <string name="bt_print_pic">打印图片</string>\r
-    <!-- print Pic -->\r
-    <string name="bt_print_code">打印编码</string>\r
-    <!-- print Code -->\r
-    <string name="bt_print_text">打印文字</string>\r
-    <!-- print Text -->\r
-    <string name="print_hint">请输入打印内容</string>\r
-    <!-- recorder -->\r
-    <string name="none_file">未找到录音文件</string>\r
-    <string name="none_recorded_file">尚未录音</string>\r
-    <string name="recorder_menu_title">录音</string>\r
-    <string name="recorder_files">录音文件</string>\r
-\r
-    <!-- gsm -->\r
-    <string name="gsm_title">GSM信息</string>\r
-    <string name="gsm_refresh">刷新</string>\r
-    <string name="gsm_info_none">未能获取GSM信息</string>\r
-\r
-    <!-- battery -->\r
-    <string name="title_power">电源状态</string>\r
-    <string name="title_battery">电池状态</string>\r
-    <string name="battery_info_status_label" msgid="8109155295509700309">"电池状态:"</string>\r
-    <string name="battery_info_power_label" msgid="7465140230991349382">"是否已插电:"</string>\r
-    <string name="battery_info_scale_label" msgid="3649763192389778437">"当前电池电量:"</string>\r
-    <string name="battery_info_level_label" msgid="8706526709307788737">"上限电池电量:"</string>\r
-    <string name="battery_info_health_label" msgid="6416051542741886958">"电池运行状况:"</string>\r
-    <string name="battery_info_technology_label" msgid="788304533220748681">"电池技术:"</string>\r
-    <string name="battery_info_voltage_label" msgid="8971764146757637863">"电池电压:"</string>\r
-    <!-- <string name="battery_info_voltage_units" msgid="8658490792208288107">"mV"</string> -->\r
-    <string name="battery_info_temperature_label" msgid="1968383098818648037">"电池温度:"</string>\r
-    <!-- <string name="battery_info_temperature_units" msgid="9098950587249987550">"° C"</string> -->\r
-    <string name="battery_info_uptime" msgid="5548545143573527992">"启动后的时间:"</string>\r
-    <string name="battery_info_awake_battery" msgid="2557725975486185849">"使用电池电量的未休眠时间:"</string>\r
-    <string name="battery_info_awake_plugged" msgid="176716874713478188">"充电时的唤醒时间:"</string>\r
-    <string name="battery_info_screen_on" msgid="376277447175613889">"屏幕开启时间:"</string>\r
-    <!--\r
-    <string name="battery_info_status_unknown" msgid="196130600938058547">"未知"</string>\r
-    <string name="battery_info_status_charging" msgid="1705179948350365604">"正在充电"</string>\r
-    <string name="battery_info_status_charging_ac" msgid="5874340256342956252">"(交流电)"</string>\r
-    <string name="battery_info_status_charging_usb" msgid="4059070156126770959">"(USB)"</string>\r
-    <string name="battery_info_status_discharging" msgid="6222697503392774475">"正在耗电"</string>\r
-    <string name="battery_info_status_not_charging" msgid="2820070506621483576">"未在充电"</string>\r
-    <string name="battery_info_status_full" msgid="2824614753861462808">"电量充足"</string>\r
-    <string name="battery_info_power_unplugged" msgid="5987246575519551081">"未插电"</string>\r
-    <string name="battery_info_power_ac" msgid="6808516193001604634">"交流电"</string>\r
-    <string name="battery_info_power_usb" msgid="8012931702516331797">"USB"</string>\r
-    <string name="battery_info_power_ac_usb" msgid="6777734146838328688">"交流电 + USB"</string>\r
-    <string name="battery_info_power_unknown" msgid="7344115502868899881">"未知"</string>\r
-    <string name="battery_info_health_unknown" msgid="5664295556921944255">"未知"</string>\r
-    <string name="battery_info_health_good" msgid="8070356565806711806">"正常"</string>\r
-    <string name="battery_info_health_overheat" msgid="8442959549291368806">"过热"</string>\r
-    <string name="battery_info_health_dead" msgid="1725917445762829059">"没电"</string>\r
-    <string name="battery_info_health_over_voltage" msgid="2420269351664490121">"过电压"</string>\r
-    <string name="battery_info_health_unspecified_failure" msgid="6347021103185471590">"未知错误"</string>\r
-    <string name="battery_info_health_cold" msgid="3835692786176707318">"电量低"</string>\r
-\r
-\r
-\r
-\r
-    -->\r
-    <string name="battery_technology_unknwn">"未知"</string>\r
-    <!-- <string name="light">"亮屏了"</string> -->\r
-    <string name="black">"灭屏了"</string>\r
-    <string name="slide"> "请滑动屏幕测试"</string>\r
-    <string name="music_is_run"> "音乐正在播放"</string>\r
-    <string name="sd_status"> "SD状态:已检测到SD卡"</string>\r
-    <string name="sd_tatal"> "总容量:"</string>\r
-    <string name="sd_left">  "剩余容量:" </string>\r
-    <string name="sd_used">  "已用容量:" </string>\r
-    <string name="sd_fail">  "SD状态:未检测到SD卡!" </string>\r
-    <string name="set_tag">  "测试完成,将写入标志位" </string>\r
-    <string name="sim_status">  "SIM状态:SIM 就绪" </string>\r
-    <string name="sim_fail">  "SIM状态:无SIM或SIM卡损坏" </string>\r
-    <string name="china_yidong"> "中国移动"</string>\r
-    <string name="china_lintong"> "中国联通"</string>\r
-    <string name="china_dianxin">  "中国电信" </string>\r
-    <string name="sim_fail1">  "SIM卡过期" </string>\r
-    <string name="gongcheng">  "工厂测试" </string>\r
-    <string name="moshi">  "工程模式" </string>\r
-    <string name="shintool">  "地图拷贝工具" </string>\r
-    <string name="lanya">  "蓝牙测试" </string>\r
-    <string name="lanya_open">  " 蓝牙设备已开启" </string>\r
-    <string name="car_staut">  " 摄像头\n测试结果" </string>\r
-    <string name="start_test">  "开始测试" </string>\r
-    <string name="fm_test">  "FM发射器测试" </string>\r
-    <string name="fm_status">  " FM状态:" </string>\r
-    <string name="fm_tip">  "      提示:将收音机频率调至108.0MHZ,测试收音机是否收到音乐,收到则成功,反之则失败。" </string>\r
-    <string name="light_test">  "   灭/亮屏测试" </string>\r
-    <string name="light_tip">  "    提示:请按电源键,测试灭/亮屏和电源键,是否正常" </string>\r
-    <string name="light_status">  " 状态:" </string>\r
-    <string name="sd_test">  "SD卡测试" </string>\r
-    <string name="sim_test">  " SIM卡测试" </string>\r
-    <string name="sim_type">  "网络类型" </string>\r
-    <string name="sim_strenth">  "信号强度:" </string>\r
-    <string name="test1">  "PCBA自动测试" </string>\r
-    <string name="test2">  "整机自动测试" </string>\r
-    <string name="sd_title">"SD卡" </string>\r
-    <string name="fm_title">"FM发射" </string>\r
-    <string name="light_title">"灭/亮屏" </string>\r
-    <string name="bt_r">"蓝牙," </string>\r
-    <string name="touch_r">"触摸屏," </string>\r
-    <string name="sim_r">"sim卡," </string>\r
-    <string name="sd_r">"SD卡," </string>\r
-    <string name="mic_r">"双MIC," </string>\r
-    <string name="speak_r">"扬声器," </string>\r
-    <string name="camera_r">"摄像头," </string>\r
-    <string name="fm_r">"FM发射," </string>\r
-    <string name="light_r">"灭/亮屏," </string>\r
-    <string name="barry_r">"电池," </string>\r
-    <string name="pass_r">"已通过的项目:" </string>\r
-    <string name="fail_r">"未通过的项目:" </string>\r
-    <string name="tag_r">"本机NV标志位(1代表通过,0代表未通过):" </string>\r
-    <string name="diglog_r">"请按下图测试,点击任意处,取消该窗口,开始测试" </string>\r
-    <string name="test_r">"测试报告" </string>\r
-    <string name="close_r">"关闭" </string>\r
-    <string name="none">"没有测试记录,完成一次PCBA测试,添加记录" </string>\r
-    <string name="none1">"没有测试记录,完成一次整机自动测试,添加记录" </string>\r
-    <string name="none2">"没有校准记录" </string>\r
-    <string name="jiaju">"PCBA自动测试报告" </string>\r
-    <string name="auto">"整机自动测试报告" </string>\r
-    <string name="jiaju_time">"最近测试时间:" </string>\r
-    <string name="tags">"标志位(按测试顺序):" </string>\r
-    <string name="test_over">"测试完成,将写入标志位" </string>\r
-    <string name="picturing">"正在拍照" </string>\r
-    <string name="recording">"正在录像,请晃动机器测试" </string>\r
-    <string name="pic_over">"拍照完成" </string>\r
-    <string name="write_tag_over">" 已经写入标志位" </string>\r
-    <string name="record1">"录像" </string>\r
-    <string name="photo">"停止" </string>\r
-    <string name="deviceInfo">"版本信息" </string>\r
-    <string name="gsensor">"Gsensor测试" </string>\r
-    <string name="sensor">请旋转手机或屏幕</string>\r
-    <string name="read_data">读取数据</string>\r
-    <string name="sensor_calibration_do_20">进行校准(误差20%)</string>\r
-    <string name="sensor_calibration_do_40">进行校准(误差40%)</string>\r
-    <string name="sensor_calibration_clear">清除校准数据</string>\r
-    <string name="sensor_calibration_note">"   注意:在校准过程中,设备必须处于水平放置状态。"</string>\r
-    <string name="sensor_calibration_intro">"   操作:点击“水平校准”按钮,系统会自动校准,并判断是否成功。点击“清除校准数据”按钮后,校准数据清零,需重新进行水平校准。"</string>\r
-    <string name="sensor_calibration_current_data_hint">加速度传感器当前数据: </string>\r
-    <string name="sensor_calibration_sensor_data_hint">加速度传感器校准数据: </string>\r
-    <string name="sensor_calibration_gsensor">加速度传感器校准</string>\r
-    <string name="record_agin">重新录音</string>\r
-    <string name="bt_tip">请在附近打开蓝牙,观察是否搜索到该蓝牙</string>\r
-    <string name="rf_result">"RF校准标志位:  "</string>\r
-    <string name="rf_gsensor">Rf,Gsensor校准报告</string>\r
-    <string name="sensor_accelerometer1">Gsensor测试</string>\r
-    <string name="sensor_accelerometer2">"Gsensor,"</string>\r
-    <string name="sensor_tip">"       提示:请将机器屏幕分别朝前后左右4个方向,观察箭头变化,只有4个方向都测试通过,才会显示成功。"</string>\r
-    <string name="north">向北</string>\r
-    <string name="sourth">向南</string>\r
-    <string name="weast">向西</string>\r
-    <string name="east">向东</string>\r
-    <string name="gsensor_data">Gsensor参数:</string>\r
-    <string name="auto_tip">该台机器已经做过整机自动测试</string>\r
-    <string name="user_tip">该台机器已经做过PCBA自动测试</string>\r
-    <string name="mic_tip"> "   提示:请选择测试的Mic,然后对着选择的Mic吹气,右图指针转动则判断成功,否则失败。"</string>\r
-    <string name="version_tip"> "显示版本及测试信息"</string>\r
-    <string name="testresult_tip"> "测试结果:"</string>\r
-    <string name="pass_test"> "通过"</string>\r
-    <string name="fail_test"> "未通过"</string>\r
-    <string name="gps_test"> "GPS测试"</string>\r
-    <string name="gsensor_complete"> "Gensor校准"</string>\r
-    <string name="gsensor_20"> "水平校准"</string>\r
-    <string name="gsensor_zhengji"> "整机自动测试: "</string>\r
-    <string name="gsensor_pcba"> "PCBA自动测试: "</string>\r
-    <string name="lamp"> "三色灯 "</string>\r
-    <string name="lamp_tile"> "三色灯测试 "</string>\r
-    <string name="lamp_tip"> "      请观察指示灯颜色变化,如果看到红绿蓝三种颜色依次变化,则判断成功;反之,只看到一种、两种或灯不亮则失败。 "</string>\r
-    <string name="mianmic"> "主Mic测试 "</string>\r
-    <string name="othermic"> "副Mic测试 "</string>\r
-    <string name="button_new"> "按键"</string>\r
-    <string name="leida_new"> "雷达"</string>\r
-    <string name="sigle_new"> "单项测试报告"</string>\r
-    <string name="rf_new"> "Rf校准:"</string>\r
-    <string name="imei_new"> "IMEI号:"</string>\r
-    <string name="lcd_test_new">  "显示屏测试结果" </string>\r
-    <string name="tf_test_new">  "双TF卡" </string>\r
-    <string name="tf_Detect">  "已检测到" </string>\r
-    <string name="tf_UnDetect">  "未检测到" </string>\r
-    <string name="test_over_new">  "测试结束!" </string>\r
-    <string name="lamp_new">  "按键灯" </string>\r
-    <string name="key_result_tip">*提示:点击按键灯测试,观察电源键灯光是否亮起</string>\r
-    <string name="tip1">提示:该界面可进行单项测试</string>\r
-    <string name="mac_new">MAC Addr:</string>\r
-    <string name="bt_tip_new">操作步骤:\n1.准备一台可拨打电话的手机和一台固定电话\n2.使用手机与后视镜蓝牙连接,然后向固话拨打电话,\n3.接通后,两边能正常通话,则通过.</string>\r
-\r
-    <string name="open_dialer">正在打开通话界面,请稍后。。。</string>\r
-    <string name="test_camera">Camera</string>\r
-    <string name="test_sensor">Gravity sensor</string>\r
-    <string name="test_battery">Battery</string>\r
-    <string name="key_ai">AI键</string>\r
-    <string name="test_keypad1">按键1</string>\r
-    <string name="test_keypad2">按键2</string>\r
-    <string name="ultraviolet">紫外线</string>\r
-    <string name="currentTime">currentTime</string>\r
-    <string name="workTime">workTime</string>\r
-    <string name="wifi_mac_addaress">wifi mac addaress</string>\r
-    <string name="bluethooth_mac_addaress">bluethooth mac addaress</string>\r
-    <string name="barcode">barcode</string>\r
-    <string name="flag_position">标志位检查</string>\r
-    <string name="dsp">DSP</string>\r
-    <string name="change_camera">change</string>\r
-    <string name="isWeared">isWeared</string>\r
-    <string name="heartrate">HeartRate</string>\r
-    <string name="no_heartrate">No HeartRate device found!</string>\r
-\r
-    <string name="hall">hall</string>\r
-\r
-\r
-    <string name="gps_full_title">GPS Stat:</string>\r
-    <string name="gps_star_count">Stars:</string>\r
-    <string name="gps_dop">Dop:</string>\r
-    <string name="gps_scan_time">Cost:</string>\r
-    <string name="seconds">Seconds</string>\r
-    <string name="meter">Meters</string>\r
-    <string name="factory_temp_format_text">%1$.2f</string>\r
-    <string name="power_off">shutdown</string>\r
-\r
-</resources>\r
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <string name="project" translatable="false">Kdragon_80_t11</string>
+    <string name="KEY_POWER" translatable="false">false</string>
+    <string name="KEY_VLUP" translatable="false">true</string>
+    <string name="KEY_VLDOWN" translatable="false">true</string>
+    <string name="KEY_SEARCH" translatable="false">false</string>
+    <string name="KEY_HOME" translatable="false">true</string>
+    <string name="KEY_MENU" translatable="false">true</string>
+    <string name="KEY_BACK" translatable="false">true</string>
+    <string name="KEY_CAMERA" translatable="false">false</string>
+    <string name="KEY_EARPHONE" translatable="false">false</string>
+    <string name="timer_format" formatted="false" translatable="false">%02d:%02d</string>
+    <string name="app_name">FactoryMode</string>
+    <string name="otaupdate">OTA Update</string>
+    <string name="light">Light_induction</string>
+    <string name="noLight">Could not get brightness value</string>
+    <string name="defaultlightness">Getting_brightness</string>
+    <string name="lightness">brightness</string>
+    <string name="lightTip">Tip: the phone is positive toward the light source is conducive to faster access to brightness</string>
+    <string name="magnetic">Magnetic_induction</string>
+    <string name="magneticX">Magnetic field x</string>
+    <string name="magneticY">Magnetic field Y</string>
+    <string name="magneticZ">Magnetic field Z</string>
+    <string name="gravity">Gravity induction</string>
+    <string name="gravityX">Gravity x</string>
+    <string name="gravityY">Gravity Y</string>
+    <string name="gravityZ">Gravity Z</string>
+    <string name="shakeTest">Vibration_test</string>
+    <string name="shakeClick">Click_shock</string>
+    <string name="noShake">Does not support the mobile phone vibration</string>
+    <string name="keysTest">Key test</string>
+    <string name="keyPower">Power</string>
+    <string name="keyVLDown">VLUp</string>
+    <string name="keyVLUP">VLDown</string>
+    <string name="keySearch">Search</string>
+    <string name="keyHome">Home</string>
+    <string name="keyMenu">Menu</string>
+    <string name="keyBack">Back</string>
+    <string name="keyCamera">Camera</string>
+    <string name="keyCall">Call</string>
+    <string name="keyEndCall">EndCall</string>
+    <string name="empty">--</string>
+    <string name="detectSim">Sim card detection</string>
+    <string name="detectSim1">Detection Sim1</string>
+    <string name="detectSim2">Detection Sim2</string>
+    <string name="sim1">Sim1</string>
+    <string name="sim2">Sim2</string>
+    <string name="cardTest">SDcardtest</string>
+    <string name="cardAvail">Insert SD card</string>
+    <string name="cardFreeSize">Available space</string>
+    <string name="cardUsedSize">used space</string>
+    <string name="cardTotalSize">SD card capacity</string>
+    <string name="card2TotalSize">SD2 card capacity</string>
+    <string name="checkSum">Checksum</string>
+    <string name="nandFlash">Cell phone memory</string>
+    <string name="manufacturerID">Manufacturer ID</string>
+    <string name="deviceID">device ID</string>
+    <string name="rwTestResult">Read and write test results</string>
+    <string name="signalTest">Signal test</string>
+    <string name="signalRsult">Signal test results</string>
+    <string name="signalTestError">Signal test failure</string>
+    <string name="emergencyCall">Call 112</string>
+    <string name="chinaMoveCall">Call 10086</string>
+    <string name="emergencyCallSuccess">Call an emergency call success</string>
+    <string name="emergencyCallFail">Call emergency failure</string>
+    <string name="headsetTest">Headset test</string>
+    <string name="headsetAvail">There is no headset</string>
+    <string name="startMusic">play</string>
+    <string name="headsetButton">According to the remote control button</string>
+    <string name="gpsTest">GPS location</string>
+    <string name="gpsLongitude">longitude</string>
+    <string name="gpsDimensions">latitude</string>
+    <string name="coldRestart">cold boot</string>
+    <string name="hotRestart">Hot start</string>
+    <string name="noPosition">No geographic information</string>
+    <string name="gpsTTFF">GPS TTFF</string>
+    <string name="gpslocation">Getting GPS location information...</string>
+    <string name="sec">sec</string>
+    <string name="fmTest">Screen brightness</string>
+    <string name="fmSetFreq">channel</string>
+    <string name="rssi">RSSI</string>
+    <string name="mhz">MHZ</string>
+    <string name="dbm">(dBm)</string>
+    <string name="testFreq0">Test Freq 0</string>
+    <string name="testFreq1">Test Freq 1</string>
+    <string name="testFreq2">Test Freq 2</string>
+    <string name="testFreq3">Test Freq 3</string>
+    <string name="bluetooth">Bluetooth test</string>
+    <string name="blState">Bluetooth status</string>
+    <string name="blOpen">Turn on Bluetooth</string>
+    <string name="blOpened">Bluetooth is turned on</string>
+    <string name="blNoSerport">The current phone does not support Bluetooth</string>
+    <string name="bldenied">Bluetooth has been banned</string>
+    <string name="blScan">Bluetooth scan</string>
+    <string name="blScaning">Scanning Bluetooth device</string>
+    <string name="wifitest">WIFI test</string>
+    <string name="wfState">WIFI state</string>
+    <string name="wfOpen">Start WIFI</string>
+    <string name="wfScan">WIFI scan</string>
+    <string name="wfScaning">Is sweeping the hot spots</string>
+    <string name="cameraTest">Camera test</string>
+    <string name="mainCamera">Main camera</string>
+    <string name="subCamera">Vice camera</string>
+    <string name="ringtone">Bell test</string>
+    <string name="ringStart">Click play</string>
+    <string name="receiverTest">Receiver test</string>
+    <string name="loopback">Microphone test</string>
+    <string name="mic1">Mobile phone microphone test</string>
+    <string name="mic2">Headphone microphone test</string>
+    <string name="receiverStart">Click play</string>
+    <string name="colon">:</string>
+    <string name="nothing">nothing</string>
+    <string name="ok">correct</string>
+    <string name="found">find</string>
+    <string name="tsb">Taiwan equipment</string>
+    <string name="returnBack">return</string>
+    <string name="getInfo">Getting information...</string>
+    <string name="noFoundDev">No devices found</string>
+    <string name="noMainC">Rear facing camera is not supported</string>
+    <string name="noSubC">Rear facing camera is not supported</string>
+    <string name="gpsOk">GPS module normal</string>
+    <string name="pleaseOpGps">Please open the GPS first!</string>
+    <string name="waitForpo">Wait for location information</string>
+    <string name="state">state</string>
+    <string name="have">yes</string>
+    <string name="yes">yes</string>
+    <string name="no">no</string>
+    <string name="_fail">Fail</string>
+    <string name="checkFail">Failure detection</string>
+    <string name="rwCheckSuccess">Reading and writing test success</string>
+    <string name="rwCheckFail">Reading and writing test success</string>
+    <string name="dailSuccess">Call success</string>
+    <string name="dailFail">Call failed</string>
+    <string name="grd">A hot spot</string>
+    <string name="foundNoHot">Did not search to the hot spots</string>
+    <string name="openWififail">WIFI startup failed</string>
+    <string name="scanBegin">Start scanning</string>
+    <string name="wifiOpening">Starting WIFI...</string>
+    <string name="wifiOpen">WIFI has been started</string>
+    <string name="noSuportWifi">Does not support WIFI</string>
+    <string name="pleaseInsertHS">Please insert the headset</string>
+    <string name="pleaseOffHS">Please unplug the headset</string>
+    <string name="record">sound recording</string>
+    <string name="recordStart">Is recording</string>
+    <string name="stop">stop it</string>
+    <string name="recordstop">Stop status</string>
+    <string name="play">play</string>
+    <string name="delete">delete</string>
+    <string name="recordFile">Recording file</string>
+    <string name="testTouchScreen">touch screen</string>
+    <string name="TouchScreen">TouchScreen</string>
+    <string name="TouchScreen_HandWriting">TouchScreen_HandWriting</string>
+    <string name="TouchScreen_Verification">TouchScreen_Verification</string>
+    <string name="TouchScreen_VerificationPoint">TouchScreen_VerificationPoint</string>
+    <string name="TouchScreen_VerificationLine">TouchScreen_VerificationLine</string>
+    <string name="TouchScreen_VerificationShaking">TouchScreen_VerificationShaking</string>
+    <string name="TouchScreen_MultiTouch">TouchScreen_MultiTouch</string>
+    <string name="TouchScreen_Settings_TextValue">The value</string>
+    <string name="TouchScreen_Settings_TextSpinner">Category</string>
+    <string name="TouchScreen_Settings_TextSet">Set</string>
+    <string name="TouchScreen_Settings">Settings</string>
+    <string name="TouchScreen_Settings_Value">0</string>
+    <string name="TouchScreen_Settings_sdcard">OFF</string>
+    <string name="TouchScreen_Settings_uart">OFF</string>
+    <string name="TouchScreen_Settings_TextUart">Enable Uart Log</string>
+    <string name="TouchScreen_Settings_TextSDcard">Enable SD card Log</string>
+    <string name="power">Electricity</string>
+    <string name="noPower">Unable to obtain power</string>
+    <string name="nowState">current state</string>
+    <string name="playrecord">Being played</string>
+    <string name="recordFirst">No audio file, please record</string>
+    <string name="palyfinish">Play end</string>
+    <string name="distanceSensor">Distance sensing</string>
+    <string name="noDistanceSensor">No distance sensing information</string>
+    <string name="inDistance">Object approach</string>
+    <string name="outDistance">Object departure</string>
+    <string name="distanceTip">Tip: hand block / leave screen at the top of the test</string>
+    <string name="largestSound">Max volume play</string>
+    <string name="capture">Capture</string>
+    <string name="cameraMotor">Camera motor</string>
+    <string name="pullFar">Pull to the maximum</string>
+    <string name="pullClose">Pull to the minimum</string>
+    <string name="pullLoop">Cycle focus</string>
+    <string name="pullStopLoop">Stop cycle focus</string>
+    <string name="matvTest">TV signal test</string>
+    <string name="press">Hold down</string>
+    <string name="release">let go</string>
+    <string name="lastOne">Last one</string>
+    <string name="nextOne">Next one</string>
+    <string name="singleTest">single test</string>
+    <string name="read_imei">Display IMEI number</string>
+    <string name="modify_imei_sim1">Modify SIM1</string>
+    <string name="modify_imei_sim2">Modify SIM2</string>
+    <string name="input_imei_title">Please enter a new IMEI number</string>
+    <string name="autoTest">Automatic testing自动测试</string>
+    <string name="pcbaTest">PCBA testing</string>
+    <string name="sysVersion">edition</string>
+    <string name="reStore">Restore factory settings</string>
+    <string name="mediaTest">mediaTest</string>
+    <string name="readAPN">APN query</string>
+    <string name="sim_lock_settings">SIM card lock function setting</string>
+    <string name="modify_imei">Modify IMEI number</string>
+    <string name="testReport">Test report测试报告</string>
+    <string name="beginTestGPS">Click start GPS test</string>
+    <string name="beginTestTM">Click start FM test</string>
+    <string name="beginTestCamera">Click to start the camera test</string>
+    <string name="beginTestMtv">Click to start the TV signal test</string>
+    <string name="beginTestCmotor">Click to start the camera motor test</string>
+    <string name="beginTestScreenTouch">beginTestScreenTouch</string>
+    <string name="beginTestMulitScreenTouch">beginTestMulitScreenTouch</string>
+    <string name="testSucess">success</string>
+    <string name="testFail">fail</string>
+    <string name="testReprot">Test report</string>
+    <string name="bbChip">BB Chip</string>
+    <string name="msBoard">MS Board</string>
+    <string name="modemVer">Modem Ver</string>
+    <string name="buildTime">Build Time</string>
+    <string name="buildNumber">Build Number</string>
+    <string name="uBootVer">UBoot Ver</string>
+    <string name="kernelVer">Kernel Ver</string>
+    <string name="androidVer">Android Ver</string>
+    <string name="swVer">SW Ver</string>
+    <string name="verno">Custom Build Verno</string>
+    <string name="deviceInfoDefault">unKnown</string>
+    <string name="isLatestOne">Is the last one</string>
+    <string name="isTopOne">Is the last one</string>
+    <string name="reScan">Re scan</string>
+    <string name="versionTest">Version test</string>
+    <string name="flashLightTest">Flash test</string>
+    <string name="openLight">open</string>
+    <string name="closeLight">close</string>
+    <string name="appsPath">Application path</string>
+    <string name="defaultPath">mnt/sdcard/apps</string>
+    <string name="installPath">Installation location</string>
+    <string name="sdCard">SDCard</string>
+    <string name="phone">mobile phone</string>
+    <string name="startInstall">Start installation</string>
+    <string name="selectInsLocation">Please select the installation location</string>
+    <string name="noApps">No application can be installed</string>
+    <string name="nowInstall">Being installed</string>
+    <string name="submit">determine</string>
+    <string name="unbound_cancel">cancel</string>
+    <string name="installFinish">Installation end</string>
+    <string name="installSoft">Installation software</string>
+    <string name="cmmbTest">mobile TV</string>
+    <string name="bCmmbTest">Click to enter the mobile TV test</string>
+    <string name="setMac">Write WIFI/ Bluetooth MAC address</string>
+    <string name="phoneDetail">Device Status</string>
+    <string name="imei">IMEI</string>
+
+    <string name="imei_invalid">invalid</string>
+    <string name="imei_write_successful">Write IMEI number is successful, please restart the phone into effect!</string>
+    <string name="imei_wirte_fail">Write IMEI number failed, please enter the correct IMEI number!</string>
+    <string name="storage">storage</string>
+    <string name="sdcard_storage">SD card storage available / total</string>
+    <string name="phone_storage">Internal storage available / total</string>
+    <string name="mac">MAC</string>
+    <string name="bt">Bluetooth</string>
+    <string name="wifi">WIFI</string>
+    <string name="checkDir">SD card structure</string>
+    <string name="installedSoft">Installed applications</string>
+    <string name="cpsdcard2">Copy_sdcard2</string>
+    <string name="cpsdcard2Hint">Click OK to copy all the files on the SDCard2 to SDCard, the same name of the file will be covered, to confirm the copy?</string>
+    <string name="cpsdcard2ing">Being copied...</string>
+    <string name="cpsdcard2finish">copy complete</string>
+    <string name="agree">confirm</string>
+    <string name="cancel">close</string>
+    <string name="srcDir">Source directory</string>
+    <string name="tarDir">Target directory</string>
+    <string name="srcPath">/mnt/sdcard2</string>
+    <string name="tarPath">/mnt/sdcard/miki</string>
+    <string name="version_label">Version</string>
+    <string name="sw_label">[SW VERSION]</string>
+    <string name="hw_label">[HW VERSION]</string>
+    <string name="btn_close">Close</string>
+    <string name="sw_and_hw">Version</string>
+    <string name="sn">SN</string>
+    <string name="sn_invalid">Invalid</string>
+    <string name="hw">Cosmote-ver1</string>
+    <string name="sw">Cosmote_</string>
+    <string name="vk_hw">Cosmote-ver1</string>
+    <string name="vk_sw">Cosmote_</string>
+    <string name="no_ota_file">There is no software version found.Please put the software version in the SDcard or internal storage.</string>
+    <string name="update_from_sd">upgrade</string>
+    <string name="update_make_sure_to_continue">This operation is not restored, are you sure?</string>
+    <string name="update_confirm">Yes</string>
+
+    <string name="update_make_sure_and_select_file">This operation is not restored, such as determining if you click on the button to select the upgrade file.</string>
+    <string name="update_select_file">Select file</string>
+    <string name="update_write_file_faild">fail to write to file</string>
+    <string name="update_file_wrong">File type error, or can not find the upgrade file</string>
+    <string name="update_make_sure_to_update">Do you need to upgrade the software?(Please put the software version in the SDcard or internal storage)</string>
+    <string name="TestMedia">TestMedia</string>
+    <string name="sdcardfile">SDcard</string>
+    <string name="buildIn">buildIn</string>
+    <string name="no_compass">No magnetic sensor found</string>
+    <string name="test_tv_SMT">SMT test</string>
+    <string name="test_tv_ZZ">Assembly test</string>
+    <string name="test_tv_Retain">Comprehensive test</string>
+    <string name="apn_mcc">MCC:</string>
+    <string name="apn_mnc">MNC:</string>
+    <string name="imei1">IMEI1</string>
+    <string name="apn_search">Search</string>
+    <string name="lcdTest">LCD</string>
+    <string name="lcdTest_lsn">LCD</string>
+    <string name="phoneTest">Telephone</string>
+    <string name="bgLightTest">Background light test</string>
+    <string name="bgLightStrong">Strong backlight</string>
+    <string name="bgLightWeak">Weak backlight</string>
+    <string name="imei_ok">determine</string>
+    <string name="imei2">imei2</string>
+    <string name="sorry_again">Sorry, your input is not correct. Please try again!</string>
+    <string name="ramTest">Ram</string>
+    <string name="romTest">Rom</string>
+    <string name="ramromTest">Memory!</string>
+    <string name="otgTest">OTG test</string>
+    <string name="otg_disconnect">No OTG device connection</string>
+    <string name="otg_connect">Detecting device</string>
+    <string name="powerBatteryTest">Power charge test</string>
+    <string name="power_charge_battery_state">Charging status</string>
+    <string name="power_current_battery">Current power</string>
+    <string name="power_battery">battery level</string>
+    <string name="power_state">Power state</string>
+    <string name="power_current_voltage">Current voltage</string>
+    <string name="power_temperature">Power supply temperature</string>
+    <string name="power_skill">Power technology</string>
+    <string name="power_electric">Battery terminal current</string>
+    <string name="power_time">Self starting time</string>
+    <string name="battery_info_power_unplugged">Not plugged in</string>
+    <string name="battery_info_power_ac">alternating current</string>
+    <string name="battery_info_power_usb">USB</string>
+    <string name="battery_info_power_wireless">wireless</string>
+    <string name="battery_info_power_ac_usb">alternating current + USB</string>
+    <string name="battery_info_power_unknown">未知</string>
+    <string name="battery_info_health_unknown">unknown</string>
+    <string name="battery_info_health_good">Good</string>
+    <string name="battery_info_health_overheat">overheated</string>
+    <string name="battery_info_health_dead">No electricity</string>
+    <string name="battery_info_health_over_voltage">Over voltage</string>
+    <string name="battery_info_health_unspecified_failure">unknown error</string>
+    <string name="battery_info_health_cold">Low power</string>
+    <string name="battery_info_temperature_units">° C</string>
+    <string name="beginPhoneTest">Click to start the phone test</string>
+    <string name="imeisnTest">IMEI/SN</string>
+    <string name="key_ear">Earphone button</string>
+    <string name="kernel_specified">**********</string>
+    <string name="kernelVer1">Kernel Ver1</string>
+    <string name="sim_lock">SIM card lock function</string>
+    <string name="call_fun">Call test</string>
+    <string name="begincall">Click Start test call</string>
+
+    <string name="battery_status">Battery status : </string>
+    <string name="battery_info_status_charging">Charging</string>
+    <string name="battery_v">Battery voltage : </string>
+    <string name="battery_temp">Battery temperature : </string>
+    <string name="battery_info_status_charging_ac">(AC)</string>
+    <string name="battery_info_status_charging_usb">(USB)</string>
+    <string name="battery_info_status_discharging">Not charging</string>
+    <string name="battery_info_status_not_charging">Not charging</string>
+    <string name="battery_info_status_full">Full</string>
+    <string name="battery_info_status_unknown">Unknown</string>
+    <string name="battery_info_voltage_units">mV</string>
+    <string name="battery_level">Battery level : </string>
+    <string name="battery_health">Battery health : </string>
+
+
+    <string name="battery_charging">Battery Charging Test</string>
+    <string name="ins_gsensor">Please turn over the phone to complete the test!</string>
+    <string name="ins_gsensor_toast">Pass!</string>
+
+    <string name="bt_empty" translatable="false"></string>
+
+    <string name="isZoom_y">PASS!</string>
+
+    <string name="isZoom_n">FAIL!</string>
+    <string name="rf_parameters">rf</string>
+    <string name="simid_parameters">SimSerialNumber</string>
+    <string name="vl_up">VLUp</string>
+    <string name="vl_down">VLDown</string>
+    <string name="sos">miaoSoS</string>
+    <string name="ageing_mode">Ageing mode老化模式</string>
+    <string name="ageing_speaker_test">Speaker test</string>
+    <string name="ageing_lcd_test">LCD test</string>
+    <string name="ageing_camera_test">Camera test</string>
+    <string name="show_volum">To adjust the volume, please click here</string>
+    <string name="brightness_setting">Dimming</string>
+
+    <string name="start_test_new">Start Testing</string>
+    <string name="benji">Factory test</string>
+    <string name="resunme">Reset恢复出厂设置</string>
+    <string name="ensure_power_off">PowerOff确定关机?</string>
+    <string name="tip2">Logo: pass (green), not pass (red), not measured (white)</string>
+
+    <string name="clear_new">Clear the test data</string>
+    <string name="version_new">Version and calibration</string>
+    <string name="touch">Touch screen</string>
+    <string name="light_new">Display screen</string>
+    <string name="camera">Camera</string>
+    <string name="speak">Speaker</string>
+    <string name="mic_title">Microphone</string>
+    <string name="sim_title">SIM card</string>
+    <string name="dual_new">Phone</string>
+    <string name="beiguang_new">Backlight</string>
+    <string name="gps">GPS</string>
+    <string name="tempAdjust">Temperature Adjust 温度校准</string>
+    <string name="temperature">Temperature</string>
+    <string name="no_temperature">No Temperature device found!</string>
+    <string name="anti_check">AntiCheck</string>
+
+    <string name="startRecord">Start recording</string>
+    <string name="stopRecord">Stop recording</string>
+    <string name="startPlay">Start playing</string>
+    <string name="stopPlay">Stop play</string>
+    <string name="engineerMode">Engineering model</string>
+    <string name="more">More settings</string>
+    <string name="unbound">Unbound</string>
+    <string name="showProtocolInfo">ShowProtocolInfo</string>
+    <string name="touchtest_toast">Please touch screen test</string>
+    <string name="testing_lcd">Testing LCD</string>
+    <string name="fail">FAIL</string>
+    <string name="success">SUCCESS</string>
+    <string name="network">network</string>
+    <string name="signal">signal</string>
+    <string name="operator">operator</string>
+    <string name="pcbatest_gps_pass_rules">Pass Rule: one satellite SNR > 30 </string>
+    <string name="ageing_gps_pass_rules">Pass Rule: 3 satellites SNR > 30</string>
+    <string name="gps_pass_rules">Pass Rule: GPS Must Fixed</string>
+    <string name="location_sucess">Location success </string>
+    <string name="location_fail">Location fail</string>
+    <string name="gps_searching">Getting Gps information...</string>
+    <string name="total_memory">Total memory: </string>
+    <string name="avail_memory">Avail memory: </string>
+    <string name="testing_backlight">Testing backlight</string>
+    <string name="lcd_result">LCD Test Results</string>
+    <string name="lcd_result_tip">Please determine whether the screen display is normal</string>
+    <string name="ring_test">Playing music, please listen...</string>
+    <string name="lcdtest_toast">Click to display the brightness progress bar, double-click to exit</string>
+    <string name="speak_toast">please speak</string>
+    <string name="stop_record_toast">Stop recording</string>
+    <string name="playing_toast">Start playing</string>
+    <string name="stop_playing_toast">Stop play</string>
+    <string name="clear_new_wanr">Are you sure to clear the test data </string>
+    <string name="clear_new_yes">confirm </string>
+    <string name="clear_new_no">return</string>
+    <string name="cid">CID</string>
+    <string name="sim_hasRead">Identified</string>
+    <string name="screen_resolution">screenResolution</string>
+    <string name="download_mode">download_mode</string>
+
+    <string name="beginBackCameraTestCmotor">查看后拉摄像头</string>
+    <string name="rf_yes">是</string>
+    <string name="rf_no">否</string>
+    <string name="screen_bright">背光</string>
+    <string name="screen_bright_test">点击开始背光测试</string>
+    <string name="voice_phone_test">点击进入网络电话测试</string>
+    <string name="bluetootheTest">点击进入蓝牙测试</string>
+    <string name="radarTest">点击进入雷达测试</string>
+    <string name="radar">雷达测试</string>
+    <string name="open_radar">打开雷达</string>
+    <string name="close_radar">关闭雷达</string>
+    <!-- <string name="fm_test">FM测试</string> -->
+    <string name="open_fm">打开FM</string>
+    <string name="close_fm">关闭FM</string>
+    <string name="longitude">经度:</string>
+    <string name="latitude">纬度: </string>
+    <string name="brightness_test">屏幕亮度(请拖动滚动条):</string>
+    <string name="acc_test">acc点火测试</string>
+    <string name="brightLight">按键灯测试</string>
+    <string name="fm_isRing">提示:将收音机的频率调至101.0MHZ,测试收音机是否收到音乐,收到则成功,反之则失败。</string>
+    <string name="open_buttonLight">点击打开按键灯</string>
+
+    <string name="beginLCDTM">点击开始LCD测试</string>
+
+    <string name="result">测试结果</string>
+    <!-- <string name="app_name">"测试程序"</string> -->
+    <string name="action_settings">设置</string>
+    <string name="urovo_test">"Testing tools"</string>
+    <string name="model_number">设备型号:</string>
+    <string name="manufacturer">制造商:</string>
+    <string name="release_number">Android版本:</string>
+    <string name="display_number">版本号:</string>
+    <string name="test_category_title">测试选项</string>
+    <string name="device_model_unknown">设备型号未知</string>
+    <string name="device_info_default">未知</string>
+    <string name="refresh_complete">刷新完成</string>
+    <string name="test_next">下一个</string>
+    <string name="test_last">上一个</string>
+    <string name="yes1">Yes</string>
+    <string name="no1">No</string>
+    <string name="ok1">Ok</string>
+    <string name="cancel1">Cancel</string>
+    <string name="openall_title">全部功能模块</string>
+    <string name="openall_summary">打开或关闭全部功能模块</string>
+    <string name="show_alltest_title">显示所有测试选项</string>
+    <string name="show_alltest_summary">主界面显示所有测试选项</string>
+    <string name="setting_title">设置</string>
+    <string name="moblie_test_title">整机测试</string>
+    <string name="Engineer_mode_title">工程模式</string>
+    <string name="map_copy_tools_title">地图拷贝工具</string>
+    <!-- device info -->
+    <string name="deviceinfo_title">设备信息</string>
+    <!-- audio -->
+    <string name="audio_default_music">播放默认音频文件</string>
+    <string name="audio_sdcard_music">扬声器(喇叭)测试</string>
+    <string name="audio_none_music">未找到音频文件</string>
+    <string name="audio_palying_tital">正在播放</string>
+    <string name="unknown_arter">未知</string>
+    <!-- flashlight -->
+    <string name="flashlight_title">闪光灯</string>
+    <string name="flashlight_none">设备无闪光灯</string>
+    <string name="flashlight_on">打开</string>
+    <string name="flashlight_off">关闭</string>
+    <!-- LED -->
+    <string name="led_tite">LED灯测试</string>
+    <string name="led_red_on">红色(ON)</string>
+    <string name="led_red_off">红色(OFF)</string>
+    <string name="led_red">红色</string>
+    <string name="led_blue">蓝色</string>
+    <string name="led_blue_on">蓝色(ON)</string>
+    <string name="led_blue_off">蓝色(OFF)</string>
+    <!-- tests -->
+    <string name="app_name_android">androidtest</string>
+    <string name="test_decive_info">设备</string>
+    <string name="test_lcd">LCD</string>
+    <string name="test_keypad">Key</string>
+    <string name="test_led">LED</string>
+    <string name="test_scanner">扫描头</string>
+    <string name="test_motor">马达</string>
+    <string name="test_audio">音频</string>
+    <string name="test_card">磁条卡</string>
+    <string name="test_wifi">WiFi</string>
+    <string name="test_bluetooth">蓝牙</string>
+    <string name="test_flashlight">闪光灯</string>
+    <string name="test_printer">打印</string>
+    <string name="test_gps">GPS</string>
+    <string name="test_record">麦克风</string>
+    <string name="test_3g">GSM</string>
+    <string name="test_rfid">非接卡</string>
+    <string name="test_icc">IC卡</string>
+    <string name="test_jj">高频</string>
+    <string name="test_cleanall">清除</string>
+    <string name="test_openall">打开全部模块</string>
+    <string name="test_closeall">关闭全部模块</string>
+    <string name="test_specifytest">选择测试</string>
+    <string name="test_alltest">全功能测试</string>
+    <string name="test_agedtest">老化测试</string>
+    <string name="test_noticelabel">请观察PCBA绿灯蓝灯</string>
+
+    <!-- PICC -->
+    <string name="picc_title">PICC测试</string>
+    <string name="picc_hint">请将卡放置在识别区</string>
+    <string name="picc_none">设备不支持FRID刷卡</string>
+
+    <!-- NFC -->
+    <string name="nfc_hint">请将卡放置在识别区</string>
+    <string name="nfc_start">Start</string>
+    <string name="nfc_stop">Stop</string>
+    <string name="nfc_context_title">NFC Test </string>
+    <string name="nfc_title">Test Control</string>
+    <string name="nfctest_info">Please place the NFC test card on the top of the NFC detective area of the device,
+        then press the start button to start testing, the device will output the warning tone after detected the
+        NFC test card. Finally, Press the stop button will stop the test.</string>
+    <string name="nfc_frequency">test gap time(ms):</string>
+    <!-- motortest -->
+    <string name="vibrator_title">震动</string>
+    <string name="app_name_driver">drivertest</string>
+    <string name="start">震动</string>
+    <string name="loginstr">开</string>
+    <string name="logoutstr">关</string>
+    <string name="wifi1">WIFI</string>
+    <string name="wcdma">3G</string>
+    <string name="bluetoothcn">蓝牙</string>
+    <string name="smt">扫描头</string>
+    <string name="motor">马达(MS)</string>
+    <!-- camera -->
+    <string name="record_start">开始录制</string>
+    <string name="record_complete">"录制成功,已保存"</string>
+    <string name="takepic_complete">拍照成功</string>
+    <string name="no_sdcard">未找到sd卡</string>
+    <!-- keypad -->
+    <string name="keypad_title">按键测试</string>
+    <string name="keypad_s1">S1</string>
+    <string name="keypad_s2">S2</string>
+    <string name="keypad_scan">Scan</string>
+    <string name="keypad_dpad_up">Up</string>
+    <string name="keypad_dpad_down">Down</string>
+    <string name="keypad_dpad_left">Left</string>
+    <string name="keypad_dpad_right">Right</string>
+    <string name="keypad_menu">Menu</string>
+    <string name="keypad_esc">Esc</string>
+    <string name="keypad_home">Home</string>
+    <string name="key_0">0</string>
+    <string name="key_1">1</string>
+    <string name="key_2">2</string>
+    <string name="key_3">3</string>
+    <string name="key_4">4</string>
+    <string name="key_5">5</string>
+    <string name="key_6">6</string>
+    <string name="key_7">7</string>
+    <string name="key_8">8</string>
+    <string name="key_9">9</string>
+    <string name="key_point">.</string>
+    <string name="keypad_sft">Sft</string>
+    <string name="keypad_alt">Ctrl</string>
+    <string name="keypad_aa">Aa</string>
+    <string name="keypad_fn">Fn</string>
+    <string name="keypad_ent">Ent</string>
+    <string name="keypad_del">"Del"</string>
+    <string name="keypad_space">"Space"</string>
+    <string name="keypad_power">Power</string>
+    <string name="keypad_asterisk">*</string>
+    <string name="keypad_pound">#</string>
+    <string name="keypad_volup">Volume + </string>
+    <string name="keypad_voldn">Volume - </string>
+    <string name="endaudio">完成</string>
+    <string name="quit">退出</string>
+    <!-- Bluetooth -->
+    <string name="bluetooth_scan">扫描</string>
+    <string name="bluetooth_bonded">已配对的设备</string>
+    <string name="bltooth_descovering">正在搜索周围可用设备...</string>
+    <string name="bluetooth_bonded_none">无已配对设备</string>
+    <string name="bluetooth_connectable">周围可用设备</string>
+    <string name="bluetooth_connectable_none">未检测到可用设备</string>
+    <string name="bluetooth_disable">蓝牙功能未打开</string>
+    <string name="bluetooth_title">蓝牙测试</string>
+    <string name="bluetooth_scan_for_devices">"扫描查找设备"</string>
+    <string name="btscan">手动搜索设备</string>
+    <string name="bluetooth_scan_complete">搜索结束</string>
+    <string name="bluetooth_notfound">蓝牙不可用</string>
+    <!-- Wifi -->
+    <string name="wifi_scan_complete">刷新完成</string>
+    <string name="wifi_state_title">Wifi测试</string>
+    <string name="wifi_state_connected">连接状态</string>
+    <string name="wifi_networks">附近网络</string>
+    <string name="wifi_connected_title">已连接</string>
+    <string name="wifi_unconnected_title">未连接</string>
+    <string name="wifi_scan_none">正在扫描周边wifi,请稍候...</string>
+    <string name="wifi_refresh">刷新</string>
+    <string name="wifi_state_disabling">正在关闭</string>
+    <string name="wifi_state_disabled">WIFI功能未打开,正在开启...</string>
+    <string name="wifi_state_enabling">正在打开</string>
+    <string name="wifi_state_enabled">WIFI功能已打开</string>
+    <string name="wifi_state_unknown">未知</string>
+    <!-- ICC -->
+    <string name="icc_title">IC卡测试</string>
+    <string name="icc_hint">请插IC卡</string>
+    <string name="icc_read">读卡</string>
+    <!-- scanner -->
+    <string name="scannertype_title">扫描头类型:</string>
+    <string name="scan_set">设置扫描头类型:</string>
+    <string name="scan_title">扫描结果</string>
+    <string name="scan_result">扫描结果</string>
+    <string name="set_scanner_model_complete">设置扫描头类型成功</string>
+    <string name="scan_about_msg">This program is the sample application provided
+        with project android-serialport-api. The project is free and open
+        source.\n\nMore information and bug report
+        on:\nhttp://code.google.com/p/android-serialport-api/\n\n- Cédric</string>
+    <string name="scan_error_configuration">Please configure your serial port first.</string>
+    <string name="scan_error_security">You do not have read/write permission to the serial port.</string>
+    <string name="scan_error_unknown">The serial port can not be opened for an unknown reason.</string>
+    <string name="scan_setup">setup</string>
+    <string name="scan_loopback">loopback</string>
+    <string name="scan_about">about</string>
+    <string name="scan_quit">quit</string>
+    <string name="scan_console">console</string>
+    <string name="scan_openscan">打开扫描头</string>
+    <string name="scan_closescan">关闭扫描头</string>
+    <string name="scan_setscan">设置默认参数</string>
+    <!-- 3G -->
+    <string name="wcdmafresh">刷新</string>
+    <string name="wcdmatext">3G测试</string>
+    <string name="options">Advance options</string>
+    <string name="options_save">Save</string>
+    <string name="options_cancle">Cancel</string>
+    <string name="output_dsc">After th barcode</string>
+    <string name="checkbox1_str">Output as keyboard</string>
+    <string name="checkbox2_str">Vibrate</string>
+    <string name="checkbox3_str">Beep</string>
+    <string name="checkbox4_str">Append "enter"</string>
+    <!-- gps -->
+    <string name="title_gps">GPS数据</string>
+    <string name="gps_disable">GPS功能尚未打开</string>
+    <string name="gps_longitude">经度:</string>
+    <string name="gps_latitude">纬度:</string>
+    <string name="gps_speed">速度:</string>
+    <string name="gps_altitude">海拔:</string>
+    <string name="gps_direction">方位:</string>
+    <string name="gps_getloc_failed">"获取地理位置信息失败"</string>
+    <!-- motor -->
+    <string name="motor_vibrator_frequency">震动时间间隔(ms):</string>
+    <string name="motor_vibrator_tm">震动持续时间(ms):</string>
+    <string name="motor_bgvibrator_start">开始</string>
+    <string name="motor_bgvibrator_stop">结束</string>
+    <string name="motor_notfound">设备不支持震动</string>
+    <!-- sensor -->
+    <string name="sensor_options">设备支持感应器</string>
+    <string name="sensor_gravity">重力感应器</string>
+    <string name="sensor_accelerometer">加速度感应器</string>
+    <string name="sensor_light">光线感应器</string>
+    <string name="sensor_data_null">未能获取感应器数据</string>
+    <!-- magnetic stripe card -->
+    <string name="mag_result_title">刷卡数据统计</string>
+    <string name="mag_hint">请刷磁条卡</string>
+    <!-- Please brush magnetic stripe card -->
+    <string name="count_total_title">刷卡次数:</string>
+    <string name="count_track1_title">磁道1成功次数:</string>
+    <string name="count_track2_title">磁道2成功次数:</string>
+    <string name="count_track3_title">磁道3成功次数:</string>
+    <string name="card_data">磁条卡信息</string>
+    <string name="card_data_wrong">错误信息</string>
+    <!-- print -->
+    <string name="print_context">请输入需打印内容</string>
+    <string name="printer_context_title">编辑打印内容</string>
+    <string name="printer_title">打印</string>
+    <string name="printer_temp">"打印机温度: "</string>
+    <!-- Printers temperature: -->
+    <string name="bt_print_pic">打印图片</string>
+    <!-- print Pic -->
+    <string name="bt_print_code">打印编码</string>
+    <!-- print Code -->
+    <string name="bt_print_text">打印文字</string>
+    <!-- print Text -->
+    <string name="print_hint">请输入打印内容</string>
+    <!-- recorder -->
+    <string name="none_file">未找到录音文件</string>
+    <string name="none_recorded_file">尚未录音</string>
+    <string name="recorder_menu_title">录音</string>
+    <string name="recorder_files">录音文件</string>
+
+    <!-- gsm -->
+    <string name="gsm_title">GSM信息</string>
+    <string name="gsm_refresh">刷新</string>
+    <string name="gsm_info_none">未能获取GSM信息</string>
+
+    <!-- battery -->
+    <string name="title_power">电源状态</string>
+    <string name="title_battery">电池状态</string>
+    <string name="battery_info_status_label" msgid="8109155295509700309">"电池状态:"</string>
+    <string name="battery_info_power_label" msgid="7465140230991349382">"是否已插电:"</string>
+    <string name="battery_info_scale_label" msgid="3649763192389778437">"当前电池电量:"</string>
+    <string name="battery_info_level_label" msgid="8706526709307788737">"上限电池电量:"</string>
+    <string name="battery_info_health_label" msgid="6416051542741886958">"电池运行状况:"</string>
+    <string name="battery_info_technology_label" msgid="788304533220748681">"电池技术:"</string>
+    <string name="battery_info_voltage_label" msgid="8971764146757637863">"电池电压:"</string>
+    <!-- <string name="battery_info_voltage_units" msgid="8658490792208288107">"mV"</string> -->
+    <string name="battery_info_temperature_label" msgid="1968383098818648037">"电池温度:"</string>
+    <!-- <string name="battery_info_temperature_units" msgid="9098950587249987550">"° C"</string> -->
+    <string name="battery_info_uptime" msgid="5548545143573527992">"启动后的时间:"</string>
+    <string name="battery_info_awake_battery" msgid="2557725975486185849">"使用电池电量的未休眠时间:"</string>
+    <string name="battery_info_awake_plugged" msgid="176716874713478188">"充电时的唤醒时间:"</string>
+    <string name="battery_info_screen_on" msgid="376277447175613889">"屏幕开启时间:"</string>
+    <!--
+    <string name="battery_info_status_unknown" msgid="196130600938058547">"未知"</string>
+    <string name="battery_info_status_charging" msgid="1705179948350365604">"正在充电"</string>
+    <string name="battery_info_status_charging_ac" msgid="5874340256342956252">"(交流电)"</string>
+    <string name="battery_info_status_charging_usb" msgid="4059070156126770959">"(USB)"</string>
+    <string name="battery_info_status_discharging" msgid="6222697503392774475">"正在耗电"</string>
+    <string name="battery_info_status_not_charging" msgid="2820070506621483576">"未在充电"</string>
+    <string name="battery_info_status_full" msgid="2824614753861462808">"电量充足"</string>
+    <string name="battery_info_power_unplugged" msgid="5987246575519551081">"未插电"</string>
+    <string name="battery_info_power_ac" msgid="6808516193001604634">"交流电"</string>
+    <string name="battery_info_power_usb" msgid="8012931702516331797">"USB"</string>
+    <string name="battery_info_power_ac_usb" msgid="6777734146838328688">"交流电 + USB"</string>
+    <string name="battery_info_power_unknown" msgid="7344115502868899881">"未知"</string>
+    <string name="battery_info_health_unknown" msgid="5664295556921944255">"未知"</string>
+    <string name="battery_info_health_good" msgid="8070356565806711806">"正常"</string>
+    <string name="battery_info_health_overheat" msgid="8442959549291368806">"过热"</string>
+    <string name="battery_info_health_dead" msgid="1725917445762829059">"没电"</string>
+    <string name="battery_info_health_over_voltage" msgid="2420269351664490121">"过电压"</string>
+    <string name="battery_info_health_unspecified_failure" msgid="6347021103185471590">"未知错误"</string>
+    <string name="battery_info_health_cold" msgid="3835692786176707318">"电量低"</string>
+
+
+
+
+    -->
+    <string name="battery_technology_unknwn">"未知"</string>
+    <!-- <string name="light">"亮屏了"</string> -->
+    <string name="black">"灭屏了"</string>
+    <string name="slide"> "请滑动屏幕测试"</string>
+    <string name="music_is_run"> "音乐正在播放"</string>
+    <string name="sd_status"> "SD状态:已检测到SD卡"</string>
+    <string name="sd_tatal"> "总容量:"</string>
+    <string name="sd_left">  "剩余容量:" </string>
+    <string name="sd_used">  "已用容量:" </string>
+    <string name="sd_fail">  "SD状态:未检测到SD卡!" </string>
+    <string name="set_tag">  "测试完成,将写入标志位" </string>
+    <string name="sim_status">  "SIM状态:SIM 就绪" </string>
+    <string name="sim_fail">  "SIM状态:无SIM或SIM卡损坏" </string>
+    <string name="china_yidong"> "中国移动"</string>
+    <string name="china_lintong"> "中国联通"</string>
+    <string name="china_dianxin">  "中国电信" </string>
+    <string name="sim_fail1">  "SIM卡过期" </string>
+    <string name="gongcheng">  "工厂测试" </string>
+    <string name="moshi">  "工程模式" </string>
+    <string name="shintool">  "地图拷贝工具" </string>
+    <string name="lanya">  "蓝牙测试" </string>
+    <string name="lanya_open">  " 蓝牙设备已开启" </string>
+    <string name="car_staut">  " 摄像头\n测试结果" </string>
+    <string name="start_test">  "开始测试" </string>
+    <string name="fm_test">  "FM发射器测试" </string>
+    <string name="fm_status">  " FM状态:" </string>
+    <string name="fm_tip">  "      提示:将收音机频率调至108.0MHZ,测试收音机是否收到音乐,收到则成功,反之则失败。" </string>
+    <string name="light_test">  "   灭/亮屏测试" </string>
+    <string name="light_tip">  "    提示:请按电源键,测试灭/亮屏和电源键,是否正常" </string>
+    <string name="light_status">  " 状态:" </string>
+    <string name="sd_test">  "SD卡测试" </string>
+    <string name="sim_test">  " SIM卡测试" </string>
+    <string name="sim_type">  "网络类型" </string>
+    <string name="sim_strenth">  "信号强度:" </string>
+    <string name="test1">  "PCBA自动测试" </string>
+    <string name="test2">  "整机自动测试" </string>
+    <string name="sd_title">"SD卡" </string>
+    <string name="fm_title">"FM发射" </string>
+    <string name="light_title">"灭/亮屏" </string>
+    <string name="bt_r">"蓝牙," </string>
+    <string name="touch_r">"触摸屏," </string>
+    <string name="sim_r">"sim卡," </string>
+    <string name="sd_r">"SD卡," </string>
+    <string name="mic_r">"双MIC," </string>
+    <string name="speak_r">"扬声器," </string>
+    <string name="camera_r">"摄像头," </string>
+    <string name="fm_r">"FM发射," </string>
+    <string name="light_r">"灭/亮屏," </string>
+    <string name="barry_r">"电池," </string>
+    <string name="pass_r">"已通过的项目:" </string>
+    <string name="fail_r">"未通过的项目:" </string>
+    <string name="tag_r">"本机NV标志位(1代表通过,0代表未通过):" </string>
+    <string name="diglog_r">"请按下图测试,点击任意处,取消该窗口,开始测试" </string>
+    <string name="test_r">"测试报告" </string>
+    <string name="close_r">"关闭" </string>
+    <string name="none">"没有测试记录,完成一次PCBA测试,添加记录" </string>
+    <string name="none1">"没有测试记录,完成一次整机自动测试,添加记录" </string>
+    <string name="none2">"没有校准记录" </string>
+    <string name="jiaju">"PCBA自动测试报告" </string>
+    <string name="auto">"整机自动测试报告" </string>
+    <string name="jiaju_time">"最近测试时间:" </string>
+    <string name="tags">"标志位(按测试顺序):" </string>
+    <string name="test_over">"测试完成,将写入标志位" </string>
+    <string name="picturing">"正在拍照" </string>
+    <string name="recording">"正在录像,请晃动机器测试" </string>
+    <string name="pic_over">"拍照完成" </string>
+    <string name="write_tag_over">" 已经写入标志位" </string>
+    <string name="record1">"录像" </string>
+    <string name="photo">"停止" </string>
+    <string name="deviceInfo">"版本信息" </string>
+    <string name="gsensor">"Gsensor测试" </string>
+    <string name="sensor">请旋转手机或屏幕</string>
+    <string name="read_data">读取数据</string>
+    <string name="sensor_calibration_do_20">进行校准(误差20%)</string>
+    <string name="sensor_calibration_do_40">进行校准(误差40%)</string>
+    <string name="sensor_calibration_clear">清除校准数据</string>
+    <string name="sensor_calibration_note">"   注意:在校准过程中,设备必须处于水平放置状态。"</string>
+    <string name="sensor_calibration_intro">"   操作:点击“水平校准”按钮,系统会自动校准,并判断是否成功。点击“清除校准数据”按钮后,校准数据清零,需重新进行水平校准。"</string>
+    <string name="sensor_calibration_current_data_hint">加速度传感器当前数据: </string>
+    <string name="sensor_calibration_sensor_data_hint">加速度传感器校准数据: </string>
+    <string name="sensor_calibration_gsensor">加速度传感器校准</string>
+    <string name="record_agin">重新录音</string>
+    <string name="bt_tip">请在附近打开蓝牙,观察是否搜索到该蓝牙</string>
+    <string name="rf_result">"RF校准标志位:  "</string>
+    <string name="rf_gsensor">Rf,Gsensor校准报告</string>
+    <string name="sensor_accelerometer1">Gsensor测试</string>
+    <string name="sensor_accelerometer2">"Gsensor,"</string>
+    <string name="sensor_tip">"       提示:请将机器屏幕分别朝前后左右4个方向,观察箭头变化,只有4个方向都测试通过,才会显示成功。"</string>
+    <string name="north">向北</string>
+    <string name="sourth">向南</string>
+    <string name="weast">向西</string>
+    <string name="east">向东</string>
+    <string name="gsensor_data">Gsensor参数:</string>
+    <string name="auto_tip">该台机器已经做过整机自动测试</string>
+    <string name="user_tip">该台机器已经做过PCBA自动测试</string>
+    <string name="mic_tip"> "   提示:请选择测试的Mic,然后对着选择的Mic吹气,右图指针转动则判断成功,否则失败。"</string>
+    <string name="version_tip"> "显示版本及测试信息"</string>
+    <string name="testresult_tip"> "测试结果:"</string>
+    <string name="pass_test"> "通过"</string>
+    <string name="fail_test"> "未通过"</string>
+    <string name="gps_test"> "GPS测试"</string>
+    <string name="gsensor_complete"> "Gensor校准"</string>
+    <string name="gsensor_20"> "水平校准"</string>
+    <string name="gsensor_zhengji"> "整机自动测试: "</string>
+    <string name="gsensor_pcba"> "PCBA自动测试: "</string>
+    <string name="lamp"> "三色灯 "</string>
+    <string name="lamp_tile"> "三色灯测试 "</string>
+    <string name="lamp_tip"> "      请观察指示灯颜色变化,如果看到红绿蓝三种颜色依次变化,则判断成功;反之,只看到一种、两种或灯不亮则失败。 "</string>
+    <string name="mianmic"> "主Mic测试 "</string>
+    <string name="othermic"> "副Mic测试 "</string>
+    <string name="button_new"> "按键"</string>
+    <string name="leida_new"> "雷达"</string>
+    <string name="sigle_new"> "单项测试报告"</string>
+    <string name="rf_new"> "Rf校准:"</string>
+    <string name="imei_new"> "IMEI号:"</string>
+    <string name="lcd_test_new">  "显示屏测试结果" </string>
+    <string name="tf_test_new">  "双TF卡" </string>
+    <string name="tf_Detect">  "已检测到" </string>
+    <string name="tf_UnDetect">  "未检测到" </string>
+    <string name="test_over_new">  "测试结束!" </string>
+    <string name="lamp_new">  "按键灯" </string>
+    <string name="key_result_tip">*提示:点击按键灯测试,观察电源键灯光是否亮起</string>
+    <string name="tip1">提示:该界面可进行单项测试</string>
+    <string name="mac_new">MAC Addr:</string>
+    <string name="bt_tip_new">操作步骤:\n1.准备一台可拨打电话的手机和一台固定电话\n2.使用手机与后视镜蓝牙连接,然后向固话拨打电话,\n3.接通后,两边能正常通话,则通过.</string>
+
+    <string name="open_dialer">正在打开通话界面,请稍后。。。</string>
+    <string name="test_camera">Camera</string>
+    <string name="test_sensor">Gravity sensor</string>
+    <string name="test_battery">Battery</string>
+    <string name="key_ai">AIKey</string>
+    <string name="test_keypad1">Key1</string>
+    <string name="test_keypad2">Key2</string>
+    <string name="ultraviolet">紫外线</string>
+    <string name="currentTime">currentTime</string>
+    <string name="workTime">workTime</string>
+    <string name="wifi_mac_addaress">wifi mac addaress</string>
+    <string name="bluethooth_mac_addaress">bluethooth mac addaress</string>
+    <string name="barcode">barcode</string>
+    <string name="flag_position">标志位检查</string>
+    <string name="dsp">DSP</string>
+    <string name="change_camera">change</string>
+    <string name="isWeared">isWeared</string>
+    <string name="heartrate">HeartRate</string>
+    <string name="no_heartrate">No HeartRate device found!</string>
+
+    <string name="hall">hall</string>
+
+
+    <string name="gps_full_title">GPS Stat:</string>
+    <string name="gps_star_count">Stars:</string>
+    <string name="gps_dop">Dop:</string>
+    <string name="gps_scan_time">Cost:</string>
+    <string name="seconds">Seconds</string>
+    <string name="meter">Meters</string>
+    <string name="factory_temp_format_text">%1$.2f</string>
+    <string name="power_off">shutdown</string>
+
+</resources>
index f9b6ebe..2644fbc 100644 (file)
@@ -1,2 +1,2 @@
-#Thu Dec 03 17:53:23 CST 2020
-VERSION_CODE=56
+#Mon Dec 21 18:03:48 CST 2020
+VERSION_CODE=57