更新定位协议,根据模式决定是否采用GPS优先
authorsnickersun <scy@incartech.cn>
Thu, 9 Jan 2020 15:20:22 +0000 (23:20 +0800)
committersnickersun <scy@incartech.cn>
Thu, 9 Jan 2020 15:20:22 +0000 (23:20 +0800)
36 files changed:
.gradle/5.4.1/executionHistory/executionHistory.bin
.gradle/5.4.1/executionHistory/executionHistory.lock
.gradle/5.4.1/fileHashes/fileHashes.bin
.gradle/5.4.1/fileHashes/fileHashes.lock
.gradle/5.4.1/fileHashes/resourceHashesCache.bin
.gradle/5.4.1/javaCompile/classAnalysis.bin
.gradle/5.4.1/javaCompile/javaCompile.lock
.gradle/5.4.1/javaCompile/taskHistory.bin
.gradle/buildOutputCleanup/buildOutputCleanup.lock
.gradle/buildOutputCleanup/outputFiles.bin
.idea/caches/build_file_checksums.ser
.idea/caches/gradle_models.ser
.idea/misc.xml
.idea/workspace.xml
app/app.iml
app/debug/output.json [deleted file]
app/src/main/AndroidManifest.xml
app/src/main/java/com/ic/protocol/Constants.java
app/src/main/java/com/ic/protocol/LocationClient.java
app/src/main/java/com/ic/protocol/MainActivity.java
app/src/main/java/com/ic/protocol/adapter/LBSHelper.java
app/src/main/java/com/ic/protocol/adapter/protocolAPIHelper.java
app/src/main/java/com/ic/protocol/bean/Config.java [deleted file]
app/src/main/java/com/ic/protocol/bean/ICLocation.java
app/src/main/java/com/ic/protocol/service/CheckSIM.java
app/src/main/java/com/ic/protocol/service/KeepAlive.java
app/src/main/java/com/ic/protocol/service/connectionServer.java [deleted file]
app/src/main/java/com/ic/protocol/service/protocolMainServer.java
app/src/main/java/com/ic/protocol/utils/AlarmHelper.java
app/src/main/java/com/ic/protocol/utils/CellInfoUtil.java
app/src/main/java/com/ic/protocol/utils/NettyConnection.java
app/src/main/java/com/ic/protocol/utils/RxSocket.java
app/src/main/res/layout/activity_main.xml
build/intermediates/lint-cache/api-versions-0-29.0.4.bin [new file with mode: 0644]
build/intermediates/lint-cache/typos-en.txt-2.bin [new file with mode: 0644]
local.properties

index cbf75be..82e76a2 100644 (file)
Binary files a/.gradle/5.4.1/executionHistory/executionHistory.bin and b/.gradle/5.4.1/executionHistory/executionHistory.bin differ
index 06770aa..d924b88 100644 (file)
Binary files a/.gradle/5.4.1/executionHistory/executionHistory.lock and b/.gradle/5.4.1/executionHistory/executionHistory.lock differ
index b3b20a9..f6ca503 100644 (file)
Binary files a/.gradle/5.4.1/fileHashes/fileHashes.bin and b/.gradle/5.4.1/fileHashes/fileHashes.bin differ
index 31040f2..453d317 100644 (file)
Binary files a/.gradle/5.4.1/fileHashes/fileHashes.lock and b/.gradle/5.4.1/fileHashes/fileHashes.lock differ
index 4e06977..6544497 100644 (file)
Binary files a/.gradle/5.4.1/fileHashes/resourceHashesCache.bin and b/.gradle/5.4.1/fileHashes/resourceHashesCache.bin differ
index e9caf05..2087f74 100644 (file)
Binary files a/.gradle/5.4.1/javaCompile/classAnalysis.bin and b/.gradle/5.4.1/javaCompile/classAnalysis.bin differ
index 539ba53..afd4fc7 100644 (file)
Binary files a/.gradle/5.4.1/javaCompile/javaCompile.lock and b/.gradle/5.4.1/javaCompile/javaCompile.lock differ
index 228a51e..8c3a7f5 100644 (file)
Binary files a/.gradle/5.4.1/javaCompile/taskHistory.bin and b/.gradle/5.4.1/javaCompile/taskHistory.bin differ
index e1036d6..57222f8 100644 (file)
Binary files a/.gradle/buildOutputCleanup/buildOutputCleanup.lock and b/.gradle/buildOutputCleanup/buildOutputCleanup.lock differ
index e57da57..54f9a0e 100644 (file)
Binary files a/.gradle/buildOutputCleanup/outputFiles.bin and b/.gradle/buildOutputCleanup/outputFiles.bin differ
index ef7cb6a..d5b2fbf 100644 (file)
Binary files a/.idea/caches/build_file_checksums.ser and b/.idea/caches/build_file_checksums.ser differ
index 66c73d9..221b03f 100644 (file)
Binary files a/.idea/caches/gradle_models.ser and b/.idea/caches/gradle_models.ser differ
index 6f32454..6fd9e2b 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>\r
 <project version="4">\r
-  <component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" project-jdk-name="1.8" project-jdk-type="JavaSDK">\r
+  <component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" project-jdk-name="JDK" project-jdk-type="JavaSDK">\r
     <output url="file://$PROJECT_DIR$/build/classes" />\r
   </component>\r
   <component name="ProjectType">\r
index 6752a98..a2d0e8f 100644 (file)
       <change beforePath="$PROJECT_DIR$/.gradle/5.4.1/executionHistory/executionHistory.lock" beforeDir="false" afterPath="$PROJECT_DIR$/.gradle/5.4.1/executionHistory/executionHistory.lock" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/.gradle/5.4.1/fileHashes/fileHashes.bin" beforeDir="false" afterPath="$PROJECT_DIR$/.gradle/5.4.1/fileHashes/fileHashes.bin" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/.gradle/5.4.1/fileHashes/fileHashes.lock" beforeDir="false" afterPath="$PROJECT_DIR$/.gradle/5.4.1/fileHashes/fileHashes.lock" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/.gradle/5.4.1/fileHashes/resourceHashesCache.bin" beforeDir="false" afterPath="$PROJECT_DIR$/.gradle/5.4.1/fileHashes/resourceHashesCache.bin" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/.gradle/5.4.1/javaCompile/classAnalysis.bin" beforeDir="false" afterPath="$PROJECT_DIR$/.gradle/5.4.1/javaCompile/classAnalysis.bin" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/.gradle/5.4.1/javaCompile/javaCompile.lock" beforeDir="false" afterPath="$PROJECT_DIR$/.gradle/5.4.1/javaCompile/javaCompile.lock" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/.gradle/5.4.1/javaCompile/taskHistory.bin" beforeDir="false" afterPath="$PROJECT_DIR$/.gradle/5.4.1/javaCompile/taskHistory.bin" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/.gradle/buildOutputCleanup/buildOutputCleanup.lock" beforeDir="false" afterPath="$PROJECT_DIR$/.gradle/buildOutputCleanup/buildOutputCleanup.lock" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/.gradle/buildOutputCleanup/outputFiles.bin" beforeDir="false" afterPath="$PROJECT_DIR$/.gradle/buildOutputCleanup/outputFiles.bin" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/.idea/caches/build_file_checksums.ser" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/caches/build_file_checksums.ser" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/.idea/caches/gradle_models.ser" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/caches/gradle_models.ser" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/.idea/misc.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/misc.xml" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/app/app.iml" beforeDir="false" afterPath="$PROJECT_DIR$/app/app.iml" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/app/src/main/java/com/ic/protocol/Config.java" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/ic/protocol/Config.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/app/debug/output.json" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/app/src/main/AndroidManifest.xml" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/AndroidManifest.xml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/app/src/main/java/com/ic/protocol/Constants.java" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/ic/protocol/Constants.java" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/app/src/main/java/com/ic/protocol/LocationClient.java" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/ic/protocol/LocationClient.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/app/src/main/java/com/ic/protocol/NMEAListener.java" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/ic/protocol/NMEAListener.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/app/src/main/java/com/ic/protocol/MainActivity.java" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/ic/protocol/MainActivity.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/app/src/main/java/com/ic/protocol/adapter/LBSHelper.java" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/ic/protocol/adapter/LBSHelper.java" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/app/src/main/java/com/ic/protocol/adapter/protocolAPIHelper.java" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/ic/protocol/adapter/protocolAPIHelper.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/app/src/main/java/com/ic/protocol/bean/Config.java" beforeDir="false" />
       <change beforePath="$PROJECT_DIR$/app/src/main/java/com/ic/protocol/bean/ICLocation.java" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/ic/protocol/bean/ICLocation.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/app/src/main/java/com/ic/protocol/service/CheckSIM.java" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/ic/protocol/service/CheckSIM.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/app/src/main/java/com/ic/protocol/service/KeepAlive.java" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/ic/protocol/service/KeepAlive.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/app/src/main/java/com/ic/protocol/service/connectionServer.java" beforeDir="false" />
       <change beforePath="$PROJECT_DIR$/app/src/main/java/com/ic/protocol/service/protocolMainServer.java" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/ic/protocol/service/protocolMainServer.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/app/src/main/java/com/ic/protocol/utils/BatteryUtil.java" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/ic/protocol/utils/BatteryUtil.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/app/src/main/java/com/ic/protocol/utils/AlarmHelper.java" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/ic/protocol/utils/AlarmHelper.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/app/src/main/java/com/ic/protocol/utils/CellInfoUtil.java" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/ic/protocol/utils/CellInfoUtil.java" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/app/src/main/java/com/ic/protocol/utils/NettyConnection.java" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/ic/protocol/utils/NettyConnection.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/app/src/main/java/com/ic/protocol/utils/RxSocket.java" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/ic/protocol/utils/RxSocket.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/app/src/main/res/layout/activity_main.xml" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/res/layout/activity_main.xml" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/local.properties" beforeDir="false" afterPath="$PROJECT_DIR$/local.properties" afterDir="false" />
     </list>
     <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
@@ -42,7 +57,7 @@
   <component name="DefaultGradleProjectSettings">
     <option name="isMigrated" value="true" />
   </component>
-  <component name="ExecutionTargetManager" SELECTED_TARGET="867155030002145" />
+  <component name="ExecutionTargetManager" SELECTED_TARGET="867155030001063" />
   <component name="ExternalProjectsData">
     <projectState path="$PROJECT_DIR$">
       <ProjectState />
   <component name="ExternalProjectsManager">
     <system id="GRADLE">
       <state>
-        <projects_view />
+        <task path="$PROJECT_DIR$">
+          <activation />
+        </task>
+        <task path="$PROJECT_DIR$/app">
+          <activation />
+        </task>
+        <task path="$PROJECT_DIR$/okio">
+          <activation />
+        </task>
+        <projects_view>
+          <tree_state>
+            <expand>
+              <path>
+                <item name="" type="6a2764b6:ExternalProjectsStructure$RootNode" />
+                <item name="icsupport" type="f1a62948:ProjectNode" />
+              </path>
+              <path>
+                <item name="" type="6a2764b6:ExternalProjectsStructure$RootNode" />
+                <item name="icsupport" type="f1a62948:ProjectNode" />
+                <item name="icsupport" type="2d1252cf:ModuleNode" />
+              </path>
+              <path>
+                <item name="" type="6a2764b6:ExternalProjectsStructure$RootNode" />
+                <item name="icsupport" type="f1a62948:ProjectNode" />
+                <item name="icsupport" type="2d1252cf:ModuleNode" />
+                <item name="Tasks" type="e4a08cd1:TasksNode" />
+              </path>
+              <path>
+                <item name="" type="6a2764b6:ExternalProjectsStructure$RootNode" />
+                <item name="icsupport" type="f1a62948:ProjectNode" />
+                <item name="app" type="2d1252cf:ModuleNode" />
+              </path>
+              <path>
+                <item name="" type="6a2764b6:ExternalProjectsStructure$RootNode" />
+                <item name="icsupport" type="f1a62948:ProjectNode" />
+                <item name="app" type="2d1252cf:ModuleNode" />
+                <item name="Tasks" type="e4a08cd1:TasksNode" />
+              </path>
+              <path>
+                <item name="" type="6a2764b6:ExternalProjectsStructure$RootNode" />
+                <item name="icsupport" type="f1a62948:ProjectNode" />
+                <item name="app" type="2d1252cf:ModuleNode" />
+                <item name="Tasks" type="e4a08cd1:TasksNode" />
+                <item name="android" type="c8890929:TasksNode$1" />
+              </path>
+              <path>
+                <item name="" type="6a2764b6:ExternalProjectsStructure$RootNode" />
+                <item name="icsupport" type="f1a62948:ProjectNode" />
+                <item name="app" type="2d1252cf:ModuleNode" />
+                <item name="Tasks" type="e4a08cd1:TasksNode" />
+                <item name="build" type="c8890929:TasksNode$1" />
+              </path>
+            </expand>
+            <select />
+          </tree_state>
+        </projects_view>
       </state>
     </system>
   </component>
   <component name="FileEditorManager">
     <leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
       <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/app/src/main/java/com/ic/protocol/adapter/LBSHelper.java">
+        <entry file="file://$PROJECT_DIR$/app/src/main/java/com/ic/protocol/service/protocolMainServer.java">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="-4630">
-              <caret line="79" column="21" selection-start-line="79" selection-start-column="21" selection-end-line="79" selection-end-column="21" />
+            <state relative-caret-position="150">
+              <caret line="655" column="60" selection-start-line="655" selection-start-column="60" selection-end-line="655" selection-end-column="60" />
+              <folding>
+                <element signature="imports" expanded="true" />
+                <element signature="e#4992#6055#0" expanded="true" />
+                <element signature="e#6054#6055#0" expanded="true" />
+                <element signature="e#33051#33052#0" expanded="true" />
+                <element signature="e#33148#33149#0" expanded="true" />
+                <element signature="e#31779#31780#0" expanded="true" />
+                <element signature="e#31817#31818#0" expanded="true" />
+                <element signature="e#35069#35217#0" expanded="true" />
+                <element signature="e#35216#35217#0" expanded="true" />
+                <element signature="e#33373#33374#0" expanded="true" />
+                <element signature="e#33400#33401#0" expanded="true" />
+                <element signature="e#38920#38921#0" expanded="true" />
+              </folding>
             </state>
           </provider>
         </entry>
       </file>
       <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/app/src/main/java/com/ic/protocol/NMEAListener.java">
+        <entry file="file://$PROJECT_DIR$/app/src/main/java/com/ic/protocol/adapter/LBSHelper.java">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="355">
-              <caret line="71" selection-start-line="71" selection-end-line="71" />
+            <state relative-caret-position="-1293">
+              <caret line="228" column="18" selection-start-line="228" selection-start-column="18" selection-end-line="228" selection-end-column="18" />
+              <folding>
+                <element signature="e#8801#8802#0" expanded="true" />
+                <element signature="e#8844#8845#0" expanded="true" />
+              </folding>
             </state>
           </provider>
         </entry>
       </file>
       <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/app/src/main/java/com/ic/protocol/utils/ServiceUtil.java">
+        <entry file="file://$PROJECT_DIR$/app/src/main/java/com/ic/protocol/utils/CellInfoUtil.java">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="209">
-              <caret line="38" column="23" selection-start-line="38" selection-start-column="23" selection-end-line="38" selection-end-column="23" />
+            <state relative-caret-position="36">
+              <caret line="79" selection-start-line="79" selection-end-line="79" />
               <folding>
-                <element signature="imports" expanded="true" />
+                <element signature="e#797#1120#0" expanded="true" />
+                <element signature="e#1119#1120#0" expanded="true" />
+                <element signature="e#1548#1549#0" expanded="true" />
+                <element signature="e#1565#1566#0" expanded="true" />
               </folding>
             </state>
           </provider>
         </entry>
       </file>
-      <file pinned="false" current-in-tab="true">
-        <entry file="file://$PROJECT_DIR$/app/src/main/java/com/ic/protocol/LocationClient.java">
+      <file pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/app/src/main/java/com/ic/protocol/adapter/protocolAPIHelper.java">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="-1861">
-              <caret line="85" column="35" selection-start-line="85" selection-start-column="16" selection-end-line="85" selection-end-column="35" />
+            <state relative-caret-position="321">
+              <caret line="376" column="37" lean-forward="true" selection-start-line="376" selection-start-column="37" selection-end-line="376" selection-end-column="37" />
               <folding>
                 <element signature="imports" expanded="true" />
               </folding>
         </entry>
       </file>
       <file pinned="false" current-in-tab="false">
-        <entry file="jar://$USER_HOME$/AppData/Local/Android/Sdk/platforms/android-25/android.jar!/android/os/Handler.class">
+        <entry file="file://$PROJECT_DIR$/app/src/main/java/com/ic/protocol/utils/NettyConnection.java">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="197">
-              <caret line="101" selection-start-line="101" selection-end-line="101" />
+            <state relative-caret-position="488">
+              <caret line="79" column="44" selection-start-line="79" selection-start-column="44" selection-end-line="79" selection-end-column="44" />
             </state>
           </provider>
         </entry>
       </file>
       <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/app/src/main/java/com/ic/protocol/service/protocolMainServer.java">
+        <entry file="file://$PROJECT_DIR$/app/src/main/java/com/ic/protocol/bean/Runtime.java">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="-18">
-              <caret line="648" column="5" lean-forward="true" selection-start-line="648" selection-start-column="5" selection-end-line="648" selection-end-column="5" />
+            <state relative-caret-position="185">
+              <caret line="96" column="2" lean-forward="true" selection-start-line="96" selection-start-column="2" selection-end-line="96" selection-end-column="2" />
               <folding>
-                <element signature="imports" expanded="true" />
+                <element signature="e#8809#8810#0" expanded="true" />
+                <element signature="e#8830#8831#0" expanded="true" />
               </folding>
             </state>
           </provider>
         </entry>
       </file>
-      <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/app/src/main/java/com/ic/protocol/adapter/protocolAPIHelper.java">
+      <file pinned="false" current-in-tab="true">
+        <entry file="file://$PROJECT_DIR$/app/src/main/java/com/ic/protocol/LocationClient.java">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="2518">
-              <caret line="358" column="54" lean-forward="true" selection-start-line="358" selection-start-column="54" selection-end-line="358" selection-end-column="54" />
+            <state relative-caret-position="349">
+              <caret line="737" selection-start-line="737" selection-end-line="737" />
               <folding>
-                <element signature="e#18169#18170#0" expanded="true" />
-                <element signature="e#18202#18203#0" expanded="true" />
-                <element signature="e#18260#18261#0" expanded="true" />
-                <element signature="e#18293#18294#0" expanded="true" />
+                <element signature="imports" expanded="true" />
+                <element signature="e#13500#13501#0" expanded="true" />
+                <element signature="e#13536#13537#0" expanded="true" />
               </folding>
             </state>
           </provider>
         </entry>
       </file>
       <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/app/src/main/java/com/ic/protocol/utils/NettyConnection.java">
+        <entry file="file://$PROJECT_DIR$/app/src/main/java/com/ic/protocol/utils/SharPreferenceUtil.java">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="432">
-              <caret line="77" column="75" selection-start-line="77" selection-start-column="59" selection-end-line="77" selection-end-column="75" />
+            <state relative-caret-position="304">
+              <caret line="18" column="5" lean-forward="true" selection-start-line="18" selection-start-column="5" selection-end-line="18" selection-end-column="5" />
             </state>
           </provider>
         </entry>
       </file>
       <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/app/src/main/java/com/ic/protocol/MySqlitOpenHelper.java">
+        <entry file="file://$PROJECT_DIR$/app/src/main/java/com/ic/protocol/service/KeepAlive.java">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="95">
-              <caret line="9" column="13" selection-start-line="9" selection-start-column="13" selection-end-line="9" selection-end-column="13" />
+            <state relative-caret-position="137">
+              <caret line="246" column="21" selection-start-line="246" selection-start-column="21" selection-end-line="246" selection-end-column="21" />
+              <folding>
+                <element signature="imports" expanded="true" />
+              </folding>
             </state>
           </provider>
         </entry>
       </file>
       <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/app/src/main/java/com/ic/protocol/bean/Runtime.java">
+        <entry file="file://$PROJECT_DIR$/app/src/main/java/com/ic/protocol/bean/StringMessage.java">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="152">
-              <caret line="326" column="19" selection-start-line="326" selection-start-column="9" selection-end-line="326" selection-end-column="19" />
-              <folding>
-                <element signature="e#8809#8810#0" expanded="true" />
-                <element signature="e#8830#8831#0" expanded="true" />
-              </folding>
+            <state relative-caret-position="295">
+              <caret line="32" column="23" selection-start-line="32" selection-start-column="23" selection-end-line="32" selection-end-column="23" />
             </state>
           </provider>
         </entry>
   </component>
   <component name="FindInProjectRecents">
     <findStrings>
-      <find>CurrentCellInfo</find>
-      <find>RxSocket</find>
-      <find>\\r</find>
-      <find>keep</find>
-      <find>onopen</find>
-      <find>initial</find>
-      <find>delive</find>
-      <find>FileOutputUtil</find>
-      <find>getExternalCacheDir</find>
-      <find>mCallStateIsIdle</find>
-      <find>BATTERY</find>
-      <find>onCreate</find>
-      <find>onClose</find>
-      <find>HEART_ALARM alarmCycle</find>
-      <find>onDes</find>
+      <find>isLocating</find>
+      <find>timer</find>
+      <find>startCheckResult</find>
+      <find>updateCe</find>
+      <find>update</find>
+      <find>sensor or listener</find>
+      <find>mHandler</find>
+      <find>mCellInfo</find>
+      <find>updatewo</find>
+      <find>serviceutil.off</find>
+      <find>ServiceUtil.offerQueue</find>
+      <find>handler</find>
+      <find>retryTimer</find>
+      <find>DIS_CONNECT</find>
+      <find>location</find>
+      <find>cellinf</find>
+      <find>startConnectionRetryTimer</find>
+      <find>retry</find>
+      <find>setHEARTALARM</find>
+      <find>Heart_AlARM</find>
+      <find>startlocationprocess</find>
+      <find>disconn</find>
+      <find>setHeartAl</find>
       <find>setHeartAlarm</find>
-      <find>onStartCommand</find>
-      <find>睡眠</find>
-      <find>sleepAlarm</find>
-      <find>SharPreferenceUtil</find>
-      <find>triggerSendThread</find>
-      <find>workmo</find>
-      <find>Timer</find>
-      <find>AP85</find>
-      <find>timeout</find>
-      <find>trig</find>
-      <find>trigger</find>
-      <find>ResartHeartAlarm</find>
-      <find>sw</find>
-      <find>mythread</find>
+      <find>shared</find>
+      <find>split</find>
+      <find>setLocation_cycle</find>
+      <find>startgps</find>
+      <find>sta</find>
+      <find>startlocationpro</find>
     </findStrings>
     <replaceStrings>
       <replace>stop</replace>
       <replace>GPS_CURRENT_STATUS</replace>
       <replace>AP16</replace>
       <replace>sendCMDMessage</replace>
+      <replace>connection.send</replace>
     </replaceStrings>
   </component>
   <component name="GenerateSignedApkSettings">
     <option name="CHANGED_PATHS">
       <list>
         <option value="$PROJECT_DIR$/app/src/main/java/com/ic/protocol/service/SynchronousTime.java" />
-        <option value="$PROJECT_DIR$/app/src/main/java/com/ic/protocol/utils/AlarmHelper.java" />
         <option value="$PROJECT_DIR$/gradle/wrapper/gradle-wrapper.properties" />
         <option value="$PROJECT_DIR$/app/build.gradle" />
         <option value="$PROJECT_DIR$/app/src/main/java/com/ic/protocol/utils/RunCMD.java" />
         <option value="$PROJECT_DIR$/app/src/main/java/com/ic/protocol/utils/AlarmWakeUp.java" />
         <option value="$PROJECT_DIR$/app/src/main/java/com/ic/protocol/utils/Logger.java" />
         <option value="$PROJECT_DIR$/app/src/main/java/com/ic/protocol/GSensorListener.java" />
-        <option value="$PROJECT_DIR$/app/src/main/AndroidManifest.xml" />
         <option value="$PROJECT_DIR$/app/src/main/java/com/ic/protocol/utils/ContextProxy.java" />
         <option value="$PROJECT_DIR$/app/src/main/java/com/ic/protocol/service/Deliver.java" />
         <option value="$PROJECT_DIR$/app/src/main/java/com/ic/protocol/service/UpLoadDataPoints.java" />
         <option value="$PROJECT_DIR$/app/src/main/java/com/ic/protocol/utils/Util.java" />
-        <option value="$PROJECT_DIR$/app/src/main/java/com/ic/protocol/utils/CellInfoUtil.java" />
-        <option value="$PROJECT_DIR$/app/src/main/java/com/ic/protocol/adapter/LBSHelper.java" />
-        <option value="$PROJECT_DIR$/app/src/main/java/com/ic/protocol/utils/RxSocket.java" />
         <option value="$PROJECT_DIR$/app/src/main/java/com/ic/protocol/bean/Runtime.java" />
         <option value="$PROJECT_DIR$/app/src/main/java/com/ic/protocol/utils/ServiceUtil.java" />
-        <option value="$PROJECT_DIR$/app/src/main/java/com/ic/protocol/MainActivity.java" />
-        <option value="$PROJECT_DIR$/app/src/main/res/layout/activity_main.xml" />
-        <option value="$PROJECT_DIR$/app/src/main/java/com/ic/protocol/service/KeepAlive.java" />
         <option value="$PROJECT_DIR$/app/src/main/java/com/ic/protocol/service/Initialize.java" />
         <option value="$PROJECT_DIR$/app/src/main/java/com/ic/protocol/utils/BatteryUtil.java" />
-        <option value="$PROJECT_DIR$/app/src/main/java/com/ic/protocol/service/protocolMainServer.java" />
         <option value="$PROJECT_DIR$/app/src/main/java/com/ic/protocol/Config.java" />
+        <option value="$PROJECT_DIR$/app/src/main/java/com/ic/protocol/NMEAListener.java" />
+        <option value="$PROJECT_DIR$/app/src/main/java/com/ic/protocol/bean/Config.java" />
+        <option value="$PROJECT_DIR$/app/src/main/java/com/ic/protocol/MainActivity.java" />
+        <option value="$PROJECT_DIR$/app/src/main/res/layout/activity_main.xml" />
+        <option value="$PROJECT_DIR$/app/src/main/java/com/ic/protocol/bean/ICLocation.java" />
+        <option value="$PROJECT_DIR$/app/src/main/java/com/ic/protocol/utils/AlarmHelper.java" />
+        <option value="$PROJECT_DIR$/app/src/main/java/com/ic/protocol/Constants.java" />
+        <option value="$PROJECT_DIR$/app/src/main/java/com/ic/protocol/adapter/LBSHelper.java" />
+        <option value="$PROJECT_DIR$/app/src/main/java/com/ic/protocol/service/CheckSIM.java" />
+        <option value="$PROJECT_DIR$/app/src/main/java/com/ic/protocol/utils/RxSocket.java" />
+        <option value="$PROJECT_DIR$/app/src/main/AndroidManifest.xml" />
+        <option value="$PROJECT_DIR$/app/src/main/java/com/ic/protocol/utils/CellInfoUtil.java" />
+        <option value="$PROJECT_DIR$/app/src/main/java/com/ic/protocol/service/KeepAlive.java" />
         <option value="$PROJECT_DIR$/app/src/main/java/com/ic/protocol/utils/NettyConnection.java" />
         <option value="$PROJECT_DIR$/app/src/main/java/com/ic/protocol/adapter/protocolAPIHelper.java" />
-        <option value="$PROJECT_DIR$/app/src/main/java/com/ic/protocol/bean/ICLocation.java" />
-        <option value="$PROJECT_DIR$/app/src/main/java/com/ic/protocol/NMEAListener.java" />
+        <option value="$PROJECT_DIR$/app/src/main/java/com/ic/protocol/service/protocolMainServer.java" />
         <option value="$PROJECT_DIR$/app/src/main/java/com/ic/protocol/LocationClient.java" />
       </list>
     </option>
   </component>
-  <component name="ProjectFrameBounds" extendedState="7">
-    <option name="x" value="670" />
-    <option name="y" value="38" />
+  <component name="ProjectFrameBounds" extendedState="6">
+    <option name="x" value="29" />
+    <option name="y" value="111" />
     <option name="width" value="964" />
     <option name="height" value="784" />
   </component>
     </navigator>
     <panes>
       <pane id="ProjectPane" />
+      <pane id="Scope" />
       <pane id="PackagesPane" />
       <pane id="AndroidView">
         <subPane>
               <item name="protocol" type="cbb59c9e:AndroidPsiDirectoryNode" />
               <item name="service" type="462c0819:PsiDirectoryNode" />
             </path>
+            <path>
+              <item name="icsupport" type="1abcf292:AndroidViewProjectNode" />
+              <item name="app" type="feadf853:AndroidModuleNode" />
+              <item name="java" type="edd41e36:AndroidSourceTypeNode" />
+              <item name="protocol" type="cbb59c9e:AndroidPsiDirectoryNode" />
+              <item name="service" type="462c0819:PsiDirectoryNode" />
+              <item name="base" type="462c0819:PsiDirectoryNode" />
+            </path>
             <path>
               <item name="icsupport" type="1abcf292:AndroidViewProjectNode" />
               <item name="app" type="feadf853:AndroidModuleNode" />
               <item name="protocol" type="cbb59c9e:AndroidPsiDirectoryNode" />
               <item name="utils" type="462c0819:PsiDirectoryNode" />
             </path>
+            <path>
+              <item name="icsupport" type="1abcf292:AndroidViewProjectNode" />
+              <item name="app" type="feadf853:AndroidModuleNode" />
+              <item name="res" type="d4f16f75:AndroidResFolderNode" />
+            </path>
+            <path>
+              <item name="icsupport" type="1abcf292:AndroidViewProjectNode" />
+              <item name="app" type="feadf853:AndroidModuleNode" />
+              <item name="res" type="d4f16f75:AndroidResFolderNode" />
+              <item name="layout" type="ddeffd01:AndroidResFolderTypeNode" />
+            </path>
             <path>
               <item name="icsupport" type="1abcf292:AndroidViewProjectNode" />
               <item name="Gradle Scripts" type="ae0cef3a:AndroidBuildScriptsGroupNode" />
           <select />
         </subPane>
       </pane>
-      <pane id="Scope" />
     </panes>
   </component>
   <component name="PropertiesComponent">
-    <property name="DEBUGGABLE_DEVICE" value="sprd-c41_l02_wgd-867155030002145" />
+    <property name="DEBUGGABLE_DEVICE" value="sprd-c41_l02_wgd-867155030001063" />
     <property name="DEBUGGABLE_PROCESS" value="com.ic.protocol" />
     <property name="DEBUGGER_ID" value="Auto" />
     <property name="ExportApk.ApkPath" value="D:\workspace\icsupport\app" />
       </list>
     </option>
   </component>
-  <component name="RunManager">
+  <component name="RunManager" selected="Android App.app">
     <configuration default="true" type="AndroidJUnit" factoryName="Android JUnit">
       <option name="TEST_OBJECT" value="class" />
       <option name="WORKING_DIRECTORY" value="$MODULE_DIR$" />
         <option name="Android.Gradle.BeforeRunTask" enabled="true" />
       </method>
     </configuration>
+    <configuration name="icsupport:app [build]" type="GradleRunConfiguration" factoryName="Gradle" temporary="true">
+      <ExternalSystemSettings>
+        <option name="executionName" />
+        <option name="externalProjectPath" value="$PROJECT_DIR$/app" />
+        <option name="externalSystemIdString" value="GRADLE" />
+        <option name="scriptParameters" />
+        <option name="taskDescriptions">
+          <list />
+        </option>
+        <option name="taskNames">
+          <list>
+            <option value="build" />
+          </list>
+        </option>
+        <option name="vmOptions" />
+      </ExternalSystemSettings>
+      <GradleScriptDebugEnabled>true</GradleScriptDebugEnabled>
+      <method v="2" />
+    </configuration>
+    <recent_temporary>
+      <list>
+        <item itemvalue="Gradle.icsupport:app [build]" />
+      </list>
+    </recent_temporary>
   </component>
   <component name="SvnConfiguration">
     <configuration />
     </todo-panel>
   </component>
   <component name="ToolWindowManager">
-    <frame x="-8" y="-8" width="1936" height="1056" extended-state="6" />
-    <editor active="true" />
+    <frame x="-8" y="-8" width="1858" height="1096" extended-state="6" />
     <layout>
-      <window_info id="Captures" order="0" sideWeight="0.22176592" side_tool="true" visible="true" weight="0.26012793" />
-      <window_info content_ui="combo" id="Project" order="1" sideWeight="0.77823406" visible="true" weight="0.26012793" />
-      <window_info id="Structure" order="2" sideWeight="0.21818182" side_tool="true" weight="0.26028922" />
-      <window_info id="Favorites" order="3" sideWeight="0.21818182" side_tool="true" weight="0.26028922" />
-      <window_info id="Build Variants" order="4" sideWeight="0.21818182" side_tool="true" weight="0.26028922" />
+      <window_info id="Captures" order="0" sideWeight="0.22259696" side_tool="true" visible="true" weight="0.13070078" />
+      <window_info content_ui="combo" id="Project" order="1" sideWeight="0.77740306" visible="true" weight="0.13070078" />
+      <window_info id="Structure" order="2" sideWeight="0.22102009" side_tool="true" weight="0.13070078" />
+      <window_info id="Favorites" order="3" sideWeight="0.22102009" side_tool="true" weight="0.13070078" />
+      <window_info id="Build Variants" order="4" sideWeight="0.22102009" side_tool="true" weight="0.13070078" />
       <window_info id="Image Layers" order="5" />
       <window_info id="Designer" order="6" />
       <window_info id="Resources Explorer" order="7" sideWeight="0.49717513" weight="0.3298109" />
       <window_info id="Capture Tool" order="8" />
-      <window_info anchor="bottom" id="Run" order="0" weight="0.32952183" />
-      <window_info anchor="bottom" auto_hide="true" x="96" y="344" width="1798" height="456" id="Logcat" order="1" sideWeight="0.63570637" weight="0.52603036" />
+      <window_info anchor="bottom" id="Run" order="0" sideWeight="0.49721915" weight="0.58627856" />
+      <window_info active="true" anchor="bottom" auto_hide="true" x="96" y="344" width="1798" height="456" id="Logcat" order="1" sideWeight="0.5839822" visible="true" weight="0.3835759" />
       <window_info anchor="bottom" id="TODO" order="2" weight="0.3286334" />
-      <window_info active="true" anchor="bottom" id="Find" order="3" sideWeight="0.48164627" visible="true" weight="0.47180045" />
-      <window_info anchor="bottom" id="Terminal" order="4" sideWeight="0.49499443" weight="0.3275488" />
-      <window_info anchor="bottom" id="Event Log" order="5" sideWeight="0.36429366" side_tool="true" weight="0.44802496" />
+      <window_info anchor="bottom" id="Find" order="3" sideWeight="0.46941045" weight="0.47089398" />
+      <window_info anchor="bottom" id="Terminal" order="4" sideWeight="0.49276975" weight="0.32744282" />
+      <window_info anchor="bottom" id="Event Log" order="5" sideWeight="0.42992213" side_tool="true" weight="0.32744282" />
       <window_info anchor="bottom" id="Version Control" order="6" sideWeight="0.49944383" weight="0.32952183" />
-      <window_info anchor="bottom" id="Build" order="7" sideWeight="0.49276975" weight="0.21041214" />
-      <window_info anchor="bottom" id="Debug" order="8" sideWeight="0.4938821" weight="0.3275488" />
+      <window_info anchor="bottom" id="Build" order="7" sideWeight="0.4916574" weight="0.14137214" />
+      <window_info anchor="bottom" id="Debug" order="8" sideWeight="0.57007784" weight="0.32744282" />
       <window_info anchor="bottom" id="Android Profiler" order="9" />
-      <window_info anchor="right" id="Device File Explorer" order="0" side_tool="true" />
+      <window_info anchor="right" id="Preview" />
+      <window_info anchor="right" id="Device File Explorer" order="0" sideWeight="0.5007728" side_tool="true" weight="0.3298109" />
       <window_info anchor="right" id="Capture Analysis" order="1" />
-      <window_info anchor="right" id="Gradle" order="2" />
+      <window_info anchor="right" id="Gradle" order="2" sideWeight="0.4992272" weight="0.3298109" />
       <window_info anchor="right" id="Theme Preview" order="3" />
       <window_info anchor="right" id="Palette&#9;" order="4" />
     </layout>
       <breakpoints>
         <line-breakpoint enabled="true" type="java-line">
           <url>file://$PROJECT_DIR$/app/src/main/java/com/ic/protocol/LocationClient.java</url>
-          <line>350</line>
+          <line>346</line>
           <properties />
           <option name="timeStamp" value="6" />
         </line-breakpoint>
           <properties />
           <option name="timeStamp" value="17" />
         </line-breakpoint>
+        <line-breakpoint enabled="true" type="java-line">
+          <url>file://$PROJECT_DIR$/app/src/main/java/com/ic/protocol/LocationClient.java</url>
+          <line>728</line>
+          <properties />
+          <option name="timeStamp" value="24" />
+        </line-breakpoint>
       </breakpoints>
     </breakpoint-manager>
-    <watches-manager>
-      <configuration name="app">
-        <watch expression="ds.getWifiInfo()" language="JAVA" />
-        <watch expression="arrayOfString1[5]" language="JAVA" />
-        <watch expression="mRuntime.getCellinfo()" language="JAVA" />
-        <watch expression="mRuntime.getMccAndMnc()" language="JAVA" />
-        <watch expression="mRuntime.getCdmaInfo()" language="JAVA" />
-        <watch expression="ds.getLBSData()" language="JAVA" />
-        <watch expression="CellInfoUtil.getMNC()" language="JAVA" />
-        <watch expression="mRuntime.getGsmInfo()" language="JAVA" />
-        <watch expression="String.valueOf(CellInfoUtil.getMNC())" language="JAVA" />
-        <watch expression="CellInfoUtil.getCELL_ID()" language="JAVA" />
-        <watch expression="String.valueOf(CellInfoUtil.getMCC())" language="JAVA" />
-        <watch expression="CellInfoUtil.getLAC()" language="JAVA" />
-        <watch expression="runtime.getLocationInstance()" language="JAVA" />
-        <watch expression="gpsp.getLocationStat()" language="JAVA" />
-        <watch expression="gpsp.getLocationStat() " language="JAVA" />
-      </configuration>
-    </watches-manager>
   </component>
   <component name="debuggerHistoryManager">
     <expressions id="watch">
+      <expression>
+        <expression-string>paramStringMessage.cmd()</expression-string>
+        <language-id>JAVA</language-id>
+        <evaluation-mode>EXPRESSION</evaluation-mode>
+      </expression>
       <expression>
         <expression-string>arrayOfString1[5]</expression-string>
         <language-id>JAVA</language-id>
         <language-id>JAVA</language-id>
         <evaluation-mode>EXPRESSION</evaluation-mode>
       </expression>
-      <expression>
-        <expression-string>CellInfoUtil.getLAC()</expression-string>
-        <language-id>JAVA</language-id>
-        <evaluation-mode>EXPRESSION</evaluation-mode>
-      </expression>
     </expressions>
   </component>
   <component name="editorHistoryManager">
-    <entry file="jar://$USER_HOME$/AppData/Local/Android/Sdk/platforms/android-25/android.jar!/android/content/Context.class">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="159">
-          <caret line="298" column="25" selection-start-line="298" selection-start-column="25" selection-end-line="298" selection-end-column="25" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/app/src/main/java/com/ic/protocol/utils/ContextProxy.java">
+    <entry file="jar://$USER_HOME$/AppData/Local/Android/Sdk/platforms/android-25/android.jar!/java/net/StandardSocketOptions.class">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="-1809">
-          <caret line="170" column="58" selection-start-line="170" selection-start-column="42" selection-end-line="170" selection-end-column="58" />
+        <state relative-caret-position="190">
+          <caret line="13" column="58" selection-start-line="13" selection-start-column="46" selection-end-line="13" selection-end-column="58" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/app/src/main/java/com/ic/protocol/utils/Connection.java">
+    <entry file="jar://$USER_HOME$/AppData/Local/Android/Sdk/platforms/android-25/android.jar!/java/util/Timer.class">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="133">
-          <caret line="7" column="7" selection-start-line="7" selection-start-column="7" selection-end-line="7" selection-end-column="7" />
+        <state relative-caret-position="323">
+          <caret line="32" column="16" selection-start-line="32" selection-start-column="16" selection-end-line="32" selection-end-column="16" />
         </state>
       </provider>
     </entry>
-    <entry file="jar://$USER_HOME$/AppData/Local/Android/Sdk/platforms/android-25/android.jar!/java/net/InetAddress.class">
+    <entry file="file://$PROJECT_DIR$/app/src/main/java/com/ic/protocol/GSensorListener.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="159">
-          <caret line="75" column="18" selection-start-line="75" selection-start-column="18" selection-end-line="75" selection-end-column="18" />
-          <folding>
-            <element signature="e#1783#1784#0" expanded="true" />
-            <element signature="e#1834#1835#0" expanded="true" />
-          </folding>
+        <state relative-caret-position="436">
+          <caret line="108" column="3" selection-start-line="108" selection-start-column="3" selection-end-line="108" selection-end-column="3" />
         </state>
       </provider>
     </entry>
-    <entry file="jar://$USER_HOME$/AppData/Local/Android/Sdk/platforms/android-25/android.jar!/android/location/LocationManager.class">
+    <entry file="file://$PROJECT_DIR$/app/src/main/java/com/ic/protocol/service/Initialize.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="133">
-          <caret line="17" column="31" selection-start-line="17" selection-start-column="31" selection-end-line="17" selection-end-column="31" />
+        <state relative-caret-position="150">
+          <caret line="59" column="20" selection-start-line="59" selection-start-column="20" selection-end-line="59" selection-end-column="20" />
         </state>
       </provider>
     </entry>
-    <entry file="jar://$USER_HOME$/AppData/Local/Android/Sdk/platforms/android-25/android.jar!/android/provider/Settings.class">
+    <entry file="file://$PROJECT_DIR$/app/src/main/java/com/ic/protocol/service/Deliver.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="243">
-          <caret line="397" column="59" selection-start-line="397" selection-start-column="33" selection-end-line="397" selection-end-column="59" />
+        <state relative-caret-position="283">
+          <caret line="112" column="24" selection-start-line="112" selection-start-column="24" selection-end-line="112" selection-end-column="24" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/app/src/main/java/com/ic/protocol/utils/StepCounterInterface.java">
+    <entry file="file://$PROJECT_DIR$/app/src/main/java/com/ic/protocol/ICContentProvider.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="379">
-          <caret line="43" column="34" selection-start-line="43" selection-start-column="34" selection-end-line="43" selection-end-column="34" />
+        <state relative-caret-position="-95">
+          <caret line="29" column="45" lean-forward="true" selection-start-line="29" selection-start-column="45" selection-end-line="29" selection-end-column="45" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/app/src/main/java/com/ic/protocol/utils/SharPreferenceUtil.java">
+    <entry file="file://$PROJECT_DIR$/app/src/main/java/com/ic/protocol/ICApplication.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="76">
-          <caret line="6" column="13" selection-start-line="6" selection-start-column="13" selection-end-line="6" selection-end-column="13" />
+        <state relative-caret-position="171">
+          <caret line="18" column="13" selection-start-line="18" selection-start-column="13" selection-end-line="18" selection-end-column="13" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/app/src/main/java/com/ic/protocol/bean/Locations.java">
+    <entry file="file://$PROJECT_DIR$/app/src/main/java/com/ic/protocol/utils/Util.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="37">
-          <caret line="6" column="13" selection-start-line="6" selection-start-column="13" selection-end-line="6" selection-end-column="13" />
+        <state relative-caret-position="80">
+          <caret line="54" column="47" selection-start-line="54" selection-start-column="47" selection-end-line="54" selection-end-column="47" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/app/src/main/java/com/ic/protocol/utils/ConnectionListener.java">
+    <entry file="file://$PROJECT_DIR$/app/src/main/java/com/ic/protocol/utils/Logger.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="190">
-          <caret line="10" column="7" selection-start-line="10" selection-start-column="7" selection-end-line="10" selection-end-column="7" />
+        <state relative-caret-position="-437">
+          <caret line="4" column="13" selection-start-line="4" selection-start-column="13" selection-end-line="4" selection-end-column="13" />
         </state>
       </provider>
     </entry>
-    <entry file="jar://$USER_HOME$/AppData/Local/Android/Sdk/platforms/android-25/android.jar!/java/util/concurrent/LinkedBlockingDeque.class">
+    <entry file="file://$PROJECT_DIR$/app/src/main/java/com/ic/protocol/utils/FileCache.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="-12">
-          <caret line="138" column="13" selection-start-line="138" selection-start-column="13" selection-end-line="138" selection-end-column="13" />
+        <state relative-caret-position="-182">
+          <caret line="27" column="29" lean-forward="true" selection-start-line="27" selection-start-column="29" selection-end-line="27" selection-end-column="29" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/app/src/main/java/com/ic/protocol/service/UpLoadDataPoints.java">
+    <entry file="file://$PROJECT_DIR$/app/src/main/java/com/ic/protocol/utils/FileOutputUtil.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="308">
-          <caret line="141" column="47" lean-forward="true" selection-start-line="141" selection-start-column="47" selection-end-line="141" selection-end-column="47" />
+        <state relative-caret-position="-541">
+          <caret line="25" column="47" lean-forward="true" selection-start-line="25" selection-start-column="47" selection-end-line="25" selection-end-column="47" />
         </state>
       </provider>
     </entry>
-    <entry file="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/71856ddd748344c89a323fa69958dc46/TestModules-v1.0.16/jars/classes.jar!/chestnut/utils/PhoneUtils.class">
+    <entry file="jar://$USER_HOME$/AppData/Local/Android/Sdk/platforms/android-25/android.jar!/java/lang/Enum.class">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="178">
-          <caret line="38" column="63" selection-start-line="38" selection-start-column="63" selection-end-line="38" selection-end-column="63" />
+        <state relative-caret-position="152">
+          <caret line="30" column="21" selection-start-line="30" selection-start-column="21" selection-end-line="30" selection-end-column="21" />
+          <folding>
+            <element signature="e#727#728#0" expanded="true" />
+            <element signature="e#778#779#0" expanded="true" />
+          </folding>
         </state>
       </provider>
     </entry>
-    <entry file="jar://$USER_HOME$/AppData/Local/Android/Sdk/platforms/android-25/android.jar!/java/net/SocketOption.class">
+    <entry file="jar://$USER_HOME$/AppData/Local/Android/Sdk/platforms/android-25/android.jar!/android/app/Service.class">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="76">
-          <caret line="7" column="17" selection-start-line="7" selection-start-column="17" selection-end-line="7" selection-end-column="17" />
+        <state relative-caret-position="152">
+          <caret line="46" column="15" selection-start-line="46" selection-start-column="15" selection-end-line="46" selection-end-column="15" />
         </state>
       </provider>
     </entry>
-    <entry file="jar://$USER_HOME$/AppData/Local/Android/Sdk/platforms/android-25/android.jar!/java/nio/channels/SocketChannel.class">
+    <entry file="file://$PROJECT_DIR$/app/src/main/java/com/ic/protocol/service/base/AbstractConnectionService.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="159">
-          <caret line="35" column="51" lean-forward="true" selection-start-line="35" selection-start-column="51" selection-end-line="35" selection-end-column="51" />
+        <state relative-caret-position="94">
+          <caret line="26" column="24" selection-start-line="26" selection-start-column="24" selection-end-line="26" selection-end-column="24" />
         </state>
       </provider>
     </entry>
-    <entry file="jar://$USER_HOME$/AppData/Local/Android/Sdk/platforms/android-25/android.jar!/java/net/SocketOptions.class">
+    <entry file="file://$PROJECT_DIR$/app/src/main/java/com/ic/protocol/MySqlitOpenHelper.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="76">
-          <caret line="7" column="27" selection-start-line="25" selection-start-column="11" selection-end-line="25" selection-end-column="20" />
+        <state relative-caret-position="95">
+          <caret line="9" column="13" selection-start-line="9" selection-start-column="13" selection-end-line="9" selection-end-column="13" />
         </state>
       </provider>
     </entry>
-    <entry file="jar://$USER_HOME$/AppData/Local/Android/Sdk/platforms/android-25/android.jar!/java/net/StandardSocketOptions.class">
+    <entry file="file://$PROJECT_DIR$/app/src/main/java/com/ic/protocol/NMEAListener.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="190">
-          <caret line="13" column="58" selection-start-line="13" selection-start-column="46" selection-end-line="13" selection-end-column="58" />
+        <state relative-caret-position="355">
+          <caret line="71" selection-start-line="71" selection-end-line="71" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/app/src/main/java/com/ic/protocol/utils/RxSocket.java">
+    <entry file="file://$PROJECT_DIR$/app/src/main/java/com/ic/protocol/utils/ServiceUtil.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="564">
-          <caret line="380" column="8" selection-start-line="380" selection-start-column="8" selection-end-line="380" selection-end-column="8" />
-          <folding>
-            <element signature="imports" expanded="true" />
-          </folding>
+        <state relative-caret-position="496">
+          <caret line="47" selection-start-line="47" selection-end-line="47" />
         </state>
       </provider>
     </entry>
-    <entry file="jar://$USER_HOME$/AppData/Local/Android/Sdk/platforms/android-25/android.jar!/java/util/Timer.class">
+    <entry file="file://$PROJECT_DIR$/app/src/main/java/com/ic/protocol/service/connectionServer.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="323">
-          <caret line="32" column="16" selection-start-line="32" selection-start-column="16" selection-end-line="32" selection-end-column="16" />
+        <state relative-caret-position="76">
+          <caret line="5" column="29" selection-start-line="5" selection-start-column="13" selection-end-line="5" selection-end-column="29" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/app/src/main/java/com/ic/protocol/GSensorListener.java">
+    <entry file="file://$PROJECT_DIR$/app/src/main/java/com/ic/protocol/bean/Config.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="436">
-          <caret line="108" column="3" selection-start-line="108" selection-start-column="3" selection-end-line="108" selection-end-column="3" />
+        <state relative-caret-position="38">
+          <caret line="2" column="17" selection-start-line="2" selection-start-column="17" selection-end-line="2" selection-end-column="17" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/app/src/main/res/layout/activity_main.xml">
-      <provider editor-type-id="text-editor" />
-      <provider selected="true" editor-type-id="android-designer2" />
-    </entry>
-    <entry file="file://$PROJECT_DIR$/app/src/main/java/com/ic/protocol/MainActivity.java">
+    <entry file="file://$PROJECT_DIR$/app/src/main/java/com/ic/protocol/Config.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="412">
-          <caret line="67" column="21" selection-start-line="67" selection-start-column="21" selection-end-line="67" selection-end-column="21" />
-          <folding>
-            <element signature="e#1972#2091#0" expanded="true" />
-            <element signature="e#2090#2091#0" expanded="true" />
-          </folding>
+        <state relative-caret-position="76">
+          <caret line="6" column="13" selection-start-line="6" selection-start-column="13" selection-end-line="6" selection-end-column="13" />
         </state>
       </provider>
     </entry>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/app/src/main/java/com/ic/protocol/service/Initialize.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="150">
-          <caret line="59" column="20" lean-forward="true" selection-start-line="59" selection-start-column="20" selection-end-line="59" selection-end-column="20" />
+    <entry file="file://$PROJECT_DIR$/app/src/main/res/layout/activity_main.xml">
+      <provider selected="true" editor-type-id="android-designer2" />
+      <provider editor-type-id="text-editor">
+        <state relative-caret-position="665">
+          <caret line="51" selection-start-line="51" selection-end-line="51" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/app/src/main/java/com/ic/protocol/service/CheckSIM.java">
+    <entry file="file://$PROJECT_DIR$/app/src/main/java/com/ic/protocol/service/base/BaseService.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="131">
-          <caret line="94" column="34" selection-start-line="94" selection-start-column="27" selection-end-line="94" selection-end-column="34" />
+        <state relative-caret-position="76">
+          <caret line="5" column="17" selection-start-line="5" selection-start-column="17" selection-end-line="5" selection-end-column="17" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/app/src/main/java/com/ic/protocol/service/KeepAlive.java">
+    <entry file="file://$PROJECT_DIR$/app/src/main/java/com/ic/protocol/bean/ICLocation.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="4750">
-          <caret line="273" column="7" selection-start-line="273" selection-start-column="7" selection-end-line="273" selection-end-column="7" />
+        <state relative-caret-position="362">
+          <caret line="33" column="37" lean-forward="true" selection-start-line="33" selection-start-column="37" selection-end-line="33" selection-end-column="37" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/app/src/main/java/com/ic/protocol/utils/CellInfoUtil.java">
+    <entry file="jar://$USER_HOME$/AppData/Local/Android/Sdk/platforms/android-25/android.jar!/android/content/Intent.class">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="513">
-          <caret line="32" column="54" selection-start-line="32" selection-start-column="54" selection-end-line="32" selection-end-column="54" />
+        <state relative-caret-position="160">
+          <caret line="358" column="24" selection-start-line="358" selection-start-column="18" selection-end-line="358" selection-end-column="24" />
+          <folding>
+            <element signature="e#26668#26669#0" expanded="true" />
+            <element signature="e#26719#26720#0" expanded="true" />
+          </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/app/src/main/java/com/ic/protocol/service/Deliver.java">
+    <entry file="file://$PROJECT_DIR$/app/src/main/java/com/ic/protocol/MainActivity.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="10564">
-          <caret line="590" column="48" selection-start-line="590" selection-start-column="48" selection-end-line="590" selection-end-column="48" />
+        <state relative-caret-position="100">
+          <caret line="52" column="69" selection-start-line="52" selection-start-column="69" selection-end-line="52" selection-end-column="69" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/app/src/main/java/com/ic/protocol/ICContentProvider.java">
+    <entry file="file://$PROJECT_DIR$/app/src/main/java/com/ic/protocol/service/SilentManager.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="-95">
-          <caret line="29" column="45" lean-forward="true" selection-start-line="29" selection-start-column="45" selection-end-line="29" selection-end-column="45" />
+        <state relative-caret-position="152">
+          <caret line="701" column="22" selection-start-line="701" selection-start-column="22" selection-end-line="701" selection-end-column="22" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/app/src/main/java/com/ic/protocol/ICApplication.java">
+    <entry file="file://$PROJECT_DIR$/app/src/main/java/com/ic/protocol/utils/ConnectionListener.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="171">
-          <caret line="18" column="13" selection-start-line="18" selection-start-column="13" selection-end-line="18" selection-end-column="13" />
+        <state relative-caret-position="190">
+          <caret line="10" column="7" selection-start-line="10" selection-start-column="7" selection-end-line="10" selection-end-column="7" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/app/src/main/java/com/ic/protocol/utils/Util.java">
+    <entry file="file://$PROJECT_DIR$/app/src/main/java/com/ic/protocol/utils/ContextProxy.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="80">
-          <caret line="54" column="47" selection-start-line="54" selection-start-column="47" selection-end-line="54" selection-end-column="47" />
+        <state relative-caret-position="152">
+          <caret line="417" column="14" selection-start-line="417" selection-start-column="14" selection-end-line="417" selection-end-column="14" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/app/src/main/java/com/ic/protocol/utils/Logger.java">
+    <entry file="file://$PROJECT_DIR$/app/src/main/java/com/ic/protocol/bean/Content.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="-437">
-          <caret line="4" column="13" selection-start-line="4" selection-start-column="13" selection-end-line="4" selection-end-column="13" />
+        <state relative-caret-position="-684">
+          <caret line="2" column="22" selection-start-line="2" selection-start-column="22" selection-end-line="2" selection-end-column="22" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/app/src/main/java/com/ic/protocol/utils/FileCache.java">
+    <entry file="file://$PROJECT_DIR$/app/src/main/java/com/ic/protocol/service/CheckSIM.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="-182">
-          <caret line="27" column="29" lean-forward="true" selection-start-line="27" selection-start-column="29" selection-end-line="27" selection-end-column="29" />
+        <state relative-caret-position="342">
+          <caret line="102" column="2" selection-start-line="102" selection-start-column="2" selection-end-line="102" selection-end-column="2" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/app/src/main/java/com/ic/protocol/Constants.java">
+    <entry file="jar://$USER_HOME$/AppData/Local/Android/Sdk/platforms/android-25/android.jar!/android/os/Handler.class">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="1691">
-          <caret line="89" column="75" selection-start-line="89" selection-start-column="75" selection-end-line="89" selection-end-column="75" />
+        <state relative-caret-position="133">
+          <caret line="10" column="11" selection-start-line="10" selection-start-column="11" selection-end-line="10" selection-end-column="11" />
+          <folding>
+            <element signature="e#201#202#0" expanded="true" />
+            <element signature="e#252#253#0" expanded="true" />
+          </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/app/src/main/java/com/ic/protocol/utils/FileOutputUtil.java">
+    <entry file="file://$PROJECT_DIR$/app/src/main/java/com/ic/protocol/bean/Contact.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="-541">
-          <caret line="25" column="47" lean-forward="true" selection-start-line="25" selection-start-column="47" selection-end-line="25" selection-end-column="47" />
+        <state relative-caret-position="76">
+          <caret line="5" column="13" selection-start-line="5" selection-start-column="13" selection-end-line="5" selection-end-column="13" />
         </state>
       </provider>
     </entry>
     <entry file="file://$PROJECT_DIR$/app/src/main/java/com/ic/protocol/utils/BatteryUtil.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="130">
-          <caret line="13" column="61" lean-forward="true" selection-start-line="13" selection-start-column="61" selection-end-line="13" selection-end-column="61" />
+        <state relative-caret-position="431">
+          <caret line="93" column="30" selection-start-line="93" selection-start-column="30" selection-end-line="93" selection-end-column="30" />
           <folding>
             <element signature="imports" expanded="true" />
-            <element signature="e#331#4161#0" expanded="true" />
-            <element signature="e#4160#4161#0" expanded="true" />
           </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/app/src/main/java/com/ic/protocol/bean/Runtime.java">
+    <entry file="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/io.reactivex/rxjava/1.1.0/748f0546d5c3c27f1aef07270ffea0c45f0c42a4/rxjava-1.1.0.jar!/rx/Observable.class">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="152">
-          <caret line="326" column="19" selection-start-line="326" selection-start-column="9" selection-end-line="326" selection-end-column="19" />
-          <folding>
-            <element signature="e#8809#8810#0" expanded="true" />
-            <element signature="e#8830#8831#0" expanded="true" />
-          </folding>
+        <state relative-caret-position="284">
+          <caret line="1532" column="17" lean-forward="true" selection-start-line="1532" selection-start-column="17" selection-end-line="1532" selection-end-column="17" />
         </state>
       </provider>
     </entry>
-    <entry file="jar://$USER_HOME$/AppData/Local/Android/Sdk/platforms/android-25/android.jar!/java/lang/Enum.class">
+    <entry file="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/71856ddd748344c89a323fa69958dc46/TestModules-v1.0.16/jars/classes.jar!/chestnut/utils/LogUtils.class">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="152">
-          <caret line="30" column="21" selection-start-line="30" selection-start-column="21" selection-end-line="30" selection-end-column="21" />
-          <folding>
-            <element signature="e#727#728#0" expanded="true" />
-            <element signature="e#778#779#0" expanded="true" />
-          </folding>
+        <state relative-caret-position="285">
+          <caret line="31" lean-forward="true" selection-start-line="31" selection-end-line="31" />
         </state>
       </provider>
     </entry>
-    <entry file="jar://$USER_HOME$/AppData/Local/Android/Sdk/platforms/android-25/android.jar!/android/app/Service.class">
+    <entry file="file://$PROJECT_DIR$/app/src/main/java/com/ic/protocol/utils/AlarmHelper.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="152">
-          <caret line="46" column="15" selection-start-line="46" selection-start-column="15" selection-end-line="46" selection-end-column="15" />
+        <state relative-caret-position="46">
+          <caret line="71" column="21" selection-start-line="71" selection-start-column="21" selection-end-line="71" selection-end-column="21" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/app/src/main/java/com/ic/protocol/service/base/AbstractConnectionService.java">
+    <entry file="file://$PROJECT_DIR$/app/src/main/java/com/ic/protocol/Constants.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="152">
-          <caret line="10" column="20" selection-start-line="10" selection-start-column="20" selection-end-line="10" selection-end-column="20" />
+        <state relative-caret-position="122">
+          <caret line="27" column="42" selection-start-line="27" selection-start-column="42" selection-end-line="27" selection-end-column="42" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/app/src/main/java/com/ic/protocol/Config.java">
+    <entry file="file://$PROJECT_DIR$/app/src/main/java/com/ic/protocol/utils/RxSocket.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="152">
-          <caret line="149" column="37" selection-start-line="149" selection-start-column="37" selection-end-line="149" selection-end-column="37" />
+        <state relative-caret-position="27">
+          <caret line="40" column="34" selection-start-line="40" selection-start-column="34" selection-end-line="40" selection-end-column="34" />
+          <folding>
+            <element signature="imports" expanded="true" />
+            <element signature="e#7933#7934#0" expanded="true" />
+            <element signature="e#7967#7968#0" expanded="true" />
+          </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/app/src/main/java/com/ic/protocol/MySqlitOpenHelper.java">
+    <entry file="file://$PROJECT_DIR$/app/src/main/AndroidManifest.xml">
+      <provider editor-type-id="android-manifest" />
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="95">
-          <caret line="9" column="13" selection-start-line="9" selection-start-column="13" selection-end-line="9" selection-end-column="13" />
+        <state relative-caret-position="147">
+          <caret line="129" column="73" selection-start-line="129" selection-start-column="61" selection-end-line="129" selection-end-column="73" />
         </state>
       </provider>
     </entry>
-    <entry file="jar://$USER_HOME$/AppData/Local/Android/Sdk/platforms/android-25/android.jar!/android/os/Handler.class">
+    <entry file="file://$PROJECT_DIR$/app/src/main/java/com/ic/protocol/utils/AlarmWakeUp.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="197">
-          <caret line="101" selection-start-line="101" selection-end-line="101" />
+        <state relative-caret-position="81">
+          <caret line="13" column="21" selection-start-line="13" selection-start-column="21" selection-end-line="13" selection-end-column="21" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/app/src/main/java/com/ic/protocol/bean/ICLocation.java">
+    <entry file="file://$PROJECT_DIR$/app/src/main/java/com/ic/protocol/bean/StringMessage.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="191">
-          <caret line="27" column="24" lean-forward="true" selection-start-line="27" selection-start-column="24" selection-end-line="27" selection-end-column="24" />
-          <folding>
-            <element signature="e#2239#2240#0" expanded="true" />
-            <element signature="e#2271#2272#0" expanded="true" />
-          </folding>
+        <state relative-caret-position="295">
+          <caret line="32" column="23" selection-start-line="32" selection-start-column="23" selection-end-line="32" selection-end-column="23" />
         </state>
       </provider>
     </entry>
     <entry file="file://$PROJECT_DIR$/app/src/main/java/com/ic/protocol/adapter/LBSHelper.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="-4630">
-          <caret line="79" column="21" selection-start-line="79" selection-start-column="21" selection-end-line="79" selection-end-column="21" />
+        <state relative-caret-position="-1293">
+          <caret line="228" column="18" selection-start-line="228" selection-start-column="18" selection-end-line="228" selection-end-column="18" />
+          <folding>
+            <element signature="e#8801#8802#0" expanded="true" />
+            <element signature="e#8844#8845#0" expanded="true" />
+          </folding>
         </state>
       </provider>
     </entry>
     <entry file="file://$PROJECT_DIR$/app/src/main/java/com/ic/protocol/adapter/protocolAPIHelper.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="2518">
-          <caret line="358" column="54" lean-forward="true" selection-start-line="358" selection-start-column="54" selection-end-line="358" selection-end-column="54" />
+        <state relative-caret-position="321">
+          <caret line="376" column="37" lean-forward="true" selection-start-line="376" selection-start-column="37" selection-end-line="376" selection-end-column="37" />
           <folding>
-            <element signature="e#18169#18170#0" expanded="true" />
-            <element signature="e#18202#18203#0" expanded="true" />
-            <element signature="e#18260#18261#0" expanded="true" />
-            <element signature="e#18293#18294#0" expanded="true" />
+            <element signature="imports" expanded="true" />
           </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/app/src/main/java/com/ic/protocol/NMEAListener.java">
+    <entry file="file://$PROJECT_DIR$/app/src/main/java/com/ic/protocol/service/KeepAlive.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="355">
-          <caret line="71" selection-start-line="71" selection-end-line="71" />
+        <state relative-caret-position="137">
+          <caret line="246" column="21" selection-start-line="246" selection-start-column="21" selection-end-line="246" selection-end-column="21" />
+          <folding>
+            <element signature="imports" expanded="true" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/app/src/main/java/com/ic/protocol/bean/Runtime.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="185">
+          <caret line="96" column="2" lean-forward="true" selection-start-line="96" selection-start-column="2" selection-end-line="96" selection-end-column="2" />
+          <folding>
+            <element signature="e#8809#8810#0" expanded="true" />
+            <element signature="e#8830#8831#0" expanded="true" />
+          </folding>
         </state>
       </provider>
     </entry>
     <entry file="file://$PROJECT_DIR$/app/src/main/java/com/ic/protocol/utils/NettyConnection.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="432">
-          <caret line="77" column="75" selection-start-line="77" selection-start-column="59" selection-end-line="77" selection-end-column="75" />
+        <state relative-caret-position="488">
+          <caret line="79" column="44" selection-start-line="79" selection-start-column="44" selection-end-line="79" selection-end-column="44" />
         </state>
       </provider>
     </entry>
     <entry file="file://$PROJECT_DIR$/app/src/main/java/com/ic/protocol/service/protocolMainServer.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="-18">
-          <caret line="648" column="5" lean-forward="true" selection-start-line="648" selection-start-column="5" selection-end-line="648" selection-end-column="5" />
+        <state relative-caret-position="150">
+          <caret line="655" column="60" selection-start-line="655" selection-start-column="60" selection-end-line="655" selection-end-column="60" />
           <folding>
             <element signature="imports" expanded="true" />
+            <element signature="e#4992#6055#0" expanded="true" />
+            <element signature="e#6054#6055#0" expanded="true" />
+            <element signature="e#33051#33052#0" expanded="true" />
+            <element signature="e#33148#33149#0" expanded="true" />
+            <element signature="e#31779#31780#0" expanded="true" />
+            <element signature="e#31817#31818#0" expanded="true" />
+            <element signature="e#35069#35217#0" expanded="true" />
+            <element signature="e#35216#35217#0" expanded="true" />
+            <element signature="e#33373#33374#0" expanded="true" />
+            <element signature="e#33400#33401#0" expanded="true" />
+            <element signature="e#38920#38921#0" expanded="true" />
           </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/app/src/main/java/com/ic/protocol/utils/ServiceUtil.java">
+    <entry file="file://$PROJECT_DIR$/app/src/main/java/com/ic/protocol/utils/SharPreferenceUtil.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="304">
+          <caret line="18" column="5" lean-forward="true" selection-start-line="18" selection-start-column="5" selection-end-line="18" selection-end-column="5" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/app/src/main/java/com/ic/protocol/utils/CellInfoUtil.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="209">
-          <caret line="38" column="23" selection-start-line="38" selection-start-column="23" selection-end-line="38" selection-end-column="23" />
+        <state relative-caret-position="36">
+          <caret line="79" selection-start-line="79" selection-end-line="79" />
           <folding>
-            <element signature="imports" expanded="true" />
+            <element signature="e#797#1120#0" expanded="true" />
+            <element signature="e#1119#1120#0" expanded="true" />
+            <element signature="e#1548#1549#0" expanded="true" />
+            <element signature="e#1565#1566#0" expanded="true" />
           </folding>
         </state>
       </provider>
     </entry>
     <entry file="file://$PROJECT_DIR$/app/src/main/java/com/ic/protocol/LocationClient.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="-1861">
-          <caret line="85" column="35" selection-start-line="85" selection-start-column="16" selection-end-line="85" selection-end-column="35" />
+        <state relative-caret-position="349">
+          <caret line="737" selection-start-line="737" selection-end-line="737" />
           <folding>
             <element signature="imports" expanded="true" />
+            <element signature="e#13500#13501#0" expanded="true" />
+            <element signature="e#13536#13537#0" expanded="true" />
           </folding>
         </state>
       </provider>
index 95ac0dd..f9ea079 100644 (file)
     <orderEntry type="library" scope="TEST" name="Gradle: com.android.support.test:runner:0.5@aar" level="project" />\r
     <orderEntry type="library" scope="TEST" name="Gradle: com.android.support.test:exposed-instrumentation-api-publish:0.5@aar" level="project" />\r
     <orderEntry type="library" scope="TEST" name="Gradle: com.android.support.test.espresso:espresso-idling-resource:2.2.2@aar" level="project" />\r
-    <orderEntry type="library" name="Gradle: __local_aars__:D.\Snicker\icsupport\app\libs\LauncherCtrl.jar:unspecified@jar" level="project" />\r
-    <orderEntry type="library" name="Gradle: __local_aars__:D.\Snicker\icsupport\app\libs\okio-2.4.3.jar:unspecified@jar" level="project" />\r
+    <orderEntry type="library" name="Gradle: __local_aars__:D.\workspace\icsupport\app\libs\LauncherCtrl.jar:unspecified@jar" level="project" />\r
+    <orderEntry type="library" name="Gradle: __local_aars__:D.\workspace\icsupport\app\libs\okio-2.4.3.jar:unspecified@jar" level="project" />\r
     <orderEntry type="library" name="Gradle: com.android.support:support-annotations:25.1.0@jar" level="project" />\r
     <orderEntry type="library" name="Gradle: io.reactivex:rxjava:1.1.0@jar" level="project" />\r
     <orderEntry type="library" name="Gradle: com.github.ChestnutPlus:TestModules:v1.0.16@aar" level="project" />\r
diff --git a/app/debug/output.json b/app/debug/output.json
deleted file mode 100644 (file)
index 4a5be37..0000000
+++ /dev/null
@@ -1 +0,0 @@
-[{"outputType":{"type":"APK"},"apkData":{"type":"MAIN","splits":[],"versionCode":320,"versionName":"202001082349","enabled":true,"outputFile":"ICSer_V320_202001082349_debug.apk","fullName":"debug","baseName":"debug"},"path":"ICSer_V320_202001082349_debug.apk","properties":{}}]
\ No newline at end of file
index 07c8168..69406a1 100644 (file)
             <intent-filter>
                 <action android:name="com.ic.protocol.startsrv" />
                 <action android:name="com.enqualcomm.support.ACTION_ALARM" />
+                <action android:name="com.enqualcomm.support.HEART_ALARM" />
                 <action android:name="com.ic.protocol.startsrv" />
 
             </intent-filter>
index 69c786d..08ad4bd 100644 (file)
@@ -26,7 +26,9 @@ public interface Constants {
   public static final String ACTION_CM_POWERSAVE_MODE = "cmcm.call.eiot.into.powersave";\r
   \r
   public static final String ACTION_EQC_ALARM = "com.enqualcomm.support.ACTION_EQC_ALARM";\r
-  \r
+\r
+  public static final String ACTION_LOCATION_ALARM = "com.enqualcomm.support.ACTION_LOCATION_ALARM";\r
+\r
   public static final String ACTION_EXIT_MONITOR_MODE = "com.enqualcomm.support.MONITOR_EXIT";\r
   \r
   public static final String ACTION_HEART_RATE_RESULT = "com.eqc.heartrate.action.RESULT";\r
index 3f7c44a..76b204d 100644 (file)
@@ -48,6 +48,9 @@ import rx.android.schedulers.AndroidSchedulers;
 import rx.functions.Action1;\r
 \r
 import static android.location.LocationManager.GPS_PROVIDER;\r
+import static com.ic.protocol.Constants.ACTION_LOCATION_ALARM;\r
+import static com.ic.protocol.Constants.HEART_ALARM;\r
+import static com.ic.protocol.bean.ICLocation.NORMAL_MOD;\r
 \r
 public class LocationClient {\r
   private static final String TAG = LocationClient.class.getSimpleName();\r
@@ -248,12 +251,7 @@ public class LocationClient {
   \r
   private void performAlarm(PowerManager.WakeLock paramWakeLock) {\r
     if (!runtime.isAirMode) {\r
-      CellInfoUtil.setCurrentAttachCellInfo(runtime, paramWakeLock);\r
-      runtime.getLocationInstance().setMNC(String.valueOf(CellInfoUtil.getMNC()));\r
-      runtime.getLocationInstance().setCID(CellInfoUtil.getCELL_ID());\r
-      runtime.getLocationInstance().setMCC(String.valueOf(CellInfoUtil.getMCC()));\r
-      runtime.getLocationInstance().setLAC(CellInfoUtil.getLAC());\r
-      runtime.preCellInfo = CellInfoUtil.getCellInfo();\r
+        CellInfoUtil.triggerUpdateCellinfo();\r
       sendBatteryNotification();\r
 //      startLocationProcess();\r
     }\r
@@ -323,8 +321,8 @@ public class LocationClient {
 //        stringMessage = stringMessage1;\r
 //      }\r
     }\r
-    if (stringMessage != null)\r
-      ServiceUtil.offerQueue(stringMessage);\r
+//    if (stringMessage != null)\r
+//      ServiceUtil.offerQueue(stringMessage);\r
   }\r
   \r
 //  public static void AP16Queue() {\r
@@ -371,6 +369,9 @@ public class LocationClient {
     }\r
   }\r
 \r
+  public void triggerLocationProcess(){\r
+    mhandler.sendEmptyMessage(0);\r
+  }\r
   \r
   public void EqcAlgorithmInterfaceMethod1(final int cycle_location_flag, int paramInt2, final int delay_flag, final double latitude, final double longitude, final double altitude, final float speed, final float bearing, final int sv_no, final float accuracy, final long timestamp_cur, final long timestamp_last_location, final double latitude_last_location, final double longitude_last_location, final int mode, long paramLong3, final int status_cur_location) {\r
 //    StringBuilder stringBuilder1 = new StringBuilder();\r
@@ -509,15 +510,10 @@ public class LocationClient {
 \r
   private static int checktimes=0;\r
   private static boolean timeout=false;\r
-//  public void EqcAlgorithmInterfaceMethod2() {\r
-    public void startGpsLocate() {\r
+  private static boolean isLocating=false;\r
 \r
-\r
-    Settings.Secure.setLocationProviderEnabled(runtime.getContextProxy().getResolver(), GPS_PROVIDER, true);\r
-    Single.just(null).observeOn(AndroidSchedulers.mainThread()).subscribe(new Action1<Object>() {\r
-          public void call(Object param1Object) { LocationClient.this.nmeaListener.startListen(); }\r
-        });\r
-      Logger.i("开启GPS开启wifi扫描");\r
+  public void startWifiScan(){\r
+      Logger.i("开启wifi扫描");\r
       runtime.currentWifiInfo = "";\r
       mHasWifiResult = false;\r
       this.mLbsHelper.registerBroadReceiver();\r
@@ -525,23 +521,33 @@ public class LocationClient {
       this.mLbsHelper.setOnWiFiInfoListener(new LBSHelper.OnWiFiInfoListener() {\r
           public void getWifiInfoCallBack(String param1String) {\r
 //            LocationClient.access$002(true);\r
-            Logger.i("get wifi scan Callback " + param1String);\r
-            LocationClient.mHasWifiResult=true;\r
-            runtime.currentWifiInfo = param1String;\r
-            runtime.setWifiinfo(param1String);\r
+              Logger.i("get wifi scan Callback " + param1String);\r
+              LocationClient.mHasWifiResult=true;\r
+              runtime.currentWifiInfo = param1String;\r
+              runtime.setWifiinfo(param1String);\r
           }\r
+      });\r
+  }\r
+//  public void EqcAlgorithmInterfaceMethod2() {\r
+    public void startGpsLocate() {\r
+      Logger.i("开启GPS扫描");\r
+    Settings.Secure.setLocationProviderEnabled(runtime.getContextProxy().getResolver(), GPS_PROVIDER, true);\r
+    Single.just(null).observeOn(AndroidSchedulers.mainThread()).subscribe(new Action1<Object>() {\r
+          public void call(Object param1Object) { LocationClient.this.nmeaListener.startListen(); }\r
         });\r
 \r
-      Single.just(null).observeOn(AndroidSchedulers.mainThread()).subscribe(new Action1<Object>() {\r
-        public void call(Object param1Object) { LocationClient.this.waitAndSendLocation(); }\r
-      });\r
+//        Single.just(null).observeOn(AndroidSchedulers.mainThread()).subscribe(new Action1<Object>() {\r
+//            public void call(Object param1Object) { LocationClient.this.waitAndSendLocation(); }\r
+//        });\r
+\r
+  }\r
 \r
+  public void startCheckResult(){\r
       checktimes=0;\r
       timeout=false;\r
       //延时2秒执行发送“读取定位”消息\r
       if (mTimer==null) mTimer=new Timer();\r
       mTimer.schedule(new MyTimerTask(), 0,1000L);\r
-\r
   }\r
   class MyTimerTask extends TimerTask {\r
     public void run() {\r
@@ -553,9 +559,13 @@ public class LocationClient {
 \r
         public void handleMessage(Message msg) {\r
           super.handleMessage(msg);\r
-          if (msg.what != 100)\r
-            return;\r
-          waitAndSendLocation();\r
+          if (msg.what == 100){\r
+            waitAndSendLocation();\r
+          }else if (msg.what == 0){\r
+            startLocationProcess(WorkingMod);\r
+          }\r
+\r
+\r
         }\r
 \r
   };\r
@@ -569,6 +579,8 @@ public class LocationClient {
         gps_ok=false;\r
         lbs_ok=false;\r
         gps_nosignal=false;\r
+\r
+        int mode=runtime.getLocationInstance().getWorkingMod();\r
         if (runtime.currentWifiInfo.length()>0  ) wifi_ok =true;\r
         if (runtime.getLocationInstance().getLocationStat() == ICLocation.LOCATION_STAT.LOCATION_FIXED) gps_ok=true;\r
         if (runtime.getLocationInstance().getLocationStat() == ICLocation.LOCATION_STAT.LOCATION_GPS_TIEMOUT) gps_nosignal=true;\r
@@ -578,24 +590,58 @@ public class LocationClient {
             && runtime.getLocationInstance().getGSMStationCID() ==0\r
             &&  runtime.getLocationInstance().getLAC()==0)) ?false:true;\r
         Logger.i("getMNC "+runtime.getLocationInstance().getMNC()+" getMCC "+runtime.getLocationInstance().getMCC()+" getGSMStationCID " + runtime.getLocationInstance().getGSMStationCID()+ " getLAC "+runtime.getLocationInstance().getLAC()+" changed "+runtime.getLocationInstance().isDataChanged());\r
-        Logger.i("lbs_ok "+lbs_ok+" waitAndSendLocation wifi_ok " + wifi_ok+ " gps_ok "+gps_ok);\r
-        if ((lbs_ok && timeout==true) ||(lbs_ok && gps_ok && wifi_ok )||(lbs_ok&&gps_nosignal&&wifi_ok)){\r
-\r
-          Logger.i("offerQueue  "+protocolAPIHelper.AP01(runtime));\r
-          ServiceUtil.offerQueue(protocolAPIHelper.genStringMessage("AP01", protocolAPIHelper.AP01(runtime)));\r
-          triggerSendThread();\r
-          if (mTimer!=null){\r
-            mTimer.cancel();\r
-            mTimer=null;\r
-          }\r
-        }else if (timeout==true){\r
-          Logger.i("timeout no location  ");\r
-\r
-          if (mTimer!=null){\r
-            mTimer.cancel();\r
-            mTimer=null;\r
-          }\r
+        Logger.i("lbs_ok "+lbs_ok+" waitAndSendLocation wifi_ok " + wifi_ok+ " gps_ok "+gps_ok + " mode "+mode);\r
+\r
+        switch(mode){\r
+          case ICLocation.EMERGNECY_MOD:\r
+          case ICLocation.REALTIME_MOD:\r
+            if ((lbs_ok && timeout==true) ||(lbs_ok && gps_ok && wifi_ok )||(lbs_ok&&gps_nosignal&&wifi_ok)){\r
+\r
+              Logger.i("offerQueue  "+protocolAPIHelper.AP01(runtime));\r
+              connection.send(protocolAPIHelper.genStringMessage("AP01", protocolAPIHelper.AP01(runtime)));\r
+//          triggerSendThread();\r
+              if (mTimer!=null){\r
+                mTimer.cancel();\r
+                mTimer=null;\r
+              }\r
+              isLocating = false;\r
+            }else if (timeout==true){\r
+              Logger.i("timeout no location  ");\r
+              isLocating = false;\r
+              if (mTimer!=null){\r
+                mTimer.cancel();\r
+                mTimer=null;\r
+              }\r
+            }\r
+            break;\r
+          default:\r
+            if ((lbs_ok && timeout==true) ||(lbs_ok && wifi_ok )){\r
+\r
+              if (connection.isServerConnected() && KeepAlive.isConnected)\r
+              {\r
+                Logger.i("send  "+protocolAPIHelper.AP01(runtime));\r
+                connection.send(protocolAPIHelper.genStringMessage("AP01", protocolAPIHelper.AP01(runtime)));\r
+              }else{\r
+                Logger.i("offline skip  "+protocolAPIHelper.AP01(runtime));\r
+\r
+              }\r
+//          triggerSendThread();\r
+              if (mTimer!=null){\r
+                mTimer.cancel();\r
+                mTimer=null;\r
+              }\r
+              isLocating = false;\r
+            }else if (timeout==true){\r
+              Logger.i("timeout no location  ");\r
+              isLocating = false;\r
+              if (mTimer!=null){\r
+                mTimer.cancel();\r
+                mTimer=null;\r
+              }\r
+            }\r
+            break;\r
         }\r
+\r
   }\r
 \r
 //  public void EqcAlgorithmInterfaceMethod3() {\r
@@ -612,8 +658,9 @@ public class LocationClient {
   \r
 //  public void EqcAlgorithmInterfaceMethod4() {\r
 public void updateCellInfo() {\r
-  this.mLbsHelper.getAttchCellInfo(runtime.getContextProxy().getTelephonyManager());\r
-\r
+   this.mLbsHelper.getAttchCellInfo(runtime.getContextProxy().getTelephonyManager());\r
+//    CellInfoUtil.triggerUpdateCellinfo();\r
+    CellInfoUtil.setCurrentAttachCellInfo(runtime, getLocationWakeLock());\r
   }\r
   \r
 //  public void EqcAlgorithmInterfaceMethod5(int paramInt) {\r
@@ -671,103 +718,85 @@ public void updateCellInfo() {
     this.gSensorListener.startListen(paramWakeLock);\r
     performAlarm(paramWakeLock);\r
   }\r
-  public void startLocationProcess(){\r
-    updateCellInfo();\r
+  public void startLocationProcess(int mod){\r
+\r
+    if (isLocating ) return;\r
+    isLocating=true;\r
     updateSimSignalInfo();\r
-    startGpsLocate();\r
+\r
+    updateCellInfo();\r
+      startWifiScan();\r
+    switch(mod){\r
+      case ICLocation.EMERGNECY_MOD:\r
+      case ICLocation.REALTIME_MOD:\r
+        startGpsLocate();\r
+        break;\r
+    }\r
+\r
+      startCheckResult();\r
   }\r
+\r
+  private static int WorkingMod=1;\r
   public void onReceive(StringMessage paramStringMessage) {\r
-    Logger.i("LocationClient onReceive " +paramStringMessage.cmd() );\r
+    Logger.i("LocationClient onReceive " +paramStringMessage.cmd()+" linkOK "+linkOK );\r
     if ("Sport:OK".equals(paramStringMessage.cmd()))\r
       this.mPedometer2 = this.H12StepCount;\r
 \r
+\r
+\r
+//    if (linkOK)\r
+//      return;\r
+//    if (paramStringMessage.cmd().startsWith("AP") || paramStringMessage.cmd().startsWith("BP")) {\r
+//      //如果Link:OK 则触发(激活)等待信号的发送线程\r
+////      triggerSendThread();\r
+//    }\r
     //响应定位指令\r
     if ("StartLocate".equals(paramStringMessage.cmd())  ){\r
 //      triggerSendThread();\r
-//      this.startLocationProcess();\r
+      this.startLocationProcess(WorkingMod);\r
     }\r
-    if ("ResartHeartAlarm".equals(paramStringMessage.cmd())  ){\r
+    if ("ResartHeartAlarm".equals(paramStringMessage.cmd())) {\r
 //      triggerSendThread();\r
-//      this.startLocationProcess();\r
-//      protocolMainServer.getInstance().setHeartAlarm();\r
+      int mod = 0;\r
+      try\r
+      {\r
+        String[] cmdlist=paramStringMessage.isFromCache().split(",");\r
+        if (cmdlist.length == 4)\r
+            mod = Integer.valueOf(cmdlist[3]);\r
+      }catch (Exception e){\r
+        e.printStackTrace();\r
+      }\r
+      SharPreferenceUtil.setPrefInt((runtime.getContextProxy()).context, LACATION_MODE, mod);\r
+      runtime.getLocationInstance().setWorkingMod(mod);\r
+//      runtime.getLocationInstance().setLocation_cycle(3);\r
+      Logger.i("ResartHeartAlarm  1 mod "+mod);\r
+      protocolMainServer.getInstance().setHeartAlarm(mod);\r
+      Logger.i("ResartHeartAlarm  2");\r
+      runtime.getContextProxy().sendBroadcast(HEART_ALARM,runtime);\r
+      this.startLocationProcess(mod);\r
+      WorkingMod=mod;\r
+      Logger.i("ResartHeartAlarm  3 WorkingMod " +WorkingMod);\r
+\r
+\r
     }\r
 \r
-//    if (linkOK)\r
-//      return;\r
-    if (paramStringMessage.cmd().startsWith("AP") || paramStringMessage.cmd().startsWith("BP")) {\r
-      //如果Link:OK 则触发(激活)等待信号的发送线程\r
-      triggerSendThread();\r
-    } \r
+\r
   }\r
   public void triggerSendThread(){\r
-//    this.mLock.lock();\r
-//    try {\r
-//      linkOK = true;\r
-////      this.mCondition.signal();\r
-//      return;\r
-//    } finally {\r
-//      this.mLock.unlock();\r
-//    }\r
-  }\r
-  public void resolveResult(int paramInt1, int paramInt2, int paramInt3, double paramDouble1, double paramDouble2, double paramDouble3, float paramFloat1, float paramFloat2, int paramInt4, float paramFloat3, long paramLong1, long paramLong2, double paramDouble4, double paramDouble5, int paramInt5, long paramLong3, int paramInt6) {\r
-    int i = SharPreferenceUtil.getPrefInt((runtime.getContextProxy()).context, LACATION_CYCLE, 3);\r
-    String str1 = runtime.getLatitude();\r
-    String str2 = runtime.getLongitude();\r
-    paramLong2 = runtime.getTimestamp();\r
-    isLocationCallBack = false;\r
-    if ((paramInt2 & 0x1) == 1) {\r
-      Logger.i("开机定位");\r
-      performExecute(paramInt1, i, 0, paramInt3, paramDouble1, paramDouble2, paramDouble3, paramFloat1, paramFloat2, paramInt4, paramFloat3, paramLong1, paramLong2, str1, str2, paramInt5, paramLong3, paramInt6);\r
-    }\r
-    if ((paramInt2 & 0x2) >> 1 == 1) {\r
-      Logger.i("周期定位");\r
-      performExecute(paramInt1, i, 1, paramInt3, paramDouble1, paramDouble2, paramDouble3, paramFloat1, paramFloat2, paramInt4, paramFloat3, paramLong1, paramLong2, str1, str2, paramInt5, paramLong3, paramInt6);\r
-    }\r
-    if ((paramInt2 & 0x4) >> 2 == 1) {\r
-      Logger.i("主动定位");\r
-      performExecute(paramInt1, i, 2, paramInt3, paramDouble1, paramDouble2, paramDouble3, paramFloat1, paramFloat2, paramInt4, paramFloat3, paramLong1, paramLong2, str1, str2, paramInt5, paramLong3, paramInt6);\r
-    }\r
-    if ((paramInt2 & 0x8) >> 3 == 1) {\r
-      Logger.i("SOS定位");\r
-      performExecute(paramInt1, i, 3, paramInt3, paramDouble1, paramDouble2, paramDouble3, paramFloat1, paramFloat2, paramInt4, paramFloat3, paramLong1, paramLong2, str1, str2, paramInt5, paramLong3, paramInt6);\r
-    }\r
-    if ((paramInt2 & 0x10) >> 4 == 1) {\r
-      Logger.i("获取位置信息");\r
-      performExecute(paramInt1, i, 4, paramInt3, paramDouble1, paramDouble2, paramDouble3, paramFloat1, paramFloat2, paramInt4, paramFloat3, paramLong1, paramLong2, str1, str2, paramInt5, paramLong3, paramInt6);\r
-    }\r
-    if ((paramInt2 & 0x20) >> 5 == 1) {\r
-      Logger.i("定时定位");\r
-      performExecute(paramInt1, i, 5, paramInt3, paramDouble1, paramDouble2, paramDouble3, paramFloat1, paramFloat2, paramInt4, paramFloat3, paramLong1, paramLong2, str1, str2, paramInt5, paramLong3, paramInt6);\r
-    }\r
-    if ((paramInt2 & 0x40) >> 6 == 1) {\r
-      Logger.i("实时定位");\r
-      performExecute(paramInt1, i, 6, paramInt3, paramDouble1, paramDouble2, paramDouble3, paramFloat1, paramFloat2, paramInt4, paramFloat3, paramLong1, paramLong2, str1, str2, paramInt5, paramLong3, paramInt6);\r
-    }\r
-    if ((paramInt2 & 0x80) >> 7 == 1) {\r
-      Logger.i("摇一摇");\r
-      Runtime runtime1 = runtime;\r
-      LocationClient locationClient = this;\r
-//      ServiceUtil.offerQueue(API.H15(runtime1, locationClient.mWifiInfo, locationClient.mCellInfo, 7));\r
-    }\r
-    if ((paramInt2 & 0x100) >> 8 == 1) {\r
-      Logger.i("脱落报警");\r
-      performExecute(paramInt1, i, 8, paramInt3, paramDouble1, paramDouble2, paramDouble3, paramFloat1, paramFloat2, paramInt4, paramFloat3, paramLong1, paramLong2, str1, str2, paramInt5, paramLong3, paramInt6);\r
-    }\r
-    if ((paramInt2 & 0x200) >> 9 == 1) {\r
-      Logger.i("照相定位");\r
-      performExecute(paramInt1, i, 9, paramInt3, paramDouble1, paramDouble2, paramDouble3, paramFloat1, paramFloat2, paramInt4, paramFloat3, paramLong1, paramLong2, str1, str2, paramInt5, paramLong3, paramInt6);\r
-    }\r
-    if ((paramInt2 & 0x400) >> 10 == 1) {\r
-      Logger.i("获取经纬度");\r
-      performExecute(paramInt1, i, 10, paramInt3, paramDouble1, paramDouble2, paramDouble3, paramFloat1, paramFloat2, paramInt4, paramFloat3, paramLong1, paramLong2, str1, str2, paramInt5, paramLong3, paramInt6);\r
-    }\r
-    if ((paramInt2 & 0x800) >> 11 == 1) {\r
-      Logger.i("获取天气");\r
-      performExecute(paramInt1, i, 11, paramInt3, paramDouble1, paramDouble2, paramDouble3, paramFloat1, paramFloat2, paramInt4, paramFloat3, paramLong1, paramLong2, str1, str2, paramInt5, paramLong3, paramInt6);\r
+    this.mLock.lock();\r
+    try {\r
+      linkOK = true;\r
+      this.mCondition.signal();\r
+\r
+    } finally {\r
+      this.mLock.unlock();\r
     }\r
   }\r
+  MyThread2 mythread2=null;\r
 \r
   public void start() {\r
+\r
+\r
     this.mSignalUtil = SimSignalUtil.getInstance((runtime.getContextProxy()).context);\r
     // 开启计步\r
 //    EqcAlgorithmNative.EqcAlgorithmNativeSetInterface(this);\r
@@ -781,20 +810,21 @@ public void updateCellInfo() {
     if (SharPreferenceUtil.getPrefInt((runtime.getContextProxy()).context, "value_setting_ver", 0) == Config.value_setting) {\r
       //如果value_setting_ver = Config.value_setting 表示采用已经保存的模式\r
       runtime.getLocationInstance().setWorkingMod(SharPreferenceUtil.getPrefInt((runtime.getContextProxy()).context, LACATION_MODE, ICLocation.NORMAL_MOD));\r
-      runtime.getLocationInstance().setLocation_cycle(SharPreferenceUtil.getPrefInt((runtime.getContextProxy()).context, LACATION_CYCLE, 15));\r
+//      runtime.getLocationInstance().setLocation_cycle(SharPreferenceUtil.getPrefInt((runtime.getContextProxy()).context, LACATION_CYCLE, 3));\r
+//      runtime.getLocationInstance().setLocation_cycle(15);\r
     } else {\r
       //否则设置一个默认值\r
       SharPreferenceUtil.setPrefInt((runtime.getContextProxy()).context, "value_setting_ver", Config.value_setting);\r
       SharPreferenceUtil.setPrefInt((runtime.getContextProxy()).context, LACATION_MODE, ICLocation.NORMAL_MOD);\r
-      SharPreferenceUtil.setPrefInt((runtime.getContextProxy()).context, LACATION_CYCLE, 15);\r
+//      SharPreferenceUtil.setPrefInt((runtime.getContextProxy()).context, LACATION_CYCLE, 3);\r
       runtime.getLocationInstance().setWorkingMod(ICLocation.NORMAL_MOD);\r
-      runtime.getLocationInstance().setLocation_cycle(15);\r
+//      runtime.getLocationInstance().setLocation_cycle(15);\r
     }\r
     StringBuilder stringBuilder = new StringBuilder();\r
     stringBuilder.append("value_setting=");\r
     stringBuilder.append(SharPreferenceUtil.getPrefInt((runtime.getContextProxy()).context, "value_setting_ver", 0));\r
     stringBuilder.append("LACATION_MODE=");\r
-    stringBuilder.append(SharPreferenceUtil.getPrefInt((runtime.getContextProxy()).context, LACATION_MODE, 2));\r
+    stringBuilder.append(SharPreferenceUtil.getPrefInt((runtime.getContextProxy()).context, LACATION_MODE, 1));\r
     stringBuilder.append("LACATION_CYCLE=");\r
     stringBuilder.append(SharPreferenceUtil.getPrefInt((runtime.getContextProxy()).context, LACATION_CYCLE, 3));\r
     Logger.i(stringBuilder.toString());\r
@@ -806,37 +836,46 @@ public void updateCellInfo() {
     (runtime.getContextProxy()).context.registerReceiver(this.screenOnReceiver, intentFilter);\r
 \r
     /*启动 阻塞队列buffer 发送县城,随时准备发送buffer的message*/\r
-    (new MyThread2(this.mCondition, this.mLock)).start();\r
-\r
+//    if (mythread2 == null)\r
+//      mythread2 = new MyThread2(this.mCondition, this.mLock);\r
+//    mythread2.exitthread=false;\r
+//    mythread2.start();\r
     this.haveChanegTo4GTime = SystemClock.elapsedRealtime();\r
   }\r
   \r
   public void stop() {\r
 \r
+//     mythread2.exitthread=true;\r
+//    if (mythread2 != null){\r
+////      triggerSendThread();\r
+////      mythread2.stop();\r
+//      mythread2=null;\r
+//    }\r
     (runtime.getContextProxy()).context.unregisterReceiver(this.screenOnReceiver);\r
 //    this.executor.execute(new Runnable() {\r
 //          public void run() { LocationClient.AP16Queue(); }\r
 //        });\r
     this.gSensorListener.stopListen();\r
+    mLbsHelper.unRegisterBroadReceiver();\r
     stopGpsLocate();\r
   }\r
   \r
   static class MyThread2 extends Thread {\r
-//    Condition condition;\r
-//\r
-//    boolean isResent = false;\r
-//\r
-//    ReentrantLock lock;\r
+    Condition condition;\r
+\r
+    boolean isResent = false;\r
+    public boolean exitthread=false;\r
+    ReentrantLock lock;\r
     \r
     public MyThread2(Condition param1Condition, ReentrantLock param1ReentrantLock) {\r
-//      this.condition = param1Condition;\r
-//      this.lock = param1ReentrantLock;\r
+      this.condition = param1Condition;\r
+      this.lock = param1ReentrantLock;\r
     }\r
     \r
     public void run() {\r
       StringMessage stringMessage = null;\r
 \r
-      while (true) {\r
+      while (!exitthread) {\r
 \r
         //循环发送queue 中的数据\r
 \r
@@ -849,47 +888,59 @@ public void updateCellInfo() {
             if (runtime.getSignalStrength() + 110 < LocationClient.getMinSignalStrength(SimSignalUtil.getInstance((runtime.getContextProxy()).context).getNetworkType())) {\r
               Logger.i("Skip Send for SignalStrengh "+(runtime.getSignalStrength() + 110 )+" < "+LocationClient.getMinSignalStrength(SimSignalUtil.getInstance((runtime.getContextProxy()).context).getNetworkType()));\r
               //如果信号不好,把msg放回去\r
+\r
               LocationClient.queue.putFirst(stringMessage1);\r
 \r
             } else {\r
 \r
-              stringMessage=stringMessage1;\r
-\r
-               Context context = (runtime.getContextProxy()).context;\r
-               StringBuilder stringBuilder = new StringBuilder();\r
-              stringBuilder.append("send=");\r
-              stringBuilder.append(stringMessage.cmd());\r
-              stringBuilder.append(", ");\r
-              stringBuilder.append(stringMessage.isFromCache());\r
-              FileOutputUtil.fileOutput(context, "MessageInfo", stringBuilder.toString());\r
-              Logger.i(stringBuilder.toString());\r
-\r
-              connection.send(stringMessage);\r
-\r
-//              this.lock.lock();\r
-//              LocationClient.linkOK=false;\r
-//              try {\r
-//                if (KeepAlive.isConnected) {\r
-//                  //如果 服务器连接状态,等30秒\r
-//                  Logger.i("KeepAlive.isConnected "+KeepAlive.isConnected+" delay 30000ms");\r
-//                  this.condition.await(30000L, TimeUnit.MILLISECONDS);\r
-//                } else {\r
-//                  //如果服务器断开,等5秒 以便连接后尽快响应\r
-                  Logger.i("KeepAlive.isConnected "+KeepAlive.isConnected+ "  , connection isconnected "+connection.isServerConnected()+" delay 1000ms");\r
-                  Thread.sleep(1000);\r
-//                  this.condition.await(1000L, TimeUnit.MILLISECONDS);\r
-//                }\r
-//                if (linkOK) {\r
-//                  if (stringMessage.all() != null && stringMessage.all()[0].equals("AP16")) {\r
-//                    this.isResent = false;\r
-//                    Logger.i( " AP16 need wait for wifi scan list");\r
-//                    Deliver.releaseWakeLockForGetWifiList();\r
-//                  }\r
-\r
-//\r
-//              } finally {\r
-//                this.lock.unlock();\r
-//              }\r
+                stringMessage=stringMessage1;\r
+\r
+                Context context = (runtime.getContextProxy()).context;\r
+                StringBuilder stringBuilder = new StringBuilder();\r
+                stringBuilder.append("send=");\r
+                stringBuilder.append(stringMessage.cmd());\r
+                stringBuilder.append(", ");\r
+                stringBuilder.append(stringMessage.isFromCache());\r
+                FileOutputUtil.fileOutput(context, "MessageInfo", stringBuilder.toString());\r
+                Logger.i(stringBuilder.toString());\r
+              if( connection.isServerConnected() ==false  && !KeepAlive.isConnected  ) {\r
+\r
+                Logger.i("Skip Send for connection and KeepAlive both false ");\r
+                //发现连接断开则重试连接\r
+                protocolMainServer.getInstance().startConnectionRetryTimer();\r
+                //连接断开就把msg放回队列,以便重发\r
+                LocationClient.queue.putFirst(stringMessage1);\r
+              }else{\r
+                //连接状态都正常才发送包\r
+                connection.send(stringMessage);\r
+              }\r
+\r
+\r
+              this.lock.lock();\r
+              LocationClient.linkOK=false;\r
+              try {\r
+                if (KeepAlive.isConnected) {\r
+                  //如果 服务器连接状态,等30秒\r
+                  Logger.i("KeepAlive.isConnected "+KeepAlive.isConnected+" delay 30000ms");\r
+                  this.condition.await(30000L, TimeUnit.MILLISECONDS);\r
+                } else {\r
+                  //如果服务器断开,等5秒 以便连接后尽快响应\r
+                Logger.i("KeepAlive.isConnected "+KeepAlive.isConnected+ "  , connection isconnected "+connection.isServerConnected()+" delay 5000ms");\r
+\r
+                  this.condition.await(5000L, TimeUnit.MILLISECONDS);\r
+                }\r
+                if (linkOK) {\r
+                  if (stringMessage.all() != null && stringMessage.all()[0].equals("AP16")) {\r
+                    this.isResent = false;\r
+                    Logger.i( " AP16 need wait for wifi scan list");\r
+                    Deliver.releaseWakeLockForGetWifiList();\r
+                  }\r
+                }\r
+              } catch (InterruptedException e) {\r
+                e.printStackTrace();\r
+              }finally{\r
+                this.lock.unlock();\r
+              }\r
             }\r
           } catch (Exception e) {\r
             e.printStackTrace();\r
index 66256ef..a9e924e 100644 (file)
@@ -1,6 +1,9 @@
 package com.ic.protocol;
 
+import android.content.Context;
 import android.content.Intent;
+import android.content.pm.PackageInfo;
+import android.content.pm.PackageManager;
 import android.os.Handler;
 import android.os.Message;
 import android.support.v7.app.AppCompatActivity;
@@ -60,9 +63,32 @@ public class MainActivity extends AppCompatActivity {
         };
         new Timer().schedule(tmt,0,2000);
 
+        TextView tv_version=(TextView)findViewById(R.id.textViewVersion);
+        tv_version.setText(   getVersionName(this));
 
     }
 
+    /**
+     * 得到当前应用版本名称的方法
+     *
+     * @param context
+     *            :上下文
+     * @throws Exception
+     */
+    public static String getVersionName(Context context)  {
+        // 获取packagemanager的实例
+        PackageManager packageManager = context.getPackageManager();
+        // getPackageName()是你当前类的包名
+        PackageInfo packInfo = null;
+        String version="V001";
+        try {
+            packInfo = packageManager.getPackageInfo(context.getPackageName(), 0);
+            version = packInfo.versionName;
+        } catch (PackageManager.NameNotFoundException e) {
+            e.printStackTrace();
+        }
+         return version;
+    }
 
 
     private View.OnClickListener clickListener = new View.OnClickListener() {
index 882e61b..a866290 100644 (file)
@@ -218,7 +218,7 @@ public class LBSHelper {
         }, 10000L);\r
     }\r
 \r
-    private void unRegisterBroadReceiver() {\r
+    public void unRegisterBroadReceiver() {\r
         this.context.unregisterReceiver(this.wifiChangedReceiver);\r
     }\r
 \r
index ae3be19..9076835 100644 (file)
@@ -8,7 +8,6 @@ import com.ic.protocol.bean.Runtime;
 import com.ic.protocol.bean.StringMessage;\r
 import com.ic.protocol.utils.Connection;\r
 import com.ic.protocol.utils.Logger;\r
-import com.ic.protocol.utils.ServiceUtil;\r
 import com.ic.protocol.utils.SharPreferenceUtil;\r
 \r
 import java.util.HashMap;\r
@@ -358,7 +357,7 @@ public class protocolAPIHelper {
         String replacement=new StringBuilder("IWBP85,").append(imei).append(",").toString();\r
         String replycmd = cmd.replace(replacement,"");\r
         Logger.i("gen reply "+replacement+" "+replycmd);\r
-        ServiceUtil.offerQueue(genStringMessage("AP85",AP85(runtime,replycmd)));\r
+        connection.send(genStringMessage("AP85",AP85(runtime,replycmd)));\r
     }\r
 \r
 \r
@@ -397,17 +396,20 @@ public class protocolAPIHelper {
                     Cycle=60;\r
                     break;\r
                 case ICLocation.EMERGNECY_MOD:\r
+                case ICLocation.REALTIME_MOD:\r
                     Cycle=1;\r
                     break;\r
+\r
             }\r
 \r
             String msg=AP33(cmdlist[2],mod);\r
             //设定当前工作模式及循环频率\r
-            ServiceUtil.offerQueue(genStringMessage("AP33",msg));\r
+            connection.send(genStringMessage("AP33",msg));\r
             log("reply msg "+msg);\r
+            log("LACATION_MODE  "+LACATION_MODE+" mod "+ mod);\r
             SharPreferenceUtil.setPrefInt((runtime.getContextProxy()).context, "value_setting_ver", Config.value_setting);\r
             SharPreferenceUtil.setPrefInt((runtime.getContextProxy()).context, LACATION_MODE, mod);\r
-            SharPreferenceUtil.setPrefInt((runtime.getContextProxy()).context, LACATION_CYCLE, Cycle);\r
+//            SharPreferenceUtil.setPrefInt((runtime.getContextProxy()).context, LACATION_CYCLE, Cycle);\r
             runtime.getLocationInstance().setWorkingMod(mod);\r
             runtime.getLocationInstance().setLocation_cycle(Cycle);\r
 \r
@@ -446,7 +448,7 @@ public class protocolAPIHelper {
         if(cmdlist.length==3){\r
             log("imei "+cmdlist[1]+", cmdindex "+cmdlist[2]);\r
 \r
-            ServiceUtil.offerQueue(genStringMessage("AP16",AP16(cmdlist[2])));\r
+            connection.send(genStringMessage("AP16",AP16(cmdlist[2])));\r
         }else{\r
             log("error BP16 format");\r
         }\r
diff --git a/app/src/main/java/com/ic/protocol/bean/Config.java b/app/src/main/java/com/ic/protocol/bean/Config.java
deleted file mode 100644 (file)
index ee39414..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-package com.ic.protocol.bean;\r
-\r
-public class Config {\r
-    private String ServerIP="118.178.155.223";\r
-    private int ServerPort=8090;\r
-    private String ServerHostname="watch.jiai.pro";\r
-\r
-\r
-    public String getServerIP(){\r
-        return ServerIP;\r
-    }\r
-    public int getServerPort(){\r
-        return ServerPort;\r
-    }\r
-    public String getServerHostname(){\r
-        return ServerHostname;\r
-    }\r
-\r
-}\r
index ef9f858..46d487d 100644 (file)
@@ -32,6 +32,7 @@ public class ICLocation {
     public static final int NORMAL_MOD=1;     //location rate 1 time per 15 minutes\r
     public static final int LOWPOWER_MOD=2;   // location rate 1 time per hour\r
     public static final int EMERGNECY_MOD=3; //location rate 1 time per minutes\r
+    public static final int REALTIME_MOD=4; //location rate 1 time per minutes\r
 \r
 \r
     private int mworkingMod;\r
index 3742c75..ba14d43 100644 (file)
@@ -96,7 +96,10 @@ public class CheckSIM extends AbstractConnectionService {
   \r
   public boolean onConnectionOpen(Connection paramConnection, Runtime paramRuntime) { return false; }\r
   \r
-  public void onDetach(Connection paramConnection, Runtime paramRuntime) {}\r
+  public void onDetach(Connection paramConnection, Runtime paramRuntime) {\r
+\r
+    (paramRuntime.getContextProxy()).context.unregisterReceiver(this.SimStateReceive);\r
+  }\r
   \r
   public boolean onReceive(StringMessage paramStringMessage, Connection paramConnection, Runtime paramRuntime) { return false; }\r
 }\r
index bf4540b..cbcc6f7 100644 (file)
@@ -244,6 +244,7 @@ public class KeepAlive extends AbstractConnectionService {
   }\r
   \r
   public boolean onConnectionClose(Connection paramConnection, Runtime paramRuntime) {\r
+    if (isConnected) protocolMainServer.getInstance().startConnectionRetryTimer();\r
     connectionError = true;\r
     isConnected = false;\r
     paramRuntime.getContextProxy().sendBroadcast(isConnected);\r
@@ -265,8 +266,8 @@ public class KeepAlive extends AbstractConnectionService {
     Logger.i(stringBuilder.toString());\r
 //    if (!connectionError) {\r
       connectionError = false;\r
-    ServiceUtil.offerQueue(protocolAPIHelper.genStringMessage("AP00",protocolAPIHelper.AP00(paramRuntime)),true);\r
-    ServiceUtil.offerQueue(protocolAPIHelper.genStringMessage("heart",protocolAPIHelper.AP03(paramRuntime)));\r
+    connection.send(protocolAPIHelper.genStringMessage("AP00",protocolAPIHelper.AP00(paramRuntime)));\r
+    connection.send(protocolAPIHelper.genStringMessage("heart",protocolAPIHelper.AP03(paramRuntime)));\r
 //      if (Deliver.haveSendH42) {\r
 //        ServiceUtil.offerQueue(new StringMessage(protocolAPIHelper.AP03(paramRuntime)));\r
 //        Deliver.haveSendH42 = false;\r
@@ -293,8 +294,8 @@ public class KeepAlive extends AbstractConnectionService {
     Logger.i("onHeartAlarm");\r
 //    UpdateHeartBeatTimeout();\r
 //    if (this.reCycleTimes == 0 && this.currentReConnectInterval != 11){\r
-    ServiceUtil.offerQueue(protocolAPIHelper.genStringMessage("AP00",protocolAPIHelper.AP00(paramRuntime)),true);\r
-    ServiceUtil.offerQueue(protocolAPIHelper.genStringMessage("heart",protocolAPIHelper.AP03(paramRuntime)));\r
+    paramNettyConnection.send(protocolAPIHelper.genStringMessage("AP00",protocolAPIHelper.AP00(paramRuntime)));\r
+    paramNettyConnection.send(protocolAPIHelper.genStringMessage("heart",protocolAPIHelper.AP03(paramRuntime)));\r
  //    }\r
 \r
   }\r
diff --git a/app/src/main/java/com/ic/protocol/service/connectionServer.java b/app/src/main/java/com/ic/protocol/service/connectionServer.java
deleted file mode 100644 (file)
index d32a705..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-package com.ic.protocol.service;\r
-\r
-import com.ic.protocol.bean.StringMessage;\r
-import com.ic.protocol.utils.Connection;\r
-\r
-public class connectionServer implements Connection {\r
-    @Override\r
-    public void close() {\r
-\r
-    }\r
-\r
-    @Override\r
-    public void connect(String paramString, int paramInt) {\r
-\r
-    }\r
-\r
-    @Override\r
-    public void disconnect() {\r
-\r
-    }\r
-\r
-    @Override\r
-    public int getTimeout() {\r
-        return 0;\r
-    }\r
-\r
-    @Override\r
-    public void open() {\r
-\r
-    }\r
-\r
-    @Override\r
-    public void send(StringMessage paramStringMessage) {\r
-\r
-    }\r
-\r
-    @Override\r
-    public boolean sendBlocking(StringMessage paramStringMessage) {\r
-        return false;\r
-    }\r
-\r
-    @Override\r
-    public void setTimeout(int paramInt) {\r
-\r
-    }\r
-}\r
index 921d3e0..4b5ac7b 100644 (file)
@@ -22,8 +22,6 @@ import com.ic.protocol.Constants;
 import com.ic.protocol.LocationClient;\r
 import com.ic.protocol.adapter.LBSHelper;\r
 import com.ic.protocol.adapter.protocolAPIHelper;\r
-import com.ic.protocol.bean.Config;\r
-import com.ic.protocol.bean.ICLocation;\r
 import com.ic.protocol.bean.Runtime;\r
 import com.ic.protocol.bean.StringMessage;\r
 import com.ic.protocol.service.base.AbstractConnectionService;\r
@@ -37,7 +35,6 @@ import com.ic.protocol.utils.DBHelper;
 import com.ic.protocol.utils.FileOutputUtil;\r
 import com.ic.protocol.utils.Logger;\r
 import com.ic.protocol.utils.NettyConnection;\r
-import com.ic.protocol.utils.ServiceUtil;\r
 import com.ic.protocol.utils.SharPreferenceUtil;\r
 import com.ic.protocol.utils.SimSignalUtil;\r
 import com.ic.protocol.utils.Util;\r
@@ -60,6 +57,7 @@ import java.util.TimerTask;
 import static android.app.PendingIntent.FLAG_UPDATE_CURRENT;\r
 import static com.ic.protocol.Constants.ACTION_ALARM_ADD_DATAPOINTS;\r
 import static com.ic.protocol.Constants.ACTION_EQC_ALARM;\r
+import static com.ic.protocol.Constants.ACTION_LOCATION_ALARM;\r
 import static com.ic.protocol.Constants.HEART_ALARM;\r
 import static com.ic.protocol.Constants.SLEEP_ALARM;\r
 import static com.ic.protocol.Constants.WAKE_ALARM;\r
@@ -95,7 +93,7 @@ public class protocolMainServer extends Service {
     public String getServerAlive(){\r
         return new StringBuilder().append("Connecttion status is ").append(this.connection.isServerConnected())\r
                 .append("\n KeepAlive ").append(KeepAlive.isConnected)\r
-                .append( "\n cmd Queue size ").append(LocationClient.queue.size())\r
+                .append( "\n Working Mode ").append(runtime.getLocationInstance().getWorkingMod()).append("  queue size ").append(LocationClient.queue.size())\r
                 .append("\n AP01 = ").append(protocolAPIHelper.AP01(runtime))\r
                 .toString();\r
     }\r
@@ -140,8 +138,9 @@ public class protocolMainServer extends Service {
             Logger.i(stringBuilder1.toString());\r
             protocolMainServer.this.setSleepAlarm();\r
             protocolMainServer.this.setWakeAlarm();\r
-            protocolMainServer.this.setHeartAlarm();\r
+            protocolMainServer.this.setHeartAlarm(runtime.getLocationInstance().getWorkingMod());\r
             protocolMainServer.this.setWeatherAlarm();\r
+            protocolMainServer.this.setLocationAlarm();\r
             if (protocolMainServer.this.cmcm_call_eiot_into_powersave_mode() == 0)\r
                 AlarmWakeUp.isNeedWakeUpAlarm(protocolMainServer.this.runtime);\r
         }\r
@@ -156,7 +155,9 @@ public class protocolMainServer extends Service {
             protocolMainServer coreService = (protocolMainServer)this.mReference.get();\r
             if (coreService == null)\r
                 return;\r
-            Logger.i("onConnectionClose++");\r
+            Logger.i("onConnectionClose++ retry to connect again!");\r
+\r
+//            startConnectionRetryTimer();\r
             String ip=Util.parseHostGetIPAddress(coreService.runtime.getHost());\r
             if ( ip !=null && ! ip.equals(coreService.runtime.getSrvIP())){\r
                 Logger.i("HostName "+coreService.runtime.getHost()+ " IP changed from "+coreService.runtime.getSrvIP()+" to "+ip);\r
@@ -174,8 +175,9 @@ public class protocolMainServer extends Service {
         }\r
 \r
         public void onReceive(StringMessage param1StringMessage) {\r
-            Logger.i("onReceive " +param1StringMessage.cmd());\r
+\r
             protocolMainServer coreService = (protocolMainServer)this.mReference.get();\r
+            Logger.i("onReceive " +param1StringMessage.cmd() +" coreService " + coreService  );\r
             if (coreService == null)\r
                 return;\r
             coreService.connectionServiceChain.processServerResponse(param1StringMessage, coreService.connection, coreService.runtime);\r
@@ -386,8 +388,12 @@ public class protocolMainServer extends Service {
     public IBinder onBind(Intent paramIntent) { return this.mMessenger.getBinder(); }\r
 \r
 \r
-    public void onCreateCore() {\r
+    @Override\r
+    public void onCreate() {\r
         Logger.i("CoreService--onCreate002");\r
+        log("开始监听网络协议状态");\r
+        mProtocolServer=this;\r
+\r
         this.runtime = new Runtime();\r
         this.runtime.setFileDir(getFilesDir());\r
         this.runtime.setCacheDir(getExternalCacheDir());\r
@@ -428,8 +434,9 @@ public class protocolMainServer extends Service {
         setCleanStepCountAlarm();\r
         setSleepAlarm();\r
         setWakeAlarm();\r
-        setHeartAlarm();\r
+        setHeartAlarm(runtime.getLocationInstance().getWorkingMod());\r
         setWeatherAlarm();\r
+        setLocationAlarm();\r
         getDBFile();\r
     }\r
 \r
@@ -460,6 +467,7 @@ public class protocolMainServer extends Service {
                 if (!screenon) {\r
                     send_at_to_update_lbs();\r
                 }\r
+                //这里就是为了省电,如果wifi开启,且屏幕关闭,则wifi也关闭\r
                 if (Util.isConnectWifi((this.runtime.getContextProxy()).context) && !screenon) {\r
                     is_wifi_network_ok = true;\r
                     Util.turnOffWifiForSleep((this.runtime.getContextProxy()).context, this.runtime);\r
@@ -512,8 +520,8 @@ public class protocolMainServer extends Service {
                     if (HEART_ALARM.equals(paramIntent.getAction())) {\r
                         if (this.mKeepAlive != null) {\r
                             this.mKeepAlive.onHeartAlarm(this.connection, this.runtime);\r
-                            setHeartAlarm();\r
-                            FileOutputUtil.fileOutput(this, "alarmCycle", "HEART_ALARM alarmCycle");\r
+                            setHeartAlarm(runtime.getLocationInstance().getWorkingMod());\r
+                            FileOutputUtil.fileOutput(this, "alarmCycle", "HEART_ALARM alarmCycle  " +runtime.getLocationInstance().getWorkingMod());\r
                             return Service.START_STICKY;\r
                         }\r
                     } else {\r
@@ -542,6 +550,16 @@ public class protocolMainServer extends Service {
                             FileOutputUtil.fileOutput(this, "alarmCycle", stringBuilder1.toString());\r
                             return Service.START_STICKY;\r
                         }\r
+                        if (ACTION_LOCATION_ALARM.equals(paramIntent.getAction())){\r
+                            setLocationAlarm();\r
+                            stringBuilder1 = new StringBuilder();\r
+                            stringBuilder1.append("LOCATION_ALARM  alarmCycle=");\r
+                            stringBuilder1.append(alarmCycle);\r
+                            FileOutputUtil.fileOutput(this, "alarmCycle", stringBuilder1.toString());\r
+                            this.locationClient.triggerLocationProcess();\r
+                            return Service.START_STICKY;\r
+\r
+                        }\r
 \r
 //                        if (Constants.ACTION_PASS_DATA_TO_CM_SERVICES.equals(paramIntent.getAction())) {\r
 //                            deliverDataToCmApp(paramIntent.getIntExtra("cmdId", 0), paramIntent.getStringExtra("cmdJsonData"));\r
@@ -591,23 +609,57 @@ public class protocolMainServer extends Service {
 \r
     //每一分钟设置一次\r
     public void setAlarm(int paramInt) {\r
-        AlarmHelper.setRealTimeAlarm(runtime.getContextProxy().context,1,ACTION_ALARM);\r
+        AlarmHelper.setRealTimeAlarm(runtime.getContextProxy().context,paramInt,ACTION_ALARM);\r
+    }\r
+\r
+    public void setLocationAlarm() {\r
+        int mod=runtime.getLocationInstance().getWorkingMod();\r
+        StringBuilder sb=new StringBuilder();\r
+        switch(mod){\r
+            case EMERGNECY_MOD:\r
+            case REALTIME_MOD:\r
+                AlarmHelper.setRealTimeAlarm(runtime.getContextProxy().context,1, ACTION_LOCATION_ALARM);\r
+                sb.append(" setLocationAlarm  "+ACTION_LOCATION_ALARM+" Mode "+mod+", cycle 1");\r
+                break;\r
+            case NORMAL_MOD:\r
+                AlarmHelper.setRealTimeAlarm(runtime.getContextProxy().context,15, ACTION_LOCATION_ALARM);\r
+                sb.append(" setLocationAlarm  "+ACTION_LOCATION_ALARM+" Mode "+mod+", cycle 15");\r
+\r
+                break;\r
+            case LOWPOWER_MOD:\r
+                AlarmHelper.setRealTimeAlarm(runtime.getContextProxy().context,60, ACTION_LOCATION_ALARM);\r
+                sb.append(" setLocationAlarm  "+ACTION_LOCATION_ALARM+" Mode "+mod+", cycle 60");\r
+                break;\r
+        }\r
+        locationClient.triggerLocationProcess();\r
+        Logger.i(sb.toString());\r
+        FileOutputUtil.fileOutput(runtime.getContextProxy().context,"LocationAlarm",sb.toString());\r
     }\r
 \r
-    public void setHeartAlarm() {\r
-        switch(runtime.getLocationInstance().getWorkingMod()){\r
+    public void setHeartAlarm(int mod){\r
+//        int mod=runtime.getLocationInstance().getWorkingMod();\r
+        StringBuilder sb=new StringBuilder();\r
+        int cycle=1;\r
+        switch(mod){\r
             case EMERGNECY_MOD:\r
-                AlarmHelper.setRealTimeAlarm(runtime.getContextProxy().context,1, HEART_ALARM);\r
+            case REALTIME_MOD:\r
+                cycle=1;\r
                 break;\r
             case NORMAL_MOD:\r
-                AlarmHelper.setRealTimeAlarm(runtime.getContextProxy().context,15, HEART_ALARM);\r
+                cycle=15;\r
                 break;\r
             case LOWPOWER_MOD:\r
-                AlarmHelper.setRealTimeAlarm(runtime.getContextProxy().context,60, HEART_ALARM);\r
+                cycle=60;\r
                 break;\r
         }\r
+        AlarmHelper.setRealTimeAlarm(runtime.getContextProxy().context,cycle, HEART_ALARM);\r
+        sb.append(" setHeartAlarm  "+HEART_ALARM+" mod "+mod+", cycle "+cycle);\r
 \r
+        locationClient.triggerLocationProcess();\r
+        Logger.i(sb.toString());\r
+        FileOutputUtil.fileOutput(runtime.getContextProxy().context,"HeartAlarm",sb.toString());\r
 \r
+//        AlarmHelper.setRealTimeAlarm(runtime.getContextProxy().context,1, HEART_ALARM);\r
     }\r
 \r
     public void setUpLocationDataAlarm(long paramLong) {\r
@@ -659,9 +711,9 @@ public class protocolMainServer extends Service {
     private static boolean mLowPowerMode = false;\r
     private static boolean mCallStateIsIdle = true;     // 非通话活动\r
      private TelephonyManager telManager;\r
-    private Timer mTimer_keepalive=null;\r
+    private Timer mTimer_retry_connect=null;\r
     private WifiManager mWifiManager=null;\r
-    private Config mConfig=null;\r
+\r
     private static Runtime mDevStat=null;\r
 //    private protocolAPIHelper mProtocolAPI=null;\r
 \r
@@ -675,132 +727,86 @@ public class protocolMainServer extends Service {
     }\r
 \r
 \r
-    @Override\r
-    public void onCreate() {\r
-\r
-        log("开始监听网络协议状态");\r
-\r
-//        IntentFilter intentFilter = new IntentFilter();\r
-//        intentFilter.addAction(Intent.ACTION_BATTERY_LOW);       // 低电量提示\r
-//        intentFilter.addAction(Intent.ACTION_BATTERY_CHANGED);   // 低电量变化\r
-//        intentFilter.addAction(Intent.ACTION_MANAGE_NETWORK_USAGE);\r
-//        try {\r
-////            registerReceiver(mIntentReceiver, intentFilter);\r
-//        } catch (Exception ignored) {\r
-//        }\r
-\r
-\r
-//        telManager = (TelephonyManager) getApplicationContext().getSystemService(Service.TELEPHONY_SERVICE);\r
-//        assert telManager != null;\r
-//        telManager.listen(mCallStateListener, PhoneStateListener.LISTEN_CALL_STATE);\r
-\r
-\r
-//        init_protocols();\r
-\r
-//        startTimer();\r
-        mProtocolServer=this;\r
-\r
-        onCreateCore();\r
-        super.onCreate();\r
-    }\r
+//    @Override\r
+//    public void onCreate() {\r
+//\r
+//        log("开始监听网络协议状态");\r
+//\r
+////        IntentFilter intentFilter = new IntentFilter();\r
+////        intentFilter.addAction(Intent.ACTION_BATTERY_LOW);       // 低电量提示\r
+////        intentFilter.addAction(Intent.ACTION_BATTERY_CHANGED);   // 低电量变化\r
+////        intentFilter.addAction(Intent.ACTION_MANAGE_NETWORK_USAGE);\r
+////        try {\r
+//////            registerReceiver(mIntentReceiver, intentFilter);\r
+////        } catch (Exception ignored) {\r
+////        }\r
+//\r
+//\r
+////        telManager = (TelephonyManager) getApplicationContext().getSystemService(Service.TELEPHONY_SERVICE);\r
+////        assert telManager != null;\r
+////        telManager.listen(mCallStateListener, PhoneStateListener.LISTEN_CALL_STATE);\r
+//\r
+//\r
+////        init_protocols();\r
+//\r
+////        startTimer();\r
+//        mProtocolServer=this;\r
+//\r
+//        onCreateCore();\r
+//        super.onCreate();\r
+//    }\r
 \r
     public static protocolMainServer getInstance(){\r
         return mProtocolServer;\r
     }\r
-    private void init_protocols(){\r
+//    private void init_protocols(){\r
+//\r
+//        if (mDevStat == null) {\r
+//            mDevStat =new Runtime();\r
+//            log("new mDevStat");\r
+//        }\r
+////        if (mProtocolAPI == null) mProtocolAPI = new protocolAPIHelper();\r
+//        if (mWifiManager == null) mWifiManager = (WifiManager)this.getApplicationContext().getSystemService(Context.WIFI_SERVICE);\r
+//        if (lbshelper==null) lbshelper = new LBSHelper(this,mWifiManager,mDevStat);\r
+//\r
+//        toast = new Toastc(this, Toast.LENGTH_SHORT);\r
+//\r
+//    }\r
 \r
-        if (mConfig == null) mConfig = new Config();\r
-        if (mDevStat == null) {\r
-            mDevStat =new Runtime();\r
-            log("new mDevStat");\r
+    public void startConnectionRetryTimer(){\r
+        if (mTimer_retry_connect == null) {\r
+            mTimer_retry_connect = new Timer();\r
         }\r
-//        if (mProtocolAPI == null) mProtocolAPI = new protocolAPIHelper();\r
-        if (mWifiManager == null) mWifiManager = (WifiManager)this.getApplicationContext().getSystemService(Context.WIFI_SERVICE);\r
-        if (lbshelper==null) lbshelper = new LBSHelper(this,mWifiManager,mDevStat);\r
-\r
-        toast = new Toastc(this, Toast.LENGTH_SHORT);\r
-\r
-    }\r
 \r
-    private void startTimer(){\r
-        if (mTimer_keepalive == null) {\r
-            mTimer_keepalive = new Timer();\r
-        }\r
+        //如果开始进行连接重试,证明网络断开的,那么KeepAlive也需要重连(心跳包)\r
 \r
-        if (mTimer_keepalive !=null){\r
-            mTimer_keepalive.schedule(new TimerTask() {\r
+        KeepAlive.isConnected=false;\r
+        if (mTimer_retry_connect !=null){\r
+            mTimer_retry_connect.schedule(new TimerTask() {\r
                 @Override\r
                 public void run() {\r
                     do_timer_task();\r
                 }\r
-            },0,20000);\r
+            },0,5000); //每5秒重试一次\r
         }\r
     }\r
 \r
-    public class WifiInfolistener implements LBSHelper.OnWiFiInfoListener {\r
-\r
-        @Override\r
-        public void getWifiInfoCallBack(String aplist) {\r
-\r
-            if (aplist !=null && aplist!="null") {\r
-                log("getWifiInfoCallBack " + aplist);\r
-                mDevStat.setWifiinfo(aplist);\r
-//                String[] list = var1.split("\\+");\r
-//                for (String p : list){\r
-//                    String[] lp=p.split("@");\r
-//                    if (lp.length>=2)\r
-//                    {\r
-//                        mDevStat.getLocationInstance().append_wifiap(lp[0].replace(":","-"),Integer.valueOf(lp[1]));\r
-//                     }else{\r
-//                        log("error format");\r
-//                    }\r
-//                }\r
-            }\r
-            else {\r
-                log("getWifiInfoCallBack wifi end");\r
-                mDevStat.setWifiinfo("");\r
-            }\r
-        }\r
-    }\r
     public void do_timer_task(){\r
 \r
-//        boolean needlogin=true;\r
-//        if(!isServerConnected()) {\r
-//            connectServer();\r
-//            needlogin=true;\r
-//        }\r
-//        if( needlogin){\r
-//            log("do_timer_task send cmd "+ mProtocolAPI.AP00(mDevStat));\r
-////        Handler callbackHandler=new Handler();\r
-//            String serverip = parseHostGetIPAddress(mConfig.getServerHostname());\r
-//            log("getip  "+mConfig.getServerHostname()+"  "+serverip);\r
-////        mConfig.setServerIP(serverip);\r
-////        mConfig.setServerPort(8090);\r
-//            sendMsg(mProtocolAPI.AP00(mDevStat));\r
-//\r
-//\r
-//        }\r
-//        log("do_timer_task send cmd "+ mProtocolAPI.AP03(mDevStat));\r
-//        sendMsg(mProtocolAPI.AP03(mDevStat));\r
-//\r
-//        lbshelper.setOnWiFiInfoListener(new WifiInfolistener());\r
-//        lbshelper.getWifiInfo();\r
-//        lbshelper.getCellInfo(this.telManager);\r
-//\r
-//        log("do_timer_task send cmd "+ mProtocolAPI.AP01(mDevStat));\r
-//\r
-//        sendMsg(mProtocolAPI.AP01(mDevStat));\r
 \r
-    }\r
+        this.connection.connect(this.runtime.getSrvIP(), this.runtime.getPort());\r
 \r
-    public void testGpsData(){\r
-//       mProtocolAPI.AP01(mDevStat);\r
-//        log( mProtocolAPI.AP01(mDevStat));\r
+        //里面如果连接成功 connectionOpen 会先发送 AP00 登录包 和发送AP03 心跳包 ,都成功则停止重试\r
+         if (connection.isServerConnected() && KeepAlive.isConnected)\r
+         {\r
+             stopConnectionRetryTimer();\r
+         }\r
     }\r
-    private void stopTimer(){\r
-        if (mTimer_keepalive !=null){\r
-            mTimer_keepalive.cancel();\r
-            mTimer_keepalive = null;\r
+\r
+    public void stopConnectionRetryTimer(){\r
+        if (mTimer_retry_connect !=null){\r
+            mTimer_retry_connect.cancel();\r
+            mTimer_retry_connect = null;\r
         }\r
     }\r
 \r
@@ -824,6 +830,8 @@ public class protocolMainServer extends Service {
             unregisterReceiver(this.broadcastReceiver);\r
             unregisterReceiver(this.screenOnReceiver);\r
             unregisterReceiver(this.AtCallbackBroadcastReceiver);\r
+            batteryUtil.unregisterBroadReceiver();\r
+\r
     }\r
 \r
     private final BroadcastReceiver mIntentReceiver = new BroadcastReceiver() {\r
index 9b7ac59..5067a6f 100644 (file)
@@ -48,6 +48,7 @@ public class AlarmHelper {
   \r
   public static void setAlarm(AlarmManager paramAlarmManager, long paramLong, PendingIntent paramPendingIntent) {\r
     setAlarm(paramAlarmManager, paramLong, 604800000L, paramPendingIntent);\r
+//    setAlarm(paramAlarmManager, paramLong, 0, paramPendingIntent);\r
   }\r
   \r
   public static void setCleanStepCountAlarm(Context context, int hour, int minutes, String paramString) {\r
index b1019c3..1702317 100644 (file)
@@ -37,11 +37,17 @@ public class CellInfoUtil {
         if (param1Message.what != 100)\r
           return; \r
         Logger.i("延时获取基站信息");\r
-//        CellInfoUtil.access$010();\r
+\r
         CellInfoUtil.setCurrentAttachCellInfo(mRuntime, mWakeLock);\r
+\r
+\r
       }\r
     };\r
-  \r
+\r
+\r
+  public static void triggerUpdateCellinfo(){\r
+    mHandler.sendEmptyMessageDelayed(100,2000);\r
+  }\r
   private static Runtime mRuntime;\r
   \r
   private static PowerManager.WakeLock mWakeLock;\r
@@ -70,63 +76,73 @@ public class CellInfoUtil {
     mRuntime = dev;\r
     (new Thread(new Runnable() {\r
           public void run() {\r
-            CellInfoUtil.mCellInfo=mRuntime.getLbsHelper().getAttchCellInfo(mRuntime.getContextProxy().getTelephonyManager());\r
-            if (mCellInfo != null) {\r
-              String str1 = mRuntime.getCdmaInfo();\r
-              String str2 = mRuntime.getMccAndMnc();\r
-              if (str1 != null) {\r
-                String[] arrayOfString2 = str2.split("@");\r
-                String[] arrayOfString1 = str1.split(",");\r
-                CellInfoUtil.MCC = Integer.parseInt(arrayOfString2[0]);\r
-                CellInfoUtil.MNC = Integer.parseInt(arrayOfString2[1]);\r
-                int i = Integer.parseInt(arrayOfString1[0]);\r
-                int j = Integer.parseInt(arrayOfString1[1]);\r
-                int k = Integer.parseInt(arrayOfString1[2]);\r
-                CellInfoUtil.BSSS = Integer.parseInt(arrayOfString1[5]);\r
+\r
+            if (mRuntime !=null) {\r
+              CellInfoUtil.mCellInfo = mRuntime.getLbsHelper().getAttchCellInfo(mRuntime.getContextProxy().getTelephonyManager());\r
+\r
+              if (mCellInfo != null) {\r
+                String str1 = mRuntime.getCdmaInfo();\r
+                String str2 = mRuntime.getMccAndMnc();\r
+                if (str1 != null) {\r
+                  String[] arrayOfString2 = str2.split("@");\r
+                  String[] arrayOfString1 = str1.split(",");\r
+                  CellInfoUtil.MCC = Integer.parseInt(arrayOfString2[0]);\r
+                  CellInfoUtil.MNC = Integer.parseInt(arrayOfString2[1]);\r
+                  int i = Integer.parseInt(arrayOfString1[0]);\r
+                  int j = Integer.parseInt(arrayOfString1[1]);\r
+                  int k = Integer.parseInt(arrayOfString1[2]);\r
+                  CellInfoUtil.BSSS = Integer.parseInt(arrayOfString1[5]);\r
 //                EqcAlgorithmNative.native_EqcAlgorithmMethod4(3, j, CellInfoUtil.BSSS, CellInfoUtil.MCC, CellInfoUtil.MNC, i, k);\r
-                CellInfoUtil.releaseWakeLock(mWakeLock);\r
-              } else {\r
-                String[] arrayOfString = mCellInfo.split("\\+")[0].split("@");\r
-                CellInfoUtil.MCC = Integer.parseInt(arrayOfString[0]);\r
-                CellInfoUtil.MNC = Integer.parseInt(arrayOfString[1]);\r
-                CellInfoUtil.LAC = Integer.parseInt(arrayOfString[2]);\r
-                CellInfoUtil.CELL_ID = Integer.parseInt(arrayOfString[3]);\r
-                CellInfoUtil.BSSS = Integer.parseInt(arrayOfString[4]);\r
+                  CellInfoUtil.releaseWakeLock(mWakeLock);\r
+                } else {\r
+                  String[] arrayOfString = mCellInfo.split("\\+")[0].split("@");\r
+                  CellInfoUtil.MCC = Integer.parseInt(arrayOfString[0]);\r
+                  CellInfoUtil.MNC = Integer.parseInt(arrayOfString[1]);\r
+                  CellInfoUtil.LAC = Integer.parseInt(arrayOfString[2]);\r
+                  CellInfoUtil.CELL_ID = Integer.parseInt(arrayOfString[3]);\r
+                  CellInfoUtil.BSSS = Integer.parseInt(arrayOfString[4]);\r
 //                CellInfoUtil.access$002(2);\r
-                CellInfoUtil.IS2SECOND=2;\r
+                  CellInfoUtil.IS2SECOND = 2;\r
 //                EqcAlgorithmNative.native_EqcAlgorithmMethod4(0, 0, CellInfoUtil.BSSS, CellInfoUtil.MCC, CellInfoUtil.MNC, CellInfoUtil.LAC, CellInfoUtil.CELL_ID);\r
-                mRuntime.cellinfo = mCellInfo;\r
-              } \r
-              FileOutputUtil.fileOutput((mRuntime.getContextProxy()).context, "onCellLocationChanged", mCellInfo);\r
-              CellInfoUtil.releaseWakeLock(mWakeLock);\r
-              return;\r
-            } \r
-            if (IS2SECOND <= 0) {\r
-              CellInfoUtil.MCC = 0;\r
-              CellInfoUtil.MNC = 0;\r
-              CellInfoUtil.LAC = 0;\r
-              CellInfoUtil.CELL_ID = -1;\r
-              CellInfoUtil.BSSS = 0;\r
+                  mRuntime.cellinfo = mCellInfo;\r
+                }\r
+                FileOutputUtil.fileOutput((mRuntime.getContextProxy()).context, "onCellLocationChanged", mCellInfo);\r
+                CellInfoUtil.releaseWakeLock(mWakeLock);\r
+                Logger.i(" setCurrentAttachCellInfo " + mCellInfo);\r
+\r
+              }\r
+              if (IS2SECOND <= 0) {\r
+                CellInfoUtil.MCC = 0;\r
+                CellInfoUtil.MNC = 0;\r
+                CellInfoUtil.LAC = 0;\r
+                CellInfoUtil.CELL_ID = -1;\r
+                CellInfoUtil.BSSS = 0;\r
 //              CellInfoUtil.access$002(2);\r
-              CellInfoUtil.IS2SECOND=2;\r
-              Runtime runtime = mRuntime;\r
-              StringBuilder stringBuilder = new StringBuilder();\r
-              stringBuilder.append(CellInfoUtil.MCC);\r
-              stringBuilder.append("@");\r
-              stringBuilder.append(CellInfoUtil.MNC);\r
-              stringBuilder.append("@");\r
-              stringBuilder.append(CellInfoUtil.LAC);\r
-              stringBuilder.append("@");\r
-              stringBuilder.append(CellInfoUtil.CELL_ID);\r
-              stringBuilder.append("@");\r
-              stringBuilder.append(CellInfoUtil.BSSS);\r
-              runtime.cellinfo = stringBuilder.toString();\r
+                CellInfoUtil.IS2SECOND = 2;\r
+                Runtime runtime = mRuntime;\r
+                StringBuilder stringBuilder = new StringBuilder();\r
+                stringBuilder.append(CellInfoUtil.MCC);\r
+                stringBuilder.append("@");\r
+                stringBuilder.append(CellInfoUtil.MNC);\r
+                stringBuilder.append("@");\r
+                stringBuilder.append(CellInfoUtil.LAC);\r
+                stringBuilder.append("@");\r
+                stringBuilder.append(CellInfoUtil.CELL_ID);\r
+                stringBuilder.append("@");\r
+                stringBuilder.append(CellInfoUtil.BSSS);\r
+                runtime.cellinfo = stringBuilder.toString();\r
 //              EqcAlgorithmNative.native_EqcAlgorithmMethod4(1, 0, CellInfoUtil.BSSS, CellInfoUtil.MCC, CellInfoUtil.MNC, CellInfoUtil.LAC, CellInfoUtil.CELL_ID);\r
-              FileOutputUtil.fileOutput((mRuntime.getContextProxy()).context, "onCellLocationChanged", mRuntime.cellinfo);\r
-              CellInfoUtil.releaseWakeLock(mWakeLock);\r
-              return;\r
-            } \r
-            CellInfoUtil.mHandler.sendEmptyMessageDelayed(100, 2000L);\r
+                FileOutputUtil.fileOutput((mRuntime.getContextProxy()).context, "onCellLocationChanged", mRuntime.cellinfo);\r
+                CellInfoUtil.releaseWakeLock(mWakeLock);\r
+                Logger.i(" setCurrentAttachCellInfo " + mCellInfo);\r
+\r
+              }\r
+              mRuntime.getLocationInstance().setMNC(String.valueOf(CellInfoUtil.getMNC()));\r
+              mRuntime.getLocationInstance().setCID(CellInfoUtil.getCELL_ID());\r
+              mRuntime.getLocationInstance().setMCC(String.valueOf(CellInfoUtil.getMCC()));\r
+              mRuntime.getLocationInstance().setLAC(CellInfoUtil.getLAC());\r
+              mRuntime.preCellInfo = CellInfoUtil.getCellInfo();\r
+            }\r
           }\r
         })).start();\r
   }\r
index 7b140af..51cc5d5 100644 (file)
@@ -1,8 +1,10 @@
 package com.ic.protocol.utils;\r
 \r
+import android.content.Intent;\r
 import android.os.SystemClock;\r
 \r
 \r
+import com.ic.protocol.LocationClient;\r
 import com.ic.protocol.adapter.protocolAPIHelper;\r
 import com.ic.protocol.bean.StringMessage;\r
 \r
@@ -39,7 +41,7 @@ public class NettyConnection implements Connection {
                 public boolean handleCmd(protocolAPIHelper.CMD_TYPE type, String cmd) {\r
 \r
                         boolean ret=true;\r
-\r
+                        Logger.i("handleCmd "+type.name() +" , cmd "+cmd);\r
                         switch (type){\r
                             case BP00:\r
                                 API.handleBP00(cmd);\r
@@ -73,9 +75,9 @@ public class NettyConnection implements Connection {
                                 break;\r
                             case BP33:\r
                                 //设置工作模式\r
-                                API.handleBP33(NettyConnection.this,null,cmd);\r
-                                DeliverCMDMessageToSystem("AP33",cmd);//通知下面线程状态变化\r
                                 DeliverCMDMessageToSystem("ResartHeartAlarm",cmd);//通知下面线程状态变化\r
+                                DeliverCMDMessageToSystem("AP33",cmd);//通知下面线程状态变化\r
+                                API.handleBP33(NettyConnection.this,null,cmd);\r
 \r
                                 break;\r
                             case BP16:\r
@@ -97,7 +99,7 @@ public class NettyConnection implements Connection {
   }\r
   \r
   public void close() {\r
-      listener =null;\r
+//      listener =null;\r
 //      RxSocket.getInstance().setConnectionListener(null);\r
   }\r
   \r
@@ -107,7 +109,7 @@ public class NettyConnection implements Connection {
       return; \r
     realtime_old = l;\r
     Logger.i("connect1 "+host+":"+port);\r
-    disconnect();\r
+//    disconnect();\r
     this.executorService.execute(new Runnable() {\r
           public void run() {\r
             NettyConnection.this.connectImpl(host, port);\r
@@ -228,7 +230,9 @@ public class NettyConnection implements Connection {
 \r
                       },\r
                       throwable -> {\r
-                          log("get Msg throwable");\r
+                          log("get Msg throwable " +throwable);\r
+                          //出现错误恢复读取线程。\r
+                          NettyConnection.this.open();\r
                       },\r
                       ()->{\r
                           log("get Msg ()");\r
index 3bade99..b10ef68 100644 (file)
@@ -38,7 +38,7 @@ public class RxSocket {
     /*  常量
     * */
     private String TAG = "RxSocket";
-    private boolean OpenLog = false;
+    private boolean OpenLog = true;
     private long WRITE_TIME_OUT = 3000;
     private long CONNECT_TIME_OUT = 3000;
 
index 61aa82c..cc5f8d7 100644 (file)
         android:layout_height="match_parent"
         android:orientation="vertical">
 
-        <Button
-            android:id="@+id/btnConnect"
-            android:layout_width="wrap_content"
+        <LinearLayout
+            android:layout_width="match_parent"
             android:layout_height="wrap_content"
-            android:text="ReConnect" />
+            android:orientation="horizontal">
+
+            <TextView
+                android:id="@+id/textViewVersion"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_weight="1"
+                android:text="Version"
+                android:textAlignment="viewStart"
+                android:textSize="18sp" />
+
+            <Button
+                android:id="@+id/btnConnect"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:text="ReConnect" />
+        </LinearLayout>
 
         <TextView
             android:id="@+id/textView"
             android:layout_width="match_parent"
             android:layout_height="match_parent"
+            android:scrollbarAlwaysDrawVerticalTrack="true"
             android:scrollbars="vertical"
-            android:text="TextView"
             android:textAlignment="viewStart"
-            android:textSize="18sp" />
+            android:textSize="18sp"
+            android:verticalScrollbarPosition="right" />
 
     </LinearLayout>
 
diff --git a/build/intermediates/lint-cache/api-versions-0-29.0.4.bin b/build/intermediates/lint-cache/api-versions-0-29.0.4.bin
new file mode 100644 (file)
index 0000000..94712fc
Binary files /dev/null and b/build/intermediates/lint-cache/api-versions-0-29.0.4.bin differ
diff --git a/build/intermediates/lint-cache/typos-en.txt-2.bin b/build/intermediates/lint-cache/typos-en.txt-2.bin
new file mode 100644 (file)
index 0000000..9ae915a
Binary files /dev/null and b/build/intermediates/lint-cache/typos-en.txt-2.bin differ
index 2210158..43485bd 100644 (file)
@@ -4,5 +4,5 @@
 # Location of the SDK. This is only used by Gradle.\r
 # For customization when using a Version Control System, please read the\r
 # header note.\r
-#Thu Jan 09 07:29:56 CST 2020\r
-sdk.dir=C\:\\Users\\Admin\\AppData\\Local\\Android\\Sdk\r
+#Thu Jan 09 11:58:34 CST 2020\r
+sdk.dir=C\:\\Users\\incar\\AppData\\Local\\Android\\Sdk\r