add wear state receiver for anan protocol.
authorTrillGates <williamtrillgates@gmail.com>
Sun, 25 Apr 2021 08:03:40 +0000 (16:03 +0800)
committerTrillGates <williamtrillgates@gmail.com>
Sun, 25 Apr 2021 08:03:40 +0000 (16:03 +0800)
app/src/main/java/com/ic/protocols/protocol_anan.java

index 5025c9b..a96a438 100644 (file)
@@ -1,7 +1,10 @@
 package com.ic.protocols;
 
 import android.annotation.SuppressLint;
+import android.content.BroadcastReceiver;
 import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
 import android.telephony.TelephonyManager;
 
 import com.enqualcomm.support.bean.Runtime;
@@ -35,8 +38,43 @@ public class protocol_anan {
         mConnection = connect;
         mRuntime = runtime;
         getPhoneStatus();
+        //注册佩戴状态改变的监听
+        registerWearStateReceiver();
     }
 
+    public static final String KEY_ANTI_EVENT = "eventID";
+    public static final int STATE_ANTI_NONE = -1;
+    public static final int STATE_ANTI_ON = 0;
+    public static final int STATE_ANTI_OFF = 1;
+
+    private void registerWearStateReceiver() {
+        IntentFilter intentFilter = new IntentFilter();
+        intentFilter.addAction("com.ic.ACTION_ANTIOFF");
+        mRuntime.getContextProxy().context.registerReceiver(wearStateReceiver, intentFilter);
+    }
+
+    private final BroadcastReceiver wearStateReceiver = new BroadcastReceiver() {
+        @Override
+        public void onReceive(Context context, Intent intent) {
+
+            //如果来了佩戴的广播,判断到没有绑定远程服务的话,那么就绑定吧
+            int state = intent.getIntExtra(KEY_ANTI_EVENT, STATE_ANTI_NONE);
+            ICLogger.d("state == > " + state);
+            if (state == STATE_ANTI_NONE) {
+                ICLogger.d("anti state is none...");
+                return;
+            }
+
+            if (state == STATE_ANTI_OFF) {
+                //没有穿戴
+                APWA("0");
+            } else if (state == STATE_ANTI_ON) {
+                //已经穿戴了
+                APWA("1");
+            }
+        }
+    };
+
 
     public enum CMD_TYPE {
         /*终端发起*/
@@ -178,6 +216,16 @@ public class protocol_anan {
                         .append(CMDEND).toString());
     }
 
+    //佩戴状态上传,这个监听到广播以后,去上传即可
+    //1表示佩戴
+    //0表示未佩戴
+    //TODO:
+    public static StringMessage APWA(String state) {
+        return genStringMessage(cmdMap.get(CMD_TYPE.APWA),
+                new StringBuilder().append(cmdMap.get(CMD_TYPE.APWA))
+                        .append(CMDSPLIT).append(state).append(CMDEND).toString());
+    }
+
     public static StringMessage APTQ(Runtime runtime) {
         /**
          * IWAPTQ,460,0,9520,3671,0#