create fzd follow prise db
authorTrillGates <williamtrillgates@gmail.com>
Thu, 8 Apr 2021 02:16:52 +0000 (10:16 +0800)
committerTrillGates <williamtrillgates@gmail.com>
Thu, 8 Apr 2021 02:16:52 +0000 (10:16 +0800)
app/src/main/AndroidManifest.xml
app/src/main/java/com/enqualcomm/support/provider/FZDDatabaseHelper.java
app/src/main/java/com/ic/protocols/protocol_fzd.java

index c7b1437..b0f5af2 100644 (file)
@@ -65,7 +65,6 @@
 
     <uses-permission android:name="android.permission.GET_TASKS" />
     <uses-permission android:name="android.permission.WRITE_APN_SETTINGS" />
-
     <permission
         android:name="com.enqualcomm.support.permission.MIPUSH_RECEIVE"
         android:protectionLevel="signature" />
index 3563016..db78cb1 100644 (file)
@@ -64,6 +64,15 @@ public class FZDDatabaseHelper extends SQLiteOpenHelper {
     public static final String mCreateTime = "create_time";
     public static final String mUpdateTime = "update_time";
 
+
+    /*小红花表*/
+    public static final String tFollow = "follow";
+    public static final String flId = "_id";
+    public static final String flState = "state";
+    public static final String flCount = "count";
+    public static final String flCreateTime = "create_time";
+    public static final String flUpdateTime = "update_time";
+
     @Override
     public void onCreate(SQLiteDatabase db) {
         //创建数据库
@@ -109,6 +118,24 @@ public class FZDDatabaseHelper extends SQLiteOpenHelper {
                 " date)";
         ICLogger.d(createMsg);
         db.execSQL(createMsg);
+        //创建小红花的数据表
+        String createFollow = "create table " +
+                tFollow +
+                " (" +
+                flId +
+                " integer primary key autoincrement, " +
+                flState +
+                " integer, " +
+                flCount +
+                " integer, " +
+                flState +
+                " integer, " +
+                flCreateTime +
+                " date, " +
+                flUpdateTime +
+                " date)";
+        ICLogger.d(createFollow);
+        db.execSQL(createFollow);
     }
 
     @Override
index 3546094..c9b41e2 100644 (file)
@@ -1,6 +1,9 @@
 
 package com.ic.protocols;
 
+import android.annotation.SuppressLint;
+import android.annotation.TargetApi;
+import android.bluetooth.BluetoothAdapter;
 import android.content.ComponentName;
 import android.content.ContentResolver;
 import android.content.ContentValues;
@@ -10,6 +13,7 @@ import android.content.SharedPreferences;
 import android.media.Ringtone;
 import android.media.RingtoneManager;
 import android.net.Uri;
+import android.os.Build;
 import android.os.Environment;
 import android.os.Handler;
 import android.os.HandlerThread;
@@ -41,6 +45,8 @@ import java.io.File;
 import java.io.FileInputStream;
 import java.io.IOException;
 import java.io.RandomAccessFile;
+import java.lang.reflect.Field;
+import java.lang.reflect.Method;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.HashMap;
@@ -342,6 +348,8 @@ public class protocol_fzd {
         //链路保持数据
         rcapture,
         TKQ,//获取离线语音消息(微聊)
+        RECORD,//拾音开关
+        BLE,//上传蓝地址
         LK,//登录
         PING,//绑定查询
         KA,//心跳包
@@ -404,6 +412,8 @@ public class protocol_fzd {
         cmdMap = new HashMap<>();
         cmdMap.put(CMD_TYPE.LK, "LK");
         cmdMap.put(CMD_TYPE.TKQ, "TKQ");
+        cmdMap.put(CMD_TYPE.RECORD, "RECORD");
+        cmdMap.put(CMD_TYPE.BLE, "BLE");
         cmdMap.put(CMD_TYPE.PING, "PING");
         cmdMap.put(CMD_TYPE.rcapture, "rcapture");
         cmdMap.put(CMD_TYPE.KA, "KA");
@@ -897,6 +907,45 @@ public class protocol_fzd {
         return genFZDCMD(cmd, locationData);
     }
 
+    /**
+     * 获取上传蓝牙地址的指令,可能为空,如果不支持蓝牙的话。
+     *
+     * @return
+     */
+    @SuppressLint("HardwareIds")
+    public static StringMessage BLE() {
+        BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
+        if (bluetoothAdapter == null) {
+            return null;
+        }
+        String mac;
+        if (Build.VERSION.SDK_INT < 23) {
+            mac = bluetoothAdapter.getAddress();
+        } else {
+            mac = getBluetoothAddressSdk23(bluetoothAdapter);
+        }
+        ICLogger.d("ble mac == > " + mac);
+        return genFZDCMD(cmdMap.get(CMD_TYPE.BLE), mac);
+    }
+
+    @TargetApi(23)
+    static String getBluetoothAddressSdk23(BluetoothAdapter adapter) {
+        if (adapter == null) return null;
+
+        Class<? extends BluetoothAdapter> btAdapterClass = adapter.getClass();
+        try {
+            Class<?> btClass = Class.forName("android.bluetooth.IBluetooth");
+            Field bluetooth = btAdapterClass.getDeclaredField("mService");
+            bluetooth.setAccessible(true);
+            Method btAddress = btClass.getMethod("getAddress");
+            btAddress.setAccessible(true);
+            return (String) btAddress.invoke(bluetooth.get(adapter));
+        } catch (Exception e) {
+            ICLogger.d("Call Bluetooth by reflection failed.");
+            return adapter.getAddress();
+        }
+    }
+
     /*登录*/
     public static StringMessage LK() {
         /*IC*YYYYYYYYYYYYYYY*LEN*LK*/
@@ -1513,6 +1562,11 @@ public class protocol_fzd {
             case TKQ:
                 ICLogger.d("服务器收到客户端请求离线语音的指令.");
                 break;
+            case DLT:
+                ICLogger.d("收到服务器解绑消息.");
+                //TODO:煌城的是重置机器
+                mConnection.DeliverCMDMessageToSystem("DLT", cmd);
+                break;
         }
         return ret;