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) {
//创建数据库
" 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
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;
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;
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;
//链路保持数据
rcapture,
TKQ,//获取离线语音消息(微聊)
+ RECORD,//拾音开关
+ BLE,//上传蓝地址
LK,//登录
PING,//绑定查询
KA,//心跳包
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");
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*/
case TKQ:
ICLogger.d("服务器收到客户端请求离线语音的指令.");
break;
+ case DLT:
+ ICLogger.d("收到服务器解绑消息.");
+ //TODO:煌城的是重置机器
+ mConnection.DeliverCMDMessageToSystem("DLT", cmd);
+ break;
}
return ret;