diff --git a/app/build.gradle b/app/build.gradle index e838967..90a7cef 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -9,7 +9,7 @@ android { minSdkVersion 18 targetSdkVersion 23 versionCode 1 - versionName "1.0.0.7" + versionName "1.0.0" } sourceSets { @@ -43,6 +43,6 @@ dependencies { compile fileTree(include: '*.jar', dir: 'libs') compile 'com.jakewharton:butterknife:7.0.0' compile 'com.android.support:support-v4:23.1.0' - compile project(path: ':beaconsupport') + compile project(path: ':mokosupport') } diff --git a/app/src/main/java/com/moko/beacon/BaseApplication.java b/app/src/main/java/com/moko/beacon/BaseApplication.java index cc74576..2b8a995 100644 --- a/app/src/main/java/com/moko/beacon/BaseApplication.java +++ b/app/src/main/java/com/moko/beacon/BaseApplication.java @@ -4,7 +4,7 @@ import android.content.Intent; import com.moko.beacon.service.BeaconService; -import com.moko.beaconsupport.beacon.BeaconModule; +import com.moko.support.MokoSupport; /** * @Date 2017/12/7 0007 @@ -16,7 +16,7 @@ public class BaseApplication extends Application { @Override public void onCreate() { super.onCreate(); - BeaconModule.getInstance().init(getApplicationContext()); + MokoSupport.getInstance().init(getApplicationContext()); // 启动蓝牙服务 startService(new Intent(this, BeaconService.class)); } diff --git a/app/src/main/java/com/moko/beacon/BeaconConstants.java b/app/src/main/java/com/moko/beacon/BeaconConstants.java index ecc0894..415eadd 100644 --- a/app/src/main/java/com/moko/beacon/BeaconConstants.java +++ b/app/src/main/java/com/moko/beacon/BeaconConstants.java @@ -8,19 +8,12 @@ public class BeaconConstants { public static final String PATTERN_MM_DD_2 = "MM-dd"; public static final String PATTERN_YYYY_MM_DD_HH_MM = "yyyy-MM-dd HH:mm"; // action - public static final String ACTION_CONNECT_SUCCESS = "ACTION_CONNECT_SUCCESS"; - public static final String ACTION_CONNECT_DISCONNECTED = "ACTION_CONNECT_DISCONNECTED"; - public static final String ACTION_RESPONSE_SUCCESS = "ACTION_RESPONSE_SUCCESS"; - public static final String ACTION_RESPONSE_TIMEOUT = "ACTION_RESPONSE_TIMEOUT"; - public static final String ACTION_RESPONSE_FINISH = "ACTION_RESPONSE_FINISH"; // sp public static final String SP_NAME = "sp_name_beacon"; public static final String SP_KEY_DEVICE_ADDRESS = "sp_key_device_address"; // extra_key - // 设备列表 - public static final String EXTRA_KEY_RESPONSE_ORDER_TYPE = "EXTRA_KEY_RESPONSE_ORDER_TYPE"; - public static final String EXTRA_KEY_RESPONSE_VALUE = "EXTRA_KEY_RESPONSE_VALUE"; + // 设备列表\ public static final String EXTRA_KEY_DEVICE_PARAM = "EXTRA_KEY_DEVICE_PARAM"; public static final String EXTRA_KEY_DEVICE_INFO = "EXTRA_KEY_DEVICE_INFO"; public static final String EXTRA_KEY_DEVICE_UUID = "EXTRA_KEY_DEVICE_UUID"; @@ -34,7 +27,6 @@ public class BeaconConstants { public static final String EXTRA_KEY_DEVICE_CONNECTION_MODE = "EXTRA_KEY_DEVICE_CONNECTION_MODE"; public static final String EXTRA_KEY_DEVICE_PASSWORD = "EXTRA_KEY_DEVICE_PASSWORD"; // request_code - public static final int REQUEST_CODE_ENABLE_BT = 1001; public static final int REQUEST_CODE_DEVICE_INFO = 101; public static final int REQUEST_CODE_SET_UUID = 102; public static final int REQUEST_CODE_SET_MAJOR = 103; diff --git a/app/src/main/java/com/moko/beacon/activity/BaseActivity.java b/app/src/main/java/com/moko/beacon/activity/BaseActivity.java index 090a84b..4294ecb 100644 --- a/app/src/main/java/com/moko/beacon/activity/BaseActivity.java +++ b/app/src/main/java/com/moko/beacon/activity/BaseActivity.java @@ -5,7 +5,8 @@ import android.os.SystemClock; import android.support.v4.app.FragmentActivity; -import com.moko.beaconsupport.log.LogModule; +import com.moko.support.log.LogModule; + public class BaseActivity extends FragmentActivity { diff --git a/app/src/main/java/com/moko/beacon/activity/DeviceInfoActivity.java b/app/src/main/java/com/moko/beacon/activity/DeviceInfoActivity.java index dbbb98d..236a315 100644 --- a/app/src/main/java/com/moko/beacon/activity/DeviceInfoActivity.java +++ b/app/src/main/java/com/moko/beacon/activity/DeviceInfoActivity.java @@ -22,10 +22,11 @@ import com.moko.beacon.entity.BeaconParam; import com.moko.beacon.service.BeaconService; import com.moko.beacon.utils.ToastUtils; -import com.moko.beaconsupport.beacon.BeaconModule; -import com.moko.beaconsupport.entity.OrderType; -import com.moko.beaconsupport.task.OrderTask; -import com.moko.beaconsupport.utils.Utils; +import com.moko.support.MokoConstants; +import com.moko.support.MokoSupport; +import com.moko.support.entity.OrderType; +import com.moko.support.task.OrderTask; +import com.moko.support.utils.Utils; import java.util.ArrayList; import java.util.Arrays; @@ -79,7 +80,7 @@ protected void onCreate(@Nullable Bundle savedInstanceState) { finish(); return; } - if (BeaconModule.getInstance().isConnDevice(this, mBeaconParam.iBeaconMAC)) { + if (MokoSupport.getInstance().isConnDevice(this, mBeaconParam.iBeaconMAC)) { tvConnState.setText(getString(R.string.device_info_conn_status_connected)); } else { tvConnState.setText(getString(R.string.device_info_conn_status_disconnect)); @@ -115,7 +116,7 @@ public void onReceive(Context context, Intent intent) { if (intent != null) { abortBroadcast(); String action = intent.getAction(); - if (BeaconConstants.ACTION_CONNECT_SUCCESS.equals(action)) { + if (MokoConstants.ACTION_CONNECT_SUCCESS.equals(action)) { tvConnState.setText(getString(R.string.device_info_conn_status_connected)); // 读取全部可读数据 mBeaconService.mHandler.postDelayed(new Runnable() { @@ -125,15 +126,15 @@ public void run() { } }, 1000); } - if (BeaconConstants.ACTION_CONNECT_DISCONNECTED.equals(action)) { + if (MokoConstants.ACTION_CONNECT_DISCONNECTED.equals(action)) { tvConnState.setText(getString(R.string.device_info_conn_status_disconnect)); ToastUtils.showToast(DeviceInfoActivity.this, "Connect Failed"); dismissLoadingProgressDialog(); dismissSyncProgressDialog(); } - if (BeaconConstants.ACTION_RESPONSE_TIMEOUT.equals(action)) { + if (MokoConstants.ACTION_RESPONSE_TIMEOUT.equals(action)) { } - if (BeaconConstants.ACTION_RESPONSE_FINISH.equals(action)) { + if (MokoConstants.ACTION_RESPONSE_FINISH.equals(action)) { mBeaconService.mHandler.postDelayed(new Runnable() { @Override public void run() { @@ -143,9 +144,9 @@ public void run() { }, 1000); } - if (BeaconConstants.ACTION_RESPONSE_SUCCESS.equals(action)) { - OrderType orderType = (OrderType) intent.getSerializableExtra(BeaconConstants.EXTRA_KEY_RESPONSE_ORDER_TYPE); - byte[] value = intent.getByteArrayExtra(BeaconConstants.EXTRA_KEY_RESPONSE_VALUE); + if (MokoConstants.ACTION_RESPONSE_SUCCESS.equals(action)) { + OrderType orderType = (OrderType) intent.getSerializableExtra(MokoConstants.EXTRA_KEY_RESPONSE_ORDER_TYPE); + byte[] value = intent.getByteArrayExtra(MokoConstants.EXTRA_KEY_RESPONSE_VALUE); switch (orderType) { case battery: mBeaconParam.battery = Integer.parseInt(Utils.bytesToHexString(value), 16) + ""; @@ -278,17 +279,17 @@ public void onServiceConnected(ComponentName name, IBinder service) { mBeaconService = ((BeaconService.LocalBinder) service).getService(); // 注册广播接收器 IntentFilter filter = new IntentFilter(); - filter.addAction(BeaconConstants.ACTION_CONNECT_SUCCESS); - filter.addAction(BeaconConstants.ACTION_CONNECT_DISCONNECTED); - filter.addAction(BeaconConstants.ACTION_RESPONSE_SUCCESS); - filter.addAction(BeaconConstants.ACTION_RESPONSE_TIMEOUT); - filter.addAction(BeaconConstants.ACTION_RESPONSE_FINISH); + filter.addAction(MokoConstants.ACTION_CONNECT_SUCCESS); + filter.addAction(MokoConstants.ACTION_CONNECT_DISCONNECTED); + filter.addAction(MokoConstants.ACTION_RESPONSE_SUCCESS); + filter.addAction(MokoConstants.ACTION_RESPONSE_TIMEOUT); + filter.addAction(MokoConstants.ACTION_RESPONSE_FINISH); filter.setPriority(200); registerReceiver(mReceiver, filter); - if (!BeaconModule.getInstance().isBluetoothOpen()) { + if (!MokoSupport.getInstance().isBluetoothOpen()) { // 蓝牙未打开,开启蓝牙 Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE); - startActivityForResult(enableBtIntent, BeaconConstants.REQUEST_CODE_ENABLE_BT); + startActivityForResult(enableBtIntent, MokoConstants.REQUEST_CODE_ENABLE_BT); } } @@ -307,8 +308,8 @@ public boolean onKeyDown(int keyCode, KeyEvent event) { } private void back() { - if (BeaconModule.getInstance().isConnDevice(this, mBeaconParam.iBeaconMAC)) { - BeaconModule.getInstance().disConnectBle(); + if (MokoSupport.getInstance().isConnDevice(this, mBeaconParam.iBeaconMAC)) { + MokoSupport.getInstance().disConnectBle(); } finish(); } @@ -322,13 +323,13 @@ public void onClick(View view) { back(); break; case R.id.tv_conn_state: - if (!BeaconModule.getInstance().isConnDevice(this, mBeaconParam.iBeaconMAC)) { + if (!MokoSupport.getInstance().isConnDevice(this, mBeaconParam.iBeaconMAC)) { mBeaconService.connDevice(mBeaconParam.iBeaconMAC); showLoadingProgressDialog(getString(R.string.dialog_connecting)); } break; case R.id.rl_ibeacon_uuid: - if (!BeaconModule.getInstance().isConnDevice(this, mBeaconParam.iBeaconMAC)) { + if (!MokoSupport.getInstance().isConnDevice(this, mBeaconParam.iBeaconMAC)) { ToastUtils.showToast(this, getString(R.string.alert_click_reconnect)); return; } @@ -337,7 +338,7 @@ public void onClick(View view) { startActivityForResult(intent, BeaconConstants.REQUEST_CODE_SET_UUID); break; case R.id.rl_ibeacon_major: - if (!BeaconModule.getInstance().isConnDevice(this, mBeaconParam.iBeaconMAC)) { + if (!MokoSupport.getInstance().isConnDevice(this, mBeaconParam.iBeaconMAC)) { ToastUtils.showToast(this, getString(R.string.alert_click_reconnect)); return; } @@ -346,7 +347,7 @@ public void onClick(View view) { startActivityForResult(intent, BeaconConstants.REQUEST_CODE_SET_MAJOR); break; case R.id.rl_ibeacon_minor: - if (!BeaconModule.getInstance().isConnDevice(this, mBeaconParam.iBeaconMAC)) { + if (!MokoSupport.getInstance().isConnDevice(this, mBeaconParam.iBeaconMAC)) { ToastUtils.showToast(this, getString(R.string.alert_click_reconnect)); return; } @@ -355,7 +356,7 @@ public void onClick(View view) { startActivityForResult(intent, BeaconConstants.REQUEST_CODE_SET_MINOR); break; case R.id.rl_ibeacon_measure_power: - if (!BeaconModule.getInstance().isConnDevice(this, mBeaconParam.iBeaconMAC)) { + if (!MokoSupport.getInstance().isConnDevice(this, mBeaconParam.iBeaconMAC)) { ToastUtils.showToast(this, getString(R.string.alert_click_reconnect)); return; } @@ -364,7 +365,7 @@ public void onClick(View view) { startActivityForResult(intent, BeaconConstants.REQUEST_CODE_SET_MEASURE_POWER); break; case R.id.rl_ibeacon_transmission: - if (!BeaconModule.getInstance().isConnDevice(this, mBeaconParam.iBeaconMAC)) { + if (!MokoSupport.getInstance().isConnDevice(this, mBeaconParam.iBeaconMAC)) { ToastUtils.showToast(this, getString(R.string.alert_click_reconnect)); return; } @@ -373,7 +374,7 @@ public void onClick(View view) { startActivityForResult(intent, BeaconConstants.REQUEST_CODE_SET_TRANSMISSION); break; case R.id.rl_ibeacon_broadcasting_interval: - if (!BeaconModule.getInstance().isConnDevice(this, mBeaconParam.iBeaconMAC)) { + if (!MokoSupport.getInstance().isConnDevice(this, mBeaconParam.iBeaconMAC)) { ToastUtils.showToast(this, getString(R.string.alert_click_reconnect)); return; } @@ -382,7 +383,7 @@ public void onClick(View view) { startActivityForResult(intent, BeaconConstants.REQUEST_CODE_SET_BROADCASTINTERVAL); break; case R.id.rl_ibeacon_serialID: - if (!BeaconModule.getInstance().isConnDevice(this, mBeaconParam.iBeaconMAC)) { + if (!MokoSupport.getInstance().isConnDevice(this, mBeaconParam.iBeaconMAC)) { ToastUtils.showToast(this, getString(R.string.alert_click_reconnect)); return; } @@ -391,7 +392,7 @@ public void onClick(View view) { startActivityForResult(intent, BeaconConstants.REQUEST_CODE_SET_DEVICE_ID); break; case R.id.rl_ibeacon_device_name: - if (!BeaconModule.getInstance().isConnDevice(this, mBeaconParam.iBeaconMAC)) { + if (!MokoSupport.getInstance().isConnDevice(this, mBeaconParam.iBeaconMAC)) { ToastUtils.showToast(this, getString(R.string.alert_click_reconnect)); return; } @@ -400,7 +401,7 @@ public void onClick(View view) { startActivityForResult(intent, BeaconConstants.REQUEST_CODE_SET_IBEACON_NAME); break; case R.id.rl_ibeacon_device_conn_mode: - if (!BeaconModule.getInstance().isConnDevice(this, mBeaconParam.iBeaconMAC)) { + if (!MokoSupport.getInstance().isConnDevice(this, mBeaconParam.iBeaconMAC)) { ToastUtils.showToast(this, getString(R.string.alert_click_reconnect)); return; } @@ -409,7 +410,7 @@ public void onClick(View view) { startActivityForResult(intent, BeaconConstants.REQUEST_CODE_SET_CONNECTION_MODE); break; case R.id.rl_ibeacon_change_password: - if (!BeaconModule.getInstance().isConnDevice(this, mBeaconParam.iBeaconMAC)) { + if (!MokoSupport.getInstance().isConnDevice(this, mBeaconParam.iBeaconMAC)) { ToastUtils.showToast(this, getString(R.string.alert_click_reconnect)); return; } @@ -417,7 +418,7 @@ public void onClick(View view) { startActivityForResult(intent, BeaconConstants.REQUEST_CODE_SET_PASSWORD); break; case R.id.rl_ibeacon_device_info: - if (!BeaconModule.getInstance().isConnDevice(this, mBeaconParam.iBeaconMAC)) { + if (!MokoSupport.getInstance().isConnDevice(this, mBeaconParam.iBeaconMAC)) { ToastUtils.showToast(this, getString(R.string.alert_click_reconnect)); return; } diff --git a/app/src/main/java/com/moko/beacon/activity/MainActivity.java b/app/src/main/java/com/moko/beacon/activity/MainActivity.java index 8a3a7ef..bb022ab 100644 --- a/app/src/main/java/com/moko/beacon/activity/MainActivity.java +++ b/app/src/main/java/com/moko/beacon/activity/MainActivity.java @@ -27,16 +27,19 @@ import com.moko.beacon.adapter.BeaconListAdapter; import com.moko.beacon.dialog.PasswordDialog; import com.moko.beacon.entity.BeaconDeviceInfo; +import com.moko.beacon.entity.BeaconInfo; import com.moko.beacon.entity.BeaconParam; import com.moko.beacon.service.BeaconService; import com.moko.beacon.utils.ToastUtils; -import com.moko.beaconsupport.beacon.BeaconModule; -import com.moko.beaconsupport.callback.ScanDeviceCallback; -import com.moko.beaconsupport.entity.BeaconInfo; -import com.moko.beaconsupport.entity.OrderType; -import com.moko.beaconsupport.log.LogModule; -import com.moko.beaconsupport.utils.Utils; - +import com.moko.support.MokoConstants; +import com.moko.support.MokoSupport; +import com.moko.support.callback.MokoScanDeviceCallback; +import com.moko.support.entity.DeviceInfo; +import com.moko.support.entity.OrderType; +import com.moko.support.log.LogModule; +import com.moko.support.utils.Utils; + +import java.text.DecimalFormat; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; @@ -55,7 +58,7 @@ * @Description * @ClassPath com.moko.beacon.activity.MainActivity */ -public class MainActivity extends BaseActivity implements RadioGroup.OnCheckedChangeListener, ScanDeviceCallback, AdapterView.OnItemClickListener { +public class MainActivity extends BaseActivity implements RadioGroup.OnCheckedChangeListener, MokoScanDeviceCallback, AdapterView.OnItemClickListener { public static final int SORT_TYPE_RSSI = 0; public static final int SORT_TYPE_MAJOR = 1; @@ -122,17 +125,17 @@ public void onServiceConnected(ComponentName name, IBinder service) { mBeaconService = ((BeaconService.LocalBinder) service).getService(); // 注册广播接收器 IntentFilter filter = new IntentFilter(); - filter.addAction(BeaconConstants.ACTION_CONNECT_SUCCESS); - filter.addAction(BeaconConstants.ACTION_CONNECT_DISCONNECTED); - filter.addAction(BeaconConstants.ACTION_RESPONSE_SUCCESS); - filter.addAction(BeaconConstants.ACTION_RESPONSE_TIMEOUT); - filter.addAction(BeaconConstants.ACTION_RESPONSE_FINISH); + filter.addAction(MokoConstants.ACTION_CONNECT_SUCCESS); + filter.addAction(MokoConstants.ACTION_CONNECT_DISCONNECTED); + filter.addAction(MokoConstants.ACTION_RESPONSE_SUCCESS); + filter.addAction(MokoConstants.ACTION_RESPONSE_TIMEOUT); + filter.addAction(MokoConstants.ACTION_RESPONSE_FINISH); filter.setPriority(100); registerReceiver(mReceiver, filter); - if (!BeaconModule.getInstance().isBluetoothOpen()) { + if (!MokoSupport.getInstance().isBluetoothOpen()) { // 蓝牙未打开,开启蓝牙 Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE); - startActivityForResult(enableBtIntent, BeaconConstants.REQUEST_CODE_ENABLE_BT); + startActivityForResult(enableBtIntent, MokoConstants.REQUEST_CODE_ENABLE_BT); } else { showProgressDialog(); mBeaconService.startScanDevice(MainActivity.this); @@ -152,7 +155,7 @@ public void onServiceDisconnected(ComponentName name) { public void onReceive(Context context, Intent intent) { if (intent != null) { String action = intent.getAction(); - if (BeaconConstants.ACTION_CONNECT_SUCCESS.equals(action)) { + if (MokoConstants.ACTION_CONNECT_SUCCESS.equals(action)) { mBeaconParam = new BeaconParam(); BeaconDeviceInfo beaconInfo = new BeaconDeviceInfo(); mBeaconParam.beaconInfo = beaconInfo; @@ -165,25 +168,35 @@ public void run() { } }, 1000); } - if (BeaconConstants.ACTION_CONNECT_DISCONNECTED.equals(action)) { + if (MokoConstants.ACTION_CONNECT_DISCONNECTED.equals(action)) { dismissLoadingProgressDialog(); ToastUtils.showToast(MainActivity.this, "connect failed"); + if (!mIsScaning) { + mIsConnAndSyncData = false; + mBeaconService.startScanDevice(MainActivity.this); + mIsScaning = true; + } } - if (BeaconConstants.ACTION_RESPONSE_TIMEOUT.equals(action)) { - OrderType orderType = (OrderType) intent.getSerializableExtra(BeaconConstants.EXTRA_KEY_RESPONSE_ORDER_TYPE); + if (MokoConstants.ACTION_RESPONSE_TIMEOUT.equals(action)) { + OrderType orderType = (OrderType) intent.getSerializableExtra(MokoConstants.EXTRA_KEY_RESPONSE_ORDER_TYPE); switch (orderType) { case changePassword: // 修改密码超时 dismissLoadingProgressDialog(); ToastUtils.showToast(MainActivity.this, "password error"); + if (!mIsScaning) { + mIsConnAndSyncData = false; + mBeaconService.startScanDevice(MainActivity.this); + mIsScaning = true; + } break; } } - if (BeaconConstants.ACTION_RESPONSE_FINISH.equals(action)) { + if (MokoConstants.ACTION_RESPONSE_FINISH.equals(action)) { } - if (BeaconConstants.ACTION_RESPONSE_SUCCESS.equals(action)) { - OrderType orderType = (OrderType) intent.getSerializableExtra(BeaconConstants.EXTRA_KEY_RESPONSE_ORDER_TYPE); - byte[] value = intent.getByteArrayExtra(BeaconConstants.EXTRA_KEY_RESPONSE_VALUE); + if (MokoConstants.ACTION_RESPONSE_SUCCESS.equals(action)) { + OrderType orderType = (OrderType) intent.getSerializableExtra(MokoConstants.EXTRA_KEY_RESPONSE_ORDER_TYPE); + byte[] value = intent.getByteArrayExtra(MokoConstants.EXTRA_KEY_RESPONSE_VALUE); switch (orderType) { case battery: mBeaconParam.battery = Integer.parseInt(Utils.bytesToHexString(value), 16) + ""; @@ -290,7 +303,6 @@ public void run() { @Override public void run() { dismissLoadingProgressDialog(); - mIsConnAndSyncData = true; LogModule.i(mBeaconParam.toString()); Intent deviceInfoIntent = new Intent(MainActivity.this, DeviceInfoActivity.class); deviceInfoIntent.putExtra(BeaconConstants.EXTRA_KEY_DEVICE_PARAM, mBeaconParam); @@ -298,6 +310,11 @@ public void run() { } }, 1000); } else { + if (!mIsScaning) { + mIsConnAndSyncData = false; + mBeaconService.startScanDevice(MainActivity.this); + mIsScaning = true; + } ToastUtils.showToast(MainActivity.this, "password error"); } break; @@ -312,7 +329,7 @@ protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (resultCode == RESULT_OK) { switch (requestCode) { - case BeaconConstants.REQUEST_CODE_ENABLE_BT: + case MokoConstants.REQUEST_CODE_ENABLE_BT: // 打开蓝牙 if (!mIsScaning) { showProgressDialog(); @@ -324,7 +341,7 @@ protected void onActivityResult(int requestCode, int resultCode, Intent data) { } } else { switch (requestCode) { - case BeaconConstants.REQUEST_CODE_ENABLE_BT: + case MokoConstants.REQUEST_CODE_ENABLE_BT: // 未打开蓝牙 break; case BeaconConstants.REQUEST_CODE_DEVICE_INFO: @@ -377,26 +394,84 @@ public void onClick(View view) { public void onStartScan() { } - private void showProgressDialog() { - final ProgressDialog dialog = new ProgressDialog(this); - dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); - dialog.setCanceledOnTouchOutside(false); - dialog.setCancelable(false); - dialog.setProgressStyle(ProgressDialog.STYLE_SPINNER); - dialog.setMessage(getString(R.string.main_scan)); - if (!isFinishing() && dialog != null && !dialog.isShowing()) { - dialog.show(); - mBeaconService.mHandler.postDelayed(new Runnable() { - @Override - public void run() { - dialog.dismiss(); - } - }, 2000); - } - } - @Override - public void onScanDevice(BeaconInfo beaconInfo) { + public void onScanDevice(DeviceInfo device) { + byte[] scanRecord = Utils.hex2bytes(device.scanRecord); + int startByte = 2; + boolean patternFound = false; + // 0215 00ff + while (startByte <= 5) { + if (((int) scanRecord[startByte + 2] & 0xff) == 0x02 + && ((int) scanRecord[startByte + 3] & 0xff) == 0x15 + && ((int) scanRecord[startByte + 30] & 0xff) == 0x00 + && ((int) scanRecord[startByte + 31] & 0xff) == 0xff) { + // yes! This is an iBeacon + patternFound = true; + break; + } + startByte++; + } + if (!patternFound) { + // This is not an iBeacon + return; + } + // log + String log = Utils.bytesToHexString(scanRecord); + // uuid + byte[] proximityUuidBytes = new byte[16]; + System.arraycopy(scanRecord, startByte + 4, proximityUuidBytes, 0, 16); + String hexString = Utils.bytesToHexString(proximityUuidBytes); + StringBuilder sb = new StringBuilder(); + sb.append(hexString.substring(0, 8)); + sb.append("-"); + sb.append(hexString.substring(8, 12)); + sb.append("-"); + sb.append(hexString.substring(12, 16)); + sb.append("-"); + sb.append(hexString.substring(16, 20)); + sb.append("-"); + sb.append(hexString.substring(20, 32)); + String uuid = sb.toString(); + + int major = (scanRecord[startByte + 20] & 0xff) * 0x100 + (scanRecord[startByte + 21] & 0xff); + int minor = (scanRecord[startByte + 22] & 0xff) * 0x100 + (scanRecord[startByte + 23] & 0xff); + int txPower = 0 - (int) scanRecord[startByte + 27] & 0xff; + int battery = (int) scanRecord[startByte + 32] & 0xff; + // distance acc + int acc = (int) scanRecord[startByte + 37] & 0xff; + // 连接状态在版本号最高位,0不可连接,1可连接,判断后将版本号归位 + String versionStr = Utils.hexString2binaryString(Utils.byte2HexString(scanRecord[startByte + 38])); +// LogModule.i("version binary: " + versionStr); + String connState = versionStr.substring(0, 1); + boolean isConnected = Integer.parseInt(connState) == 1; + String versionBinary = isConnected ? "0" + versionStr.substring(1, versionStr.length()) : versionStr; + int version = Integer.parseInt(Utils.binaryString2hexString(versionBinary), 16); + // ======================================================== + String mac = device.mac; + double distance = Utils.getDistance(device.rssi, acc); + String distanceDesc = "unknown"; + if (distance <= 0.1) { + distanceDesc = "immediate"; + } else if (distance > 0.1 && distance <= 1.0) { + distanceDesc = "near"; + } else if (distance > 1.0) { + distanceDesc = "far"; + } + String distanceStr = new DecimalFormat("#0.00").format(distance); + BeaconInfo beaconInfo = new BeaconInfo(); + beaconInfo.name = device.name; + beaconInfo.rssi = device.rssi; + beaconInfo.distance = distanceStr; + beaconInfo.distanceDesc = distanceDesc; + beaconInfo.major = major; + beaconInfo.minor = minor; + beaconInfo.txPower = txPower; + beaconInfo.uuid = uuid; + beaconInfo.batteryPower = battery; + beaconInfo.version = version; + beaconInfo.scanRecord = log; + beaconInfo.isConnected = isConnected; + beaconInfo.mac = mac; if (!beaconMap.isEmpty() && beaconMap.containsKey(beaconInfo.mac)) { return; } @@ -461,23 +536,45 @@ public int compare(BeaconInfo lhs, BeaconInfo rhs) { } } + private void showProgressDialog() { + final ProgressDialog dialog = new ProgressDialog(this); + dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); + dialog.setCanceledOnTouchOutside(false); + dialog.setCancelable(false); + dialog.setProgressStyle(ProgressDialog.STYLE_SPINNER); + dialog.setMessage(getString(R.string.main_scan)); + if (!isFinishing() && dialog != null && !dialog.isShowing()) { + dialog.show(); + mBeaconService.mHandler.postDelayed(new Runnable() { + @Override + public void run() { + dialog.dismiss(); + } + }, 2000); + } + } + @Override public void onStopScan() { mBeaconInfos.clear(); mBeaconInfos.addAll(mBeaconInfosTemp); mAdapter.notifyDataSetChanged(); mIsScaning = false; - if (!isFinishing() && !mIsConnAndSyncData) { - beaconMap.clear(); - mBeaconInfosTemp.clear(); -// mBeaconService.mHandler.postDelayed(new Runnable() { -// @Override -// public void run() { - mBeaconService.startScanDevice(MainActivity.this); -// } -// }, 2000); - mIsScaning = true; - } + beaconMap.clear(); + mBeaconInfosTemp.clear(); + mBeaconService.mHandler.postDelayed(new Runnable() { + @Override + public void run() { + if (!MokoSupport.getInstance().isBluetoothOpen()) { + ToastUtils.showToast(MainActivity.this, "bluetooth is closed,please reopen app"); + return; + } + if (!isFinishing() && !mIsConnAndSyncData) { + mBeaconService.startScanDevice(MainActivity.this); + mIsScaning = true; + } + } + }, 2000); } private BeaconParam mBeaconParam; @@ -487,6 +584,7 @@ public void onStopScan() { public void onItemClick(AdapterView parent, View view, int position, long id) { final BeaconInfo beaconInfo = (BeaconInfo) parent.getItemAtPosition(position); LogModule.i(beaconInfo.toString()); + mIsConnAndSyncData = true; if (!isFinishing()) { final PasswordDialog dialog = new PasswordDialog(this); dialog.setOnPasswordClicked(new PasswordDialog.PasswordClickListener() { @@ -497,6 +595,15 @@ public void onEnsureClicked(String password) { mBeaconService.connDevice(beaconInfo.mac); showLoadingProgressDialog(); } + + @Override + public void onDismiss() { + if (!mIsScaning) { + mIsConnAndSyncData = false; + mBeaconService.startScanDevice(MainActivity.this); + mIsScaning = true; + } + } }); dialog.show(); Timer timer = new Timer(); diff --git a/app/src/main/java/com/moko/beacon/activity/SetBroadcastIntervalActivity.java b/app/src/main/java/com/moko/beacon/activity/SetBroadcastIntervalActivity.java index 7aef78f..a6bf1ff 100644 --- a/app/src/main/java/com/moko/beacon/activity/SetBroadcastIntervalActivity.java +++ b/app/src/main/java/com/moko/beacon/activity/SetBroadcastIntervalActivity.java @@ -19,7 +19,8 @@ import com.moko.beacon.R; import com.moko.beacon.service.BeaconService; import com.moko.beacon.utils.ToastUtils; -import com.moko.beaconsupport.entity.OrderType; +import com.moko.support.MokoConstants; +import com.moko.support.entity.OrderType; import java.util.ArrayList; @@ -100,13 +101,13 @@ public void onReceive(Context context, Intent intent) { abortBroadcast(); if (intent != null) { String action = intent.getAction(); - if (BeaconConstants.ACTION_CONNECT_DISCONNECTED.equals(action)) { + if (MokoConstants.ACTION_CONNECT_DISCONNECTED.equals(action)) { ToastUtils.showToast(SetBroadcastIntervalActivity.this, getString(R.string.alert_diconnected)); SetBroadcastIntervalActivity.this.setResult(BeaconConstants.RESULT_CONN_DISCONNECTED); finish(); } - if (BeaconConstants.ACTION_RESPONSE_TIMEOUT.equals(action)) { - OrderType orderType = (OrderType) intent.getSerializableExtra(BeaconConstants.EXTRA_KEY_RESPONSE_ORDER_TYPE); + if (MokoConstants.ACTION_RESPONSE_TIMEOUT.equals(action)) { + OrderType orderType = (OrderType) intent.getSerializableExtra(MokoConstants.EXTRA_KEY_RESPONSE_ORDER_TYPE); switch (orderType) { case broadcastingInterval: // 修改broadcastingInterval失败 @@ -115,8 +116,8 @@ public void onReceive(Context context, Intent intent) { break; } } - if (BeaconConstants.ACTION_RESPONSE_SUCCESS.equals(action)) { - OrderType orderType = (OrderType) intent.getSerializableExtra(BeaconConstants.EXTRA_KEY_RESPONSE_ORDER_TYPE); + if (MokoConstants.ACTION_RESPONSE_SUCCESS.equals(action)) { + OrderType orderType = (OrderType) intent.getSerializableExtra(MokoConstants.EXTRA_KEY_RESPONSE_ORDER_TYPE); switch (orderType) { case broadcastingInterval: // 修改broadcastingInterval成功 @@ -138,11 +139,11 @@ public void onServiceConnected(ComponentName name, IBinder service) { mBeaconService = ((BeaconService.LocalBinder) service).getService(); // 注册广播接收器 IntentFilter filter = new IntentFilter(); - filter.addAction(BeaconConstants.ACTION_CONNECT_SUCCESS); - filter.addAction(BeaconConstants.ACTION_CONNECT_DISCONNECTED); - filter.addAction(BeaconConstants.ACTION_RESPONSE_SUCCESS); - filter.addAction(BeaconConstants.ACTION_RESPONSE_TIMEOUT); - filter.addAction(BeaconConstants.ACTION_RESPONSE_FINISH); + filter.addAction(MokoConstants.ACTION_CONNECT_SUCCESS); + filter.addAction(MokoConstants.ACTION_CONNECT_DISCONNECTED); + filter.addAction(MokoConstants.ACTION_RESPONSE_SUCCESS); + filter.addAction(MokoConstants.ACTION_RESPONSE_TIMEOUT); + filter.addAction(MokoConstants.ACTION_RESPONSE_FINISH); filter.setPriority(300); registerReceiver(mReceiver, filter); } diff --git a/app/src/main/java/com/moko/beacon/activity/SetConnectionModeActivity.java b/app/src/main/java/com/moko/beacon/activity/SetConnectionModeActivity.java index a8c56fb..3861698 100644 --- a/app/src/main/java/com/moko/beacon/activity/SetConnectionModeActivity.java +++ b/app/src/main/java/com/moko/beacon/activity/SetConnectionModeActivity.java @@ -19,7 +19,8 @@ import com.moko.beacon.R; import com.moko.beacon.service.BeaconService; import com.moko.beacon.utils.ToastUtils; -import com.moko.beaconsupport.entity.OrderType; +import com.moko.support.MokoConstants; +import com.moko.support.entity.OrderType; import java.util.HashMap; @@ -79,13 +80,13 @@ public void onReceive(Context context, Intent intent) { abortBroadcast(); if (intent != null) { String action = intent.getAction(); - if (BeaconConstants.ACTION_CONNECT_DISCONNECTED.equals(action)) { + if (MokoConstants.ACTION_CONNECT_DISCONNECTED.equals(action)) { ToastUtils.showToast(SetConnectionModeActivity.this, getString(R.string.alert_diconnected)); SetConnectionModeActivity.this.setResult(BeaconConstants.RESULT_CONN_DISCONNECTED); finish(); } - if (BeaconConstants.ACTION_RESPONSE_TIMEOUT.equals(action)) { - OrderType orderType = (OrderType) intent.getSerializableExtra(BeaconConstants.EXTRA_KEY_RESPONSE_ORDER_TYPE); + if (MokoConstants.ACTION_RESPONSE_TIMEOUT.equals(action)) { + OrderType orderType = (OrderType) intent.getSerializableExtra(MokoConstants.EXTRA_KEY_RESPONSE_ORDER_TYPE); switch (orderType) { case connectionMode: // 修改连接模式失败 @@ -94,8 +95,8 @@ public void onReceive(Context context, Intent intent) { break; } } - if (BeaconConstants.ACTION_RESPONSE_SUCCESS.equals(action)) { - OrderType orderType = (OrderType) intent.getSerializableExtra(BeaconConstants.EXTRA_KEY_RESPONSE_ORDER_TYPE); + if (MokoConstants.ACTION_RESPONSE_SUCCESS.equals(action)) { + OrderType orderType = (OrderType) intent.getSerializableExtra(MokoConstants.EXTRA_KEY_RESPONSE_ORDER_TYPE); switch (orderType) { case connectionMode: // 修改连接模式成功 @@ -117,11 +118,11 @@ public void onServiceConnected(ComponentName name, IBinder service) { mBeaconService = ((BeaconService.LocalBinder) service).getService(); // 注册广播接收器 IntentFilter filter = new IntentFilter(); - filter.addAction(BeaconConstants.ACTION_CONNECT_SUCCESS); - filter.addAction(BeaconConstants.ACTION_CONNECT_DISCONNECTED); - filter.addAction(BeaconConstants.ACTION_RESPONSE_SUCCESS); - filter.addAction(BeaconConstants.ACTION_RESPONSE_TIMEOUT); - filter.addAction(BeaconConstants.ACTION_RESPONSE_FINISH); + filter.addAction(MokoConstants.ACTION_CONNECT_SUCCESS); + filter.addAction(MokoConstants.ACTION_CONNECT_DISCONNECTED); + filter.addAction(MokoConstants.ACTION_RESPONSE_SUCCESS); + filter.addAction(MokoConstants.ACTION_RESPONSE_TIMEOUT); + filter.addAction(MokoConstants.ACTION_RESPONSE_FINISH); filter.setPriority(300); registerReceiver(mReceiver, filter); } diff --git a/app/src/main/java/com/moko/beacon/activity/SetDeviceIdActivity.java b/app/src/main/java/com/moko/beacon/activity/SetDeviceIdActivity.java index 5569531..9f85716 100644 --- a/app/src/main/java/com/moko/beacon/activity/SetDeviceIdActivity.java +++ b/app/src/main/java/com/moko/beacon/activity/SetDeviceIdActivity.java @@ -17,7 +17,8 @@ import com.moko.beacon.R; import com.moko.beacon.service.BeaconService; import com.moko.beacon.utils.ToastUtils; -import com.moko.beaconsupport.entity.OrderType; +import com.moko.support.MokoConstants; +import com.moko.support.entity.OrderType; import butterknife.Bind; import butterknife.ButterKnife; @@ -60,13 +61,13 @@ public void onReceive(Context context, Intent intent) { abortBroadcast(); if (intent != null) { String action = intent.getAction(); - if (BeaconConstants.ACTION_CONNECT_DISCONNECTED.equals(action)) { + if (MokoConstants.ACTION_CONNECT_DISCONNECTED.equals(action)) { ToastUtils.showToast(SetDeviceIdActivity.this, getString(R.string.alert_diconnected)); SetDeviceIdActivity.this.setResult(BeaconConstants.RESULT_CONN_DISCONNECTED); finish(); } - if (BeaconConstants.ACTION_RESPONSE_TIMEOUT.equals(action)) { - OrderType orderType = (OrderType) intent.getSerializableExtra(BeaconConstants.EXTRA_KEY_RESPONSE_ORDER_TYPE); + if (MokoConstants.ACTION_RESPONSE_TIMEOUT.equals(action)) { + OrderType orderType = (OrderType) intent.getSerializableExtra(MokoConstants.EXTRA_KEY_RESPONSE_ORDER_TYPE); switch (orderType) { case serialID: // 修改deviceId失败 @@ -75,8 +76,8 @@ public void onReceive(Context context, Intent intent) { break; } } - if (BeaconConstants.ACTION_RESPONSE_SUCCESS.equals(action)) { - OrderType orderType = (OrderType) intent.getSerializableExtra(BeaconConstants.EXTRA_KEY_RESPONSE_ORDER_TYPE); + if (MokoConstants.ACTION_RESPONSE_SUCCESS.equals(action)) { + OrderType orderType = (OrderType) intent.getSerializableExtra(MokoConstants.EXTRA_KEY_RESPONSE_ORDER_TYPE); switch (orderType) { case serialID: // 修改deviceId成功 @@ -98,11 +99,11 @@ public void onServiceConnected(ComponentName name, IBinder service) { mBeaconService = ((BeaconService.LocalBinder) service).getService(); // 注册广播接收器 IntentFilter filter = new IntentFilter(); - filter.addAction(BeaconConstants.ACTION_CONNECT_SUCCESS); - filter.addAction(BeaconConstants.ACTION_CONNECT_DISCONNECTED); - filter.addAction(BeaconConstants.ACTION_RESPONSE_SUCCESS); - filter.addAction(BeaconConstants.ACTION_RESPONSE_TIMEOUT); - filter.addAction(BeaconConstants.ACTION_RESPONSE_FINISH); + filter.addAction(MokoConstants.ACTION_CONNECT_SUCCESS); + filter.addAction(MokoConstants.ACTION_CONNECT_DISCONNECTED); + filter.addAction(MokoConstants.ACTION_RESPONSE_SUCCESS); + filter.addAction(MokoConstants.ACTION_RESPONSE_TIMEOUT); + filter.addAction(MokoConstants.ACTION_RESPONSE_FINISH); filter.setPriority(300); registerReceiver(mReceiver, filter); } diff --git a/app/src/main/java/com/moko/beacon/activity/SetIBeaconNameActivity.java b/app/src/main/java/com/moko/beacon/activity/SetIBeaconNameActivity.java index 7e1d4b3..47a2ac1 100644 --- a/app/src/main/java/com/moko/beacon/activity/SetIBeaconNameActivity.java +++ b/app/src/main/java/com/moko/beacon/activity/SetIBeaconNameActivity.java @@ -17,7 +17,8 @@ import com.moko.beacon.R; import com.moko.beacon.service.BeaconService; import com.moko.beacon.utils.ToastUtils; -import com.moko.beaconsupport.entity.OrderType; +import com.moko.support.MokoConstants; +import com.moko.support.entity.OrderType; import butterknife.Bind; import butterknife.ButterKnife; @@ -60,13 +61,13 @@ public void onReceive(Context context, Intent intent) { abortBroadcast(); if (intent != null) { String action = intent.getAction(); - if (BeaconConstants.ACTION_CONNECT_DISCONNECTED.equals(action)) { + if (MokoConstants.ACTION_CONNECT_DISCONNECTED.equals(action)) { ToastUtils.showToast(SetIBeaconNameActivity.this, getString(R.string.alert_diconnected)); SetIBeaconNameActivity.this.setResult(BeaconConstants.RESULT_CONN_DISCONNECTED); finish(); } - if (BeaconConstants.ACTION_RESPONSE_TIMEOUT.equals(action)) { - OrderType orderType = (OrderType) intent.getSerializableExtra(BeaconConstants.EXTRA_KEY_RESPONSE_ORDER_TYPE); + if (MokoConstants.ACTION_RESPONSE_TIMEOUT.equals(action)) { + OrderType orderType = (OrderType) intent.getSerializableExtra(MokoConstants.EXTRA_KEY_RESPONSE_ORDER_TYPE); switch (orderType) { case iBeaconName: // 修改ibeacon name失败 @@ -75,8 +76,8 @@ public void onReceive(Context context, Intent intent) { break; } } - if (BeaconConstants.ACTION_RESPONSE_SUCCESS.equals(action)) { - OrderType orderType = (OrderType) intent.getSerializableExtra(BeaconConstants.EXTRA_KEY_RESPONSE_ORDER_TYPE); + if (MokoConstants.ACTION_RESPONSE_SUCCESS.equals(action)) { + OrderType orderType = (OrderType) intent.getSerializableExtra(MokoConstants.EXTRA_KEY_RESPONSE_ORDER_TYPE); switch (orderType) { case iBeaconName: // 修改ibeacon name成功 @@ -98,11 +99,11 @@ public void onServiceConnected(ComponentName name, IBinder service) { mBeaconService = ((BeaconService.LocalBinder) service).getService(); // 注册广播接收器 IntentFilter filter = new IntentFilter(); - filter.addAction(BeaconConstants.ACTION_CONNECT_SUCCESS); - filter.addAction(BeaconConstants.ACTION_CONNECT_DISCONNECTED); - filter.addAction(BeaconConstants.ACTION_RESPONSE_SUCCESS); - filter.addAction(BeaconConstants.ACTION_RESPONSE_TIMEOUT); - filter.addAction(BeaconConstants.ACTION_RESPONSE_FINISH); + filter.addAction(MokoConstants.ACTION_CONNECT_SUCCESS); + filter.addAction(MokoConstants.ACTION_CONNECT_DISCONNECTED); + filter.addAction(MokoConstants.ACTION_RESPONSE_SUCCESS); + filter.addAction(MokoConstants.ACTION_RESPONSE_TIMEOUT); + filter.addAction(MokoConstants.ACTION_RESPONSE_FINISH); filter.setPriority(300); registerReceiver(mReceiver, filter); } diff --git a/app/src/main/java/com/moko/beacon/activity/SetMajorActivity.java b/app/src/main/java/com/moko/beacon/activity/SetMajorActivity.java index a1f5b61..1a57c6b 100644 --- a/app/src/main/java/com/moko/beacon/activity/SetMajorActivity.java +++ b/app/src/main/java/com/moko/beacon/activity/SetMajorActivity.java @@ -20,7 +20,8 @@ import com.moko.beacon.R; import com.moko.beacon.service.BeaconService; import com.moko.beacon.utils.ToastUtils; -import com.moko.beaconsupport.entity.OrderType; +import com.moko.support.MokoConstants; +import com.moko.support.entity.OrderType; import butterknife.Bind; import butterknife.ButterKnife; @@ -88,13 +89,13 @@ public void onReceive(Context context, Intent intent) { abortBroadcast(); if (intent != null) { String action = intent.getAction(); - if (BeaconConstants.ACTION_CONNECT_DISCONNECTED.equals(action)) { + if (MokoConstants.ACTION_CONNECT_DISCONNECTED.equals(action)) { ToastUtils.showToast(SetMajorActivity.this, getString(R.string.alert_diconnected)); SetMajorActivity.this.setResult(BeaconConstants.RESULT_CONN_DISCONNECTED); finish(); } - if (BeaconConstants.ACTION_RESPONSE_TIMEOUT.equals(action)) { - OrderType orderType = (OrderType) intent.getSerializableExtra(BeaconConstants.EXTRA_KEY_RESPONSE_ORDER_TYPE); + if (MokoConstants.ACTION_RESPONSE_TIMEOUT.equals(action)) { + OrderType orderType = (OrderType) intent.getSerializableExtra(MokoConstants.EXTRA_KEY_RESPONSE_ORDER_TYPE); switch (orderType) { case major: // 修改major失败 @@ -103,8 +104,8 @@ public void onReceive(Context context, Intent intent) { break; } } - if (BeaconConstants.ACTION_RESPONSE_SUCCESS.equals(action)) { - OrderType orderType = (OrderType) intent.getSerializableExtra(BeaconConstants.EXTRA_KEY_RESPONSE_ORDER_TYPE); + if (MokoConstants.ACTION_RESPONSE_SUCCESS.equals(action)) { + OrderType orderType = (OrderType) intent.getSerializableExtra(MokoConstants.EXTRA_KEY_RESPONSE_ORDER_TYPE); switch (orderType) { case major: // 修改major成功 @@ -126,11 +127,11 @@ public void onServiceConnected(ComponentName name, IBinder service) { mBeaconService = ((BeaconService.LocalBinder) service).getService(); // 注册广播接收器 IntentFilter filter = new IntentFilter(); - filter.addAction(BeaconConstants.ACTION_CONNECT_SUCCESS); - filter.addAction(BeaconConstants.ACTION_CONNECT_DISCONNECTED); - filter.addAction(BeaconConstants.ACTION_RESPONSE_SUCCESS); - filter.addAction(BeaconConstants.ACTION_RESPONSE_TIMEOUT); - filter.addAction(BeaconConstants.ACTION_RESPONSE_FINISH); + filter.addAction(MokoConstants.ACTION_CONNECT_SUCCESS); + filter.addAction(MokoConstants.ACTION_CONNECT_DISCONNECTED); + filter.addAction(MokoConstants.ACTION_RESPONSE_SUCCESS); + filter.addAction(MokoConstants.ACTION_RESPONSE_TIMEOUT); + filter.addAction(MokoConstants.ACTION_RESPONSE_FINISH); filter.setPriority(300); registerReceiver(mReceiver, filter); } diff --git a/app/src/main/java/com/moko/beacon/activity/SetMeasurePowerActivity.java b/app/src/main/java/com/moko/beacon/activity/SetMeasurePowerActivity.java index 1278623..3b96d9e 100644 --- a/app/src/main/java/com/moko/beacon/activity/SetMeasurePowerActivity.java +++ b/app/src/main/java/com/moko/beacon/activity/SetMeasurePowerActivity.java @@ -17,7 +17,8 @@ import com.moko.beacon.R; import com.moko.beacon.service.BeaconService; import com.moko.beacon.utils.ToastUtils; -import com.moko.beaconsupport.entity.OrderType; +import com.moko.support.MokoConstants; +import com.moko.support.entity.OrderType; import butterknife.Bind; import butterknife.ButterKnife; @@ -59,13 +60,13 @@ public void onReceive(Context context, Intent intent) { abortBroadcast(); if (intent != null) { String action = intent.getAction(); - if (BeaconConstants.ACTION_CONNECT_DISCONNECTED.equals(action)) { + if (MokoConstants.ACTION_CONNECT_DISCONNECTED.equals(action)) { ToastUtils.showToast(SetMeasurePowerActivity.this, getString(R.string.alert_diconnected)); SetMeasurePowerActivity.this.setResult(BeaconConstants.RESULT_CONN_DISCONNECTED); finish(); } - if (BeaconConstants.ACTION_RESPONSE_TIMEOUT.equals(action)) { - OrderType orderType = (OrderType) intent.getSerializableExtra(BeaconConstants.EXTRA_KEY_RESPONSE_ORDER_TYPE); + if (MokoConstants.ACTION_RESPONSE_TIMEOUT.equals(action)) { + OrderType orderType = (OrderType) intent.getSerializableExtra(MokoConstants.EXTRA_KEY_RESPONSE_ORDER_TYPE); switch (orderType) { case measurePower: // 修改measure power失败 @@ -74,8 +75,8 @@ public void onReceive(Context context, Intent intent) { break; } } - if (BeaconConstants.ACTION_RESPONSE_SUCCESS.equals(action)) { - OrderType orderType = (OrderType) intent.getSerializableExtra(BeaconConstants.EXTRA_KEY_RESPONSE_ORDER_TYPE); + if (MokoConstants.ACTION_RESPONSE_SUCCESS.equals(action)) { + OrderType orderType = (OrderType) intent.getSerializableExtra(MokoConstants.EXTRA_KEY_RESPONSE_ORDER_TYPE); switch (orderType) { case measurePower: // 修改measure power成功 @@ -97,11 +98,11 @@ public void onServiceConnected(ComponentName name, IBinder service) { mBeaconService = ((BeaconService.LocalBinder) service).getService(); // 注册广播接收器 IntentFilter filter = new IntentFilter(); - filter.addAction(BeaconConstants.ACTION_CONNECT_SUCCESS); - filter.addAction(BeaconConstants.ACTION_CONNECT_DISCONNECTED); - filter.addAction(BeaconConstants.ACTION_RESPONSE_SUCCESS); - filter.addAction(BeaconConstants.ACTION_RESPONSE_TIMEOUT); - filter.addAction(BeaconConstants.ACTION_RESPONSE_FINISH); + filter.addAction(MokoConstants.ACTION_CONNECT_SUCCESS); + filter.addAction(MokoConstants.ACTION_CONNECT_DISCONNECTED); + filter.addAction(MokoConstants.ACTION_RESPONSE_SUCCESS); + filter.addAction(MokoConstants.ACTION_RESPONSE_TIMEOUT); + filter.addAction(MokoConstants.ACTION_RESPONSE_FINISH); filter.setPriority(300); registerReceiver(mReceiver, filter); } diff --git a/app/src/main/java/com/moko/beacon/activity/SetMinorActivity.java b/app/src/main/java/com/moko/beacon/activity/SetMinorActivity.java index 6be4daa..2325a6e 100644 --- a/app/src/main/java/com/moko/beacon/activity/SetMinorActivity.java +++ b/app/src/main/java/com/moko/beacon/activity/SetMinorActivity.java @@ -20,7 +20,8 @@ import com.moko.beacon.R; import com.moko.beacon.service.BeaconService; import com.moko.beacon.utils.ToastUtils; -import com.moko.beaconsupport.entity.OrderType; +import com.moko.support.MokoConstants; +import com.moko.support.entity.OrderType; import butterknife.Bind; import butterknife.ButterKnife; @@ -88,13 +89,13 @@ public void onReceive(Context context, Intent intent) { abortBroadcast(); if (intent != null) { String action = intent.getAction(); - if (BeaconConstants.ACTION_CONNECT_DISCONNECTED.equals(action)) { + if (MokoConstants.ACTION_CONNECT_DISCONNECTED.equals(action)) { ToastUtils.showToast(SetMinorActivity.this, getString(R.string.alert_diconnected)); SetMinorActivity.this.setResult(BeaconConstants.RESULT_CONN_DISCONNECTED); finish(); } - if (BeaconConstants.ACTION_RESPONSE_TIMEOUT.equals(action)) { - OrderType orderType = (OrderType) intent.getSerializableExtra(BeaconConstants.EXTRA_KEY_RESPONSE_ORDER_TYPE); + if (MokoConstants.ACTION_RESPONSE_TIMEOUT.equals(action)) { + OrderType orderType = (OrderType) intent.getSerializableExtra(MokoConstants.EXTRA_KEY_RESPONSE_ORDER_TYPE); switch (orderType) { case minor: // 修改minor失败 @@ -103,8 +104,8 @@ public void onReceive(Context context, Intent intent) { break; } } - if (BeaconConstants.ACTION_RESPONSE_SUCCESS.equals(action)) { - OrderType orderType = (OrderType) intent.getSerializableExtra(BeaconConstants.EXTRA_KEY_RESPONSE_ORDER_TYPE); + if (MokoConstants.ACTION_RESPONSE_SUCCESS.equals(action)) { + OrderType orderType = (OrderType) intent.getSerializableExtra(MokoConstants.EXTRA_KEY_RESPONSE_ORDER_TYPE); switch (orderType) { case minor: // 修改minor成功 @@ -126,11 +127,11 @@ public void onServiceConnected(ComponentName name, IBinder service) { mBeaconService = ((BeaconService.LocalBinder) service).getService(); // 注册广播接收器 IntentFilter filter = new IntentFilter(); - filter.addAction(BeaconConstants.ACTION_CONNECT_SUCCESS); - filter.addAction(BeaconConstants.ACTION_CONNECT_DISCONNECTED); - filter.addAction(BeaconConstants.ACTION_RESPONSE_SUCCESS); - filter.addAction(BeaconConstants.ACTION_RESPONSE_TIMEOUT); - filter.addAction(BeaconConstants.ACTION_RESPONSE_FINISH); + filter.addAction(MokoConstants.ACTION_CONNECT_SUCCESS); + filter.addAction(MokoConstants.ACTION_CONNECT_DISCONNECTED); + filter.addAction(MokoConstants.ACTION_RESPONSE_SUCCESS); + filter.addAction(MokoConstants.ACTION_RESPONSE_TIMEOUT); + filter.addAction(MokoConstants.ACTION_RESPONSE_FINISH); filter.setPriority(300); registerReceiver(mReceiver, filter); } diff --git a/app/src/main/java/com/moko/beacon/activity/SetPasswordActivity.java b/app/src/main/java/com/moko/beacon/activity/SetPasswordActivity.java index 1adffb2..33deb81 100644 --- a/app/src/main/java/com/moko/beacon/activity/SetPasswordActivity.java +++ b/app/src/main/java/com/moko/beacon/activity/SetPasswordActivity.java @@ -17,7 +17,8 @@ import com.moko.beacon.R; import com.moko.beacon.service.BeaconService; import com.moko.beacon.utils.ToastUtils; -import com.moko.beaconsupport.entity.OrderType; +import com.moko.support.MokoConstants; +import com.moko.support.entity.OrderType; import butterknife.Bind; import butterknife.ButterKnife; @@ -61,13 +62,13 @@ public void onReceive(Context context, Intent intent) { abortBroadcast(); if (intent != null) { String action = intent.getAction(); - if (BeaconConstants.ACTION_CONNECT_DISCONNECTED.equals(action)) { + if (MokoConstants.ACTION_CONNECT_DISCONNECTED.equals(action)) { ToastUtils.showToast(SetPasswordActivity.this, getString(R.string.alert_diconnected)); SetPasswordActivity.this.setResult(BeaconConstants.RESULT_CONN_DISCONNECTED); finish(); } - if (BeaconConstants.ACTION_RESPONSE_TIMEOUT.equals(action)) { - OrderType orderType = (OrderType) intent.getSerializableExtra(BeaconConstants.EXTRA_KEY_RESPONSE_ORDER_TYPE); + if (MokoConstants.ACTION_RESPONSE_TIMEOUT.equals(action)) { + OrderType orderType = (OrderType) intent.getSerializableExtra(MokoConstants.EXTRA_KEY_RESPONSE_ORDER_TYPE); switch (orderType) { case changePassword: // 修改密码失败 @@ -76,8 +77,8 @@ public void onReceive(Context context, Intent intent) { break; } } - if (BeaconConstants.ACTION_RESPONSE_SUCCESS.equals(action)) { - OrderType orderType = (OrderType) intent.getSerializableExtra(BeaconConstants.EXTRA_KEY_RESPONSE_ORDER_TYPE); + if (MokoConstants.ACTION_RESPONSE_SUCCESS.equals(action)) { + OrderType orderType = (OrderType) intent.getSerializableExtra(MokoConstants.EXTRA_KEY_RESPONSE_ORDER_TYPE); switch (orderType) { case changePassword: // 修改密码成功 @@ -99,11 +100,11 @@ public void onServiceConnected(ComponentName name, IBinder service) { mBeaconService = ((BeaconService.LocalBinder) service).getService(); // 注册广播接收器 IntentFilter filter = new IntentFilter(); - filter.addAction(BeaconConstants.ACTION_CONNECT_SUCCESS); - filter.addAction(BeaconConstants.ACTION_CONNECT_DISCONNECTED); - filter.addAction(BeaconConstants.ACTION_RESPONSE_SUCCESS); - filter.addAction(BeaconConstants.ACTION_RESPONSE_TIMEOUT); - filter.addAction(BeaconConstants.ACTION_RESPONSE_FINISH); + filter.addAction(MokoConstants.ACTION_CONNECT_SUCCESS); + filter.addAction(MokoConstants.ACTION_CONNECT_DISCONNECTED); + filter.addAction(MokoConstants.ACTION_RESPONSE_SUCCESS); + filter.addAction(MokoConstants.ACTION_RESPONSE_TIMEOUT); + filter.addAction(MokoConstants.ACTION_RESPONSE_FINISH); filter.setPriority(300); registerReceiver(mReceiver, filter); } diff --git a/app/src/main/java/com/moko/beacon/activity/SetTransmissionActivity.java b/app/src/main/java/com/moko/beacon/activity/SetTransmissionActivity.java index 8d01515..1965d6b 100644 --- a/app/src/main/java/com/moko/beacon/activity/SetTransmissionActivity.java +++ b/app/src/main/java/com/moko/beacon/activity/SetTransmissionActivity.java @@ -19,7 +19,8 @@ import com.moko.beacon.R; import com.moko.beacon.service.BeaconService; import com.moko.beacon.utils.ToastUtils; -import com.moko.beaconsupport.entity.OrderType; +import com.moko.support.MokoConstants; +import com.moko.support.entity.OrderType; import java.util.ArrayList; @@ -90,13 +91,13 @@ public void onReceive(Context context, Intent intent) { abortBroadcast(); if (intent != null) { String action = intent.getAction(); - if (BeaconConstants.ACTION_CONNECT_DISCONNECTED.equals(action)) { + if (MokoConstants.ACTION_CONNECT_DISCONNECTED.equals(action)) { ToastUtils.showToast(SetTransmissionActivity.this, getString(R.string.alert_diconnected)); SetTransmissionActivity.this.setResult(BeaconConstants.RESULT_CONN_DISCONNECTED); finish(); } - if (BeaconConstants.ACTION_RESPONSE_TIMEOUT.equals(action)) { - OrderType orderType = (OrderType) intent.getSerializableExtra(BeaconConstants.EXTRA_KEY_RESPONSE_ORDER_TYPE); + if (MokoConstants.ACTION_RESPONSE_TIMEOUT.equals(action)) { + OrderType orderType = (OrderType) intent.getSerializableExtra(MokoConstants.EXTRA_KEY_RESPONSE_ORDER_TYPE); switch (orderType) { case transmission: // 修改transmission失败 @@ -105,8 +106,8 @@ public void onReceive(Context context, Intent intent) { break; } } - if (BeaconConstants.ACTION_RESPONSE_SUCCESS.equals(action)) { - OrderType orderType = (OrderType) intent.getSerializableExtra(BeaconConstants.EXTRA_KEY_RESPONSE_ORDER_TYPE); + if (MokoConstants.ACTION_RESPONSE_SUCCESS.equals(action)) { + OrderType orderType = (OrderType) intent.getSerializableExtra(MokoConstants.EXTRA_KEY_RESPONSE_ORDER_TYPE); switch (orderType) { case transmission: // 修改transmission成功 @@ -128,11 +129,11 @@ public void onServiceConnected(ComponentName name, IBinder service) { mBeaconService = ((BeaconService.LocalBinder) service).getService(); // 注册广播接收器 IntentFilter filter = new IntentFilter(); - filter.addAction(BeaconConstants.ACTION_CONNECT_SUCCESS); - filter.addAction(BeaconConstants.ACTION_CONNECT_DISCONNECTED); - filter.addAction(BeaconConstants.ACTION_RESPONSE_SUCCESS); - filter.addAction(BeaconConstants.ACTION_RESPONSE_TIMEOUT); - filter.addAction(BeaconConstants.ACTION_RESPONSE_FINISH); + filter.addAction(MokoConstants.ACTION_CONNECT_SUCCESS); + filter.addAction(MokoConstants.ACTION_CONNECT_DISCONNECTED); + filter.addAction(MokoConstants.ACTION_RESPONSE_SUCCESS); + filter.addAction(MokoConstants.ACTION_RESPONSE_TIMEOUT); + filter.addAction(MokoConstants.ACTION_RESPONSE_FINISH); filter.setPriority(300); registerReceiver(mReceiver, filter); } diff --git a/app/src/main/java/com/moko/beacon/activity/SetUUIDActivity.java b/app/src/main/java/com/moko/beacon/activity/SetUUIDActivity.java index f439161..a553c05 100644 --- a/app/src/main/java/com/moko/beacon/activity/SetUUIDActivity.java +++ b/app/src/main/java/com/moko/beacon/activity/SetUUIDActivity.java @@ -22,7 +22,8 @@ import com.moko.beacon.R; import com.moko.beacon.service.BeaconService; import com.moko.beacon.utils.ToastUtils; -import com.moko.beaconsupport.entity.OrderType; +import com.moko.support.MokoConstants; +import com.moko.support.entity.OrderType; import java.util.HashMap; import java.util.regex.Matcher; @@ -141,13 +142,13 @@ public void onReceive(Context context, Intent intent) { abortBroadcast(); if (intent != null) { String action = intent.getAction(); - if (BeaconConstants.ACTION_CONNECT_DISCONNECTED.equals(action)) { + if (MokoConstants.ACTION_CONNECT_DISCONNECTED.equals(action)) { ToastUtils.showToast(SetUUIDActivity.this, getString(R.string.alert_diconnected)); SetUUIDActivity.this.setResult(BeaconConstants.RESULT_CONN_DISCONNECTED); finish(); } - if (BeaconConstants.ACTION_RESPONSE_TIMEOUT.equals(action)) { - OrderType orderType = (OrderType) intent.getSerializableExtra(BeaconConstants.EXTRA_KEY_RESPONSE_ORDER_TYPE); + if (MokoConstants.ACTION_RESPONSE_TIMEOUT.equals(action)) { + OrderType orderType = (OrderType) intent.getSerializableExtra(MokoConstants.EXTRA_KEY_RESPONSE_ORDER_TYPE); switch (orderType) { case iBeaconUuid: // 修改UUID失败 @@ -156,11 +157,11 @@ public void onReceive(Context context, Intent intent) { break; } } - if (BeaconConstants.ACTION_RESPONSE_FINISH.equals(action)) { + if (MokoConstants.ACTION_RESPONSE_FINISH.equals(action)) { } - if (BeaconConstants.ACTION_RESPONSE_SUCCESS.equals(action)) { - OrderType orderType = (OrderType) intent.getSerializableExtra(BeaconConstants.EXTRA_KEY_RESPONSE_ORDER_TYPE); + if (MokoConstants.ACTION_RESPONSE_SUCCESS.equals(action)) { + OrderType orderType = (OrderType) intent.getSerializableExtra(MokoConstants.EXTRA_KEY_RESPONSE_ORDER_TYPE); switch (orderType) { case iBeaconUuid: // 修改UUID成功 @@ -182,11 +183,11 @@ public void onServiceConnected(ComponentName name, IBinder service) { mBeaconService = ((BeaconService.LocalBinder) service).getService(); // 注册广播接收器 IntentFilter filter = new IntentFilter(); - filter.addAction(BeaconConstants.ACTION_CONNECT_SUCCESS); - filter.addAction(BeaconConstants.ACTION_CONNECT_DISCONNECTED); - filter.addAction(BeaconConstants.ACTION_RESPONSE_SUCCESS); - filter.addAction(BeaconConstants.ACTION_RESPONSE_TIMEOUT); - filter.addAction(BeaconConstants.ACTION_RESPONSE_FINISH); + filter.addAction(MokoConstants.ACTION_CONNECT_SUCCESS); + filter.addAction(MokoConstants.ACTION_CONNECT_DISCONNECTED); + filter.addAction(MokoConstants.ACTION_RESPONSE_SUCCESS); + filter.addAction(MokoConstants.ACTION_RESPONSE_TIMEOUT); + filter.addAction(MokoConstants.ACTION_RESPONSE_FINISH); filter.setPriority(300); registerReceiver(mReceiver, filter); } diff --git a/app/src/main/java/com/moko/beacon/activity/SystemInfoActivity.java b/app/src/main/java/com/moko/beacon/activity/SystemInfoActivity.java index b392a64..31c751a 100644 --- a/app/src/main/java/com/moko/beacon/activity/SystemInfoActivity.java +++ b/app/src/main/java/com/moko/beacon/activity/SystemInfoActivity.java @@ -22,10 +22,11 @@ import com.moko.beacon.entity.BeaconDeviceInfo; import com.moko.beacon.service.BeaconService; import com.moko.beacon.utils.ToastUtils; -import com.moko.beaconsupport.beacon.BeaconModule; -import com.moko.beaconsupport.entity.OrderType; -import com.moko.beaconsupport.task.OrderTask; -import com.moko.beaconsupport.utils.Utils; +import com.moko.support.MokoConstants; +import com.moko.support.MokoSupport; +import com.moko.support.entity.OrderType; +import com.moko.support.task.OrderTask; +import com.moko.support.utils.Utils; import java.util.ArrayList; import java.util.Arrays; @@ -147,11 +148,11 @@ protected void onDestroy() { public void onReceive(Context context, Intent intent) { if (intent != null) { String action = intent.getAction(); - if (BeaconConstants.ACTION_CONNECT_DISCONNECTED.equals(action)) { + if (MokoConstants.ACTION_CONNECT_DISCONNECTED.equals(action)) { ToastUtils.showToast(SystemInfoActivity.this, getString(R.string.alert_diconnected)); finish(); } - if (BeaconConstants.ACTION_RESPONSE_FINISH.equals(action)) { + if (MokoConstants.ACTION_RESPONSE_FINISH.equals(action)) { mBeaconService.mHandler.postDelayed(new Runnable() { @Override public void run() { @@ -160,9 +161,9 @@ public void run() { }, 1000); } - if (BeaconConstants.ACTION_RESPONSE_SUCCESS.equals(action)) { - OrderType orderType = (OrderType) intent.getSerializableExtra(BeaconConstants.EXTRA_KEY_RESPONSE_ORDER_TYPE); - byte[] value = intent.getByteArrayExtra(BeaconConstants.EXTRA_KEY_RESPONSE_VALUE); + if (MokoConstants.ACTION_RESPONSE_SUCCESS.equals(action)) { + OrderType orderType = (OrderType) intent.getSerializableExtra(MokoConstants.EXTRA_KEY_RESPONSE_ORDER_TYPE); + byte[] value = intent.getByteArrayExtra(MokoConstants.EXTRA_KEY_RESPONSE_VALUE); switch (orderType) { case iBeaconMac: String hexMac = Utils.bytesToHexString(value); @@ -241,13 +242,13 @@ public void onServiceConnected(ComponentName name, IBinder service) { mBeaconService = ((BeaconService.LocalBinder) service).getService(); // 注册广播接收器 IntentFilter filter = new IntentFilter(); - filter.addAction(BeaconConstants.ACTION_CONNECT_DISCONNECTED); + filter.addAction(MokoConstants.ACTION_CONNECT_DISCONNECTED); filter.setPriority(300); registerReceiver(mReceiver, filter); - if (!BeaconModule.getInstance().isBluetoothOpen()) { + if (!MokoSupport.getInstance().isBluetoothOpen()) { // 蓝牙未打开,开启蓝牙 Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE); - startActivityForResult(enableBtIntent, BeaconConstants.REQUEST_CODE_ENABLE_BT); + startActivityForResult(enableBtIntent, MokoConstants.REQUEST_CODE_ENABLE_BT); } } diff --git a/app/src/main/java/com/moko/beacon/adapter/BeaconListAdapter.java b/app/src/main/java/com/moko/beacon/adapter/BeaconListAdapter.java index e659f4d..05de3f5 100644 --- a/app/src/main/java/com/moko/beacon/adapter/BeaconListAdapter.java +++ b/app/src/main/java/com/moko/beacon/adapter/BeaconListAdapter.java @@ -8,7 +8,7 @@ import android.widget.TextView; import com.moko.beacon.R; -import com.moko.beaconsupport.entity.BeaconInfo; +import com.moko.beacon.entity.BeaconInfo; import butterknife.Bind; import butterknife.ButterKnife; diff --git a/app/src/main/java/com/moko/beacon/dialog/PasswordDialog.java b/app/src/main/java/com/moko/beacon/dialog/PasswordDialog.java index 38e234f..3d2df3c 100644 --- a/app/src/main/java/com/moko/beacon/dialog/PasswordDialog.java +++ b/app/src/main/java/com/moko/beacon/dialog/PasswordDialog.java @@ -44,6 +44,7 @@ public void onClick(View view) { switch (view.getId()) { case R.id.tv_password_cancel: dismiss(); + passwordClickListener.onDismiss(); break; case R.id.tv_password_ensure: dismiss(); @@ -69,6 +70,8 @@ public void setOnPasswordClicked(PasswordClickListener passwordClickListener) { public interface PasswordClickListener { void onEnsureClicked(String password); + + void onDismiss(); } public void showKeyboard() { diff --git a/beaconsupport/src/main/java/com/moko/beaconsupport/entity/BeaconInfo.java b/app/src/main/java/com/moko/beacon/entity/BeaconInfo.java similarity index 96% rename from beaconsupport/src/main/java/com/moko/beaconsupport/entity/BeaconInfo.java rename to app/src/main/java/com/moko/beacon/entity/BeaconInfo.java index 86c2015..64847f6 100644 --- a/beaconsupport/src/main/java/com/moko/beaconsupport/entity/BeaconInfo.java +++ b/app/src/main/java/com/moko/beacon/entity/BeaconInfo.java @@ -1,4 +1,4 @@ -package com.moko.beaconsupport.entity; +package com.moko.beacon.entity; import java.io.Serializable; diff --git a/app/src/main/java/com/moko/beacon/service/BeaconService.java b/app/src/main/java/com/moko/beacon/service/BeaconService.java index 98b6361..b5b854b 100644 --- a/app/src/main/java/com/moko/beacon/service/BeaconService.java +++ b/app/src/main/java/com/moko/beacon/service/BeaconService.java @@ -6,38 +6,38 @@ import android.os.IBinder; import android.os.Message; -import com.moko.beacon.BeaconConstants; -import com.moko.beacon.base.BaseHandler; -import com.moko.beaconsupport.beacon.BeaconModule; -import com.moko.beaconsupport.callback.BeaconConnStateCallback; -import com.moko.beaconsupport.callback.OrderTaskCallback; -import com.moko.beaconsupport.callback.ScanDeviceCallback; -import com.moko.beaconsupport.entity.OrderType; -import com.moko.beaconsupport.log.LogModule; -import com.moko.beaconsupport.task.BatteryTask; -import com.moko.beaconsupport.task.BroadcastingIntervalTask; -import com.moko.beaconsupport.task.ChangePasswordTask; -import com.moko.beaconsupport.task.ChipModelTask; -import com.moko.beaconsupport.task.ConnectionModeTask; -import com.moko.beaconsupport.task.DevicenameTask; -import com.moko.beaconsupport.task.FirmnameTask; -import com.moko.beaconsupport.task.FirmwareVersionTask; -import com.moko.beaconsupport.task.HardwareVersionTask; -import com.moko.beaconsupport.task.IBeaconDateTask; -import com.moko.beaconsupport.task.IBeaconMacTask; -import com.moko.beaconsupport.task.IBeaconNameTask; -import com.moko.beaconsupport.task.IBeaconUuidTask; -import com.moko.beaconsupport.task.IEEEInfoTask; -import com.moko.beaconsupport.task.MajorTask; -import com.moko.beaconsupport.task.MeasurePowerTask; -import com.moko.beaconsupport.task.MinorTask; -import com.moko.beaconsupport.task.OrderTask; -import com.moko.beaconsupport.task.OvertimeTask; -import com.moko.beaconsupport.task.RunntimeTask; -import com.moko.beaconsupport.task.SerialIDTask; -import com.moko.beaconsupport.task.SoftRebootModeTask; -import com.moko.beaconsupport.task.SystemMarkTask; -import com.moko.beaconsupport.task.TransmissionTask; +import com.moko.support.MokoConstants; +import com.moko.support.MokoSupport; +import com.moko.support.callback.MokoConnStateCallback; +import com.moko.support.callback.MokoOrderTaskCallback; +import com.moko.support.callback.MokoScanDeviceCallback; +import com.moko.support.entity.OrderType; +import com.moko.support.handler.BaseMessageHandler; +import com.moko.support.log.LogModule; +import com.moko.support.task.BatteryTask; +import com.moko.support.task.BroadcastingIntervalTask; +import com.moko.support.task.ChangePasswordTask; +import com.moko.support.task.ChipModelTask; +import com.moko.support.task.ConnectionModeTask; +import com.moko.support.task.DevicenameTask; +import com.moko.support.task.FirmnameTask; +import com.moko.support.task.FirmwareVersionTask; +import com.moko.support.task.HardwareVersionTask; +import com.moko.support.task.IBeaconDateTask; +import com.moko.support.task.IBeaconMacTask; +import com.moko.support.task.IBeaconNameTask; +import com.moko.support.task.IBeaconUuidTask; +import com.moko.support.task.IEEEInfoTask; +import com.moko.support.task.MajorTask; +import com.moko.support.task.MeasurePowerTask; +import com.moko.support.task.MinorTask; +import com.moko.support.task.OrderTask; +import com.moko.support.task.OvertimeTask; +import com.moko.support.task.RunntimeTask; +import com.moko.support.task.SerialIDTask; +import com.moko.support.task.SoftRebootModeTask; +import com.moko.support.task.SystemMarkTask; +import com.moko.support.task.TransmissionTask; /** * @Date 2017/12/7 0007 @@ -45,7 +45,7 @@ * @Description * @ClassPath com.moko.beacon.service.BeaconService */ -public class BeaconService extends Service implements BeaconConnStateCallback, OrderTaskCallback { +public class BeaconService extends Service implements MokoConnStateCallback, MokoOrderTaskCallback { private IBinder mBinder = new LocalBinder(); public class LocalBinder extends Binder { @@ -75,7 +75,7 @@ public void onCreate() { @Override public void onDestroy() { LogModule.i("关闭后台服务"); - BeaconModule.getInstance().disConnectBle(); + MokoSupport.getInstance().disConnectBle(); super.onDestroy(); } @@ -88,13 +88,13 @@ public int onStartCommand(Intent intent, int flags, int startId) { // 处理扫描 /////////////////////////////////////////////////////////////////////////// - public void startScanDevice(final ScanDeviceCallback callback) { - BeaconModule.getInstance().startScanDevice(callback); + public void startScanDevice(final MokoScanDeviceCallback callback) { + + MokoSupport.getInstance().startScanDevice(callback); mHandler.postDelayed(new Runnable() { @Override public void run() { - BeaconModule.getInstance().stopScanDevice(); - callback.onStopScan(); + MokoSupport.getInstance().stopScanDevice(); } }, 4000); } @@ -105,18 +105,18 @@ public void run() { /////////////////////////////////////////////////////////////////////////// public void connDevice(String address) { - BeaconModule.getInstance().connDevice(this, address, this); + MokoSupport.getInstance().connDevice(this, address, this); } @Override public void onConnectSuccess() { - Intent intent = new Intent(BeaconConstants.ACTION_CONNECT_SUCCESS); + Intent intent = new Intent(MokoConstants.ACTION_CONNECT_SUCCESS); sendOrderedBroadcast(intent, null); } @Override public void onDisConnected() { - Intent intent = new Intent(BeaconConstants.ACTION_CONNECT_DISCONNECTED); + Intent intent = new Intent(MokoConstants.ACTION_CONNECT_DISCONNECTED); sendOrderedBroadcast(intent, null); } @@ -130,16 +130,19 @@ public void onDisConnected() { * @Description 获取可读信息 */ public void getReadableData(String password) { - BeaconModule.getInstance().sendOrder(getBattery(), getFirmname(), getDevicename(), getiBeaconDate(), + MokoSupport.getInstance().sendOrder(getBattery(), getFirmname(), getDevicename(), getiBeaconDate(), getHardwareVersion(), getFirmwareVersion(), getSystemMark(), getIEEEInfo(), getIBeaconUuid(), getMajor(), getMinor(), getMeasurePower(), getTransmission(), getBroadcastingInterval(), getSerialID(), getIBeaconName(), getConnectionMode(), getIBeaconMac(), + setRunntimeAndChipModelNotify(), getRunntime(), getChipModel(), - setOvertime(), setChangePassword(password)); + setOvertime(), + setChangePasswordNotify(), + setChangePassword(password)); } public void sendOrder(OrderTask... orderTasks) { - BeaconModule.getInstance().sendOrder(orderTasks); + MokoSupport.getInstance().sendOrder(orderTasks); } public OrderTask getBattery() { @@ -182,18 +185,28 @@ public OrderTask getIEEEInfo() { return ieeeInfoTask; } - public OrderTask getRunntime() { + public OrderTask setRunntimeAndChipModelNotify() { RunntimeTask runntimeTask = new RunntimeTask(this, OrderTask.RESPONSE_TYPE_NOTIFY); return runntimeTask; } + public OrderTask setChangePasswordNotify() { + ChangePasswordTask changePasswordTask = new ChangePasswordTask(this, OrderTask.RESPONSE_TYPE_NOTIFY); + return changePasswordTask; + } + + public OrderTask getRunntime() { + RunntimeTask runntimeTask = new RunntimeTask(this, OrderTask.RESPONSE_TYPE_WRITE_NO_RESPONSE); + return runntimeTask; + } + public OrderTask getChipModel() { - ChipModelTask chipModelTask = new ChipModelTask(this, OrderTask.RESPONSE_TYPE_NOTIFY); + ChipModelTask chipModelTask = new ChipModelTask(this, OrderTask.RESPONSE_TYPE_WRITE_NO_RESPONSE); return chipModelTask; } public OrderTask setChangePassword(String password) { - ChangePasswordTask changePasswordTask = new ChangePasswordTask(this, OrderTask.RESPONSE_TYPE_NOTIFY); + ChangePasswordTask changePasswordTask = new ChangePasswordTask(this, OrderTask.RESPONSE_TYPE_WRITE_NO_RESPONSE); changePasswordTask.setData(password); return changePasswordTask; } @@ -315,29 +328,29 @@ public OrderTask setOvertime() { @Override public void onOrderResult(OrderType orderType, byte[] value) { - Intent intent = new Intent(BeaconConstants.ACTION_RESPONSE_SUCCESS); - intent.putExtra(BeaconConstants.EXTRA_KEY_RESPONSE_ORDER_TYPE, orderType); - intent.putExtra(BeaconConstants.EXTRA_KEY_RESPONSE_VALUE, value); + Intent intent = new Intent(MokoConstants.ACTION_RESPONSE_SUCCESS); + intent.putExtra(MokoConstants.EXTRA_KEY_RESPONSE_ORDER_TYPE, orderType); + intent.putExtra(MokoConstants.EXTRA_KEY_RESPONSE_VALUE, value); sendOrderedBroadcast(intent, null); } @Override public void onOrderTimeout(OrderType orderType) { - Intent intent = new Intent(BeaconConstants.ACTION_RESPONSE_TIMEOUT); - intent.putExtra(BeaconConstants.EXTRA_KEY_RESPONSE_ORDER_TYPE, orderType); + Intent intent = new Intent(MokoConstants.ACTION_RESPONSE_TIMEOUT); + intent.putExtra(MokoConstants.EXTRA_KEY_RESPONSE_ORDER_TYPE, orderType); sendOrderedBroadcast(intent, null); } @Override public void onOrderFinish() { LogModule.i("任务完成"); - Intent intent = new Intent(BeaconConstants.ACTION_RESPONSE_FINISH); + Intent intent = new Intent(MokoConstants.ACTION_RESPONSE_FINISH); sendOrderedBroadcast(intent, null); } public ServiceHandler mHandler; - public class ServiceHandler extends BaseHandler { + public class ServiceHandler extends BaseMessageHandler { public ServiceHandler(BeaconService service) { super(service); diff --git a/app/src/main/java/com/moko/beacon/utils/Utils.java b/app/src/main/java/com/moko/beacon/utils/Utils.java index d7c6e3d..cdbd154 100644 --- a/app/src/main/java/com/moko/beacon/utils/Utils.java +++ b/app/src/main/java/com/moko/beacon/utils/Utils.java @@ -27,26 +27,6 @@ public static double getDistance(int rssi, int acc) { return Math.pow(10, power); } - public static String byte2HexString(byte b) { - return String.format("%02X", b); - } - - public static String bytesToHexString(byte[] src) { - StringBuilder stringBuilder = new StringBuilder(""); - if (src == null || src.length <= 0) { - return null; - } - for (int i = 0; i < src.length; i++) { - int v = src[i] & 0xFF; - String hv = Integer.toHexString(v); - if (hv.length() < 2) { - stringBuilder.append(0); - } - stringBuilder.append(hv); - } - return stringBuilder.toString(); - } - public static String getVersionInfo(Context context) { // 获取packagemanager的实例 PackageManager packageManager = context.getPackageManager(); diff --git a/beaconsupport/.gitignore b/beaconsupport/.gitignore deleted file mode 100644 index 796b96d..0000000 --- a/beaconsupport/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/build diff --git a/beaconsupport/src/main/java/com/moko/beaconsupport/callback/BeaconResponseCallback.java b/beaconsupport/src/main/java/com/moko/beaconsupport/callback/BeaconResponseCallback.java deleted file mode 100644 index ad8968e..0000000 --- a/beaconsupport/src/main/java/com/moko/beaconsupport/callback/BeaconResponseCallback.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.moko.beaconsupport.callback; - -/** - * @Date 2017/12/12 0012 - * @Author wenzheng.liu - * @Description - * @ClassPath com.moko.beaconsupport.callback.BeaconResponseCallback - */ -public interface BeaconResponseCallback { - - void onCharacteristicChanged(byte[] value); - - void onCharacteristicWrite(byte[] value); - - void onCharacteristicRead(byte[] value); - - void onDescriptorWrite(); -} diff --git a/beaconsupport/src/main/java/com/moko/beaconsupport/callback/ScanDeviceCallback.java b/beaconsupport/src/main/java/com/moko/beaconsupport/callback/ScanDeviceCallback.java deleted file mode 100644 index 58f0f0f..0000000 --- a/beaconsupport/src/main/java/com/moko/beaconsupport/callback/ScanDeviceCallback.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.moko.beaconsupport.callback; - -import com.moko.beaconsupport.entity.BeaconInfo; - -/** - * @Date 2017/12/8 0008 - * @Author wenzheng.liu - * @Description - * @ClassPath com.moko.beaconsupport.callback.ScanDeviceCallback - */ -public interface ScanDeviceCallback { - void onStartScan(); - - void onScanDevice(BeaconInfo beaconInfos); - - void onStopScan(); -} diff --git a/beaconsupport/src/main/java/com/moko/beaconsupport/handler/BeaconLeScanHandler.java b/beaconsupport/src/main/java/com/moko/beaconsupport/handler/BeaconLeScanHandler.java deleted file mode 100644 index e858e38..0000000 --- a/beaconsupport/src/main/java/com/moko/beaconsupport/handler/BeaconLeScanHandler.java +++ /dev/null @@ -1,117 +0,0 @@ -package com.moko.beaconsupport.handler; - -import android.bluetooth.BluetoothAdapter; -import android.bluetooth.BluetoothDevice; -import android.text.TextUtils; - -import com.moko.beaconsupport.callback.ScanDeviceCallback; -import com.moko.beaconsupport.entity.BeaconInfo; -import com.moko.beaconsupport.utils.Utils; - -import java.text.DecimalFormat; - -/** - * @Date 2017/12/12 0012 - * @Author wenzheng.liu - * @Description 搜索设备回调类 - * @ClassPath com.moko.beaconsupport.handler.BeaconLeScanHandler - */ -public class BeaconLeScanHandler implements BluetoothAdapter.LeScanCallback { - private ScanDeviceCallback callback; - - public BeaconLeScanHandler(ScanDeviceCallback callback) { - this.callback = callback; - } - - @Override - public void onLeScan(BluetoothDevice device, int rssi, byte[] scanRecord) { - if (device != null) { - if (TextUtils.isEmpty(device.getName()) || scanRecord.length == 0 || rssi == 127) { - return; - } - int startByte = 2; - boolean patternFound = false; - // 0215 00ff - while (startByte <= 5) { - if (((int) scanRecord[startByte + 2] & 0xff) == 0x02 - && ((int) scanRecord[startByte + 3] & 0xff) == 0x15 - && ((int) scanRecord[startByte + 30] & 0xff) == 0x00 - && ((int) scanRecord[startByte + 31] & 0xff) == 0xff) { - // yes! This is an iBeacon - patternFound = true; - break; - } - startByte++; - } - if (!patternFound) { - // This is not an iBeacon - return; - } - // log - String log = Utils.bytesToHexString(scanRecord); - // uuid - byte[] proximityUuidBytes = new byte[16]; - System.arraycopy(scanRecord, startByte + 4, proximityUuidBytes, 0, 16); - String hexString = Utils.bytesToHexString(proximityUuidBytes); - StringBuilder sb = new StringBuilder(); - sb.append(hexString.substring(0, 8)); - sb.append("-"); - sb.append(hexString.substring(8, 12)); - sb.append("-"); - sb.append(hexString.substring(12, 16)); - sb.append("-"); - sb.append(hexString.substring(16, 20)); - sb.append("-"); - sb.append(hexString.substring(20, 32)); - String uuid = sb.toString(); - - int major = (scanRecord[startByte + 20] & 0xff) * 0x100 + (scanRecord[startByte + 21] & 0xff); - int minor = (scanRecord[startByte + 22] & 0xff) * 0x100 + (scanRecord[startByte + 23] & 0xff); - int txPower = 0 - (int) scanRecord[startByte + 27] & 0xff; - int battery = (int) scanRecord[startByte + 32] & 0xff; - // distance acc - int acc = (int) scanRecord[startByte + 37] & 0xff; - // 连接状态在版本号最高位,0不可连接,1可连接,判断后将版本号归位 - String versionStr = Utils.hexString2binaryString(Utils.byte2HexString(scanRecord[startByte + 38])); -// LogModule.i("version binary: " + versionStr); - String connState = versionStr.substring(0, 1); - boolean isConnected = Integer.parseInt(connState) == 1; - String versionBinary = isConnected ? "0" + versionStr.substring(1, versionStr.length()) : versionStr; - int version = Integer.parseInt(Utils.binaryString2hexString(versionBinary), 16); - // ======================================================== - String mac = device.getAddress(); - double distance = Utils.getDistance(rssi, acc); - String distanceDesc = "unknown"; - if (distance <= 0.1) { - distanceDesc = "immediate"; - } else if (distance > 0.1 && distance <= 1.0) { - distanceDesc = "near"; - } else if (distance > 1.0) { - distanceDesc = "far"; - } - String distanceStr = new DecimalFormat("#0.00").format(distance); -// try { -// Method isConnectedMethod = BluetoothDevice.class.getMethod("isConnected"); -// Boolean returnValue = (Boolean) isConnectedMethod.invoke(device); -// LogModule.i("isConnected: " + returnValue.booleanValue()); -// } catch (Exception e) { -// } - BeaconInfo beaconInfo = new BeaconInfo(); - beaconInfo.name = device.getName(); - beaconInfo.rssi = rssi; - beaconInfo.distance = distanceStr; - beaconInfo.distanceDesc = distanceDesc; - beaconInfo.major = major; - beaconInfo.minor = minor; - beaconInfo.txPower = txPower; - beaconInfo.uuid = uuid; - beaconInfo.batteryPower = battery; - beaconInfo.version = version; - beaconInfo.scanRecord = log; - beaconInfo.isConnected = isConnected; - beaconInfo.mac = mac; - - callback.onScanDevice(beaconInfo); - } - } -} \ No newline at end of file diff --git a/mokosupport/.gitignore b/mokosupport/.gitignore new file mode 100644 index 0000000..cab0e16 --- /dev/null +++ b/mokosupport/.gitignore @@ -0,0 +1,29 @@ +# Built application files +*.apk +*.ap_ + +# Files for the Dalvik VM +*.dex + +# Java class files +*.class + +# Generated files +bin/ +gen/ + +# Gradle files +.gradle/ +build/ +/*/build/ + +# Local configuration file (sdk path, etc) +local.properties + +# Proguard folder generated by Eclipse +proguard/ + +# Log Files +*.log +.idea +*.iml diff --git a/beaconsupport/build.gradle b/mokosupport/build.gradle similarity index 87% rename from beaconsupport/build.gradle rename to mokosupport/build.gradle index 8601f69..b0f72a5 100644 --- a/beaconsupport/build.gradle +++ b/mokosupport/build.gradle @@ -19,5 +19,6 @@ android { dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) + compile 'no.nordicsemi.android.support.v18:scanner:1.0.0' compile 'com.elvishew:xlog:1.3.0' } diff --git a/beaconsupport/proguard-rules.pro b/mokosupport/proguard-rules.pro similarity index 100% rename from beaconsupport/proguard-rules.pro rename to mokosupport/proguard-rules.pro diff --git a/beaconsupport/src/main/AndroidManifest.xml b/mokosupport/src/main/AndroidManifest.xml similarity index 96% rename from beaconsupport/src/main/AndroidManifest.xml rename to mokosupport/src/main/AndroidManifest.xml index 3ee1592..367c71f 100644 --- a/beaconsupport/src/main/AndroidManifest.xml +++ b/mokosupport/src/main/AndroidManifest.xml @@ -1,5 +1,5 @@ + package="com.moko.support"> diff --git a/mokosupport/src/main/java/com/moko/support/MokoConstants.java b/mokosupport/src/main/java/com/moko/support/MokoConstants.java new file mode 100644 index 0000000..453bdb7 --- /dev/null +++ b/mokosupport/src/main/java/com/moko/support/MokoConstants.java @@ -0,0 +1,16 @@ +package com.moko.support; + +public class MokoConstants { + // action + public static final String ACTION_CONNECT_SUCCESS = "ACTION_CONNECT_SUCCESS"; + public static final String ACTION_CONNECT_DISCONNECTED = "ACTION_CONNECT_DISCONNECTED"; + public static final String ACTION_RESPONSE_SUCCESS = "ACTION_RESPONSE_SUCCESS"; + public static final String ACTION_RESPONSE_TIMEOUT = "ACTION_RESPONSE_TIMEOUT"; + public static final String ACTION_RESPONSE_FINISH = "ACTION_RESPONSE_FINISH"; + public static final String ACTION_RESPONSE_NOTIFY = "ACTION_RESPONSE_NOTIFY"; + // extra_key + public static final String EXTRA_KEY_RESPONSE_ORDER_TYPE = "EXTRA_KEY_RESPONSE_ORDER_TYPE"; + public static final String EXTRA_KEY_RESPONSE_VALUE = "EXTRA_KEY_RESPONSE_VALUE"; + // request_code + public static final int REQUEST_CODE_ENABLE_BT = 1001; +} diff --git a/beaconsupport/src/main/java/com/moko/beaconsupport/beacon/BeaconModule.java b/mokosupport/src/main/java/com/moko/support/MokoSupport.java similarity index 55% rename from beaconsupport/src/main/java/com/moko/beaconsupport/beacon/BeaconModule.java rename to mokosupport/src/main/java/com/moko/support/MokoSupport.java index 1f5241e..22b4c14 100644 --- a/beaconsupport/src/main/java/com/moko/beaconsupport/beacon/BeaconModule.java +++ b/mokosupport/src/main/java/com/moko/support/MokoSupport.java @@ -1,29 +1,31 @@ -package com.moko.beaconsupport.beacon; +package com.moko.support; import android.bluetooth.BluetoothAdapter; import android.bluetooth.BluetoothDevice; import android.bluetooth.BluetoothGatt; +import android.bluetooth.BluetoothGattCharacteristic; import android.bluetooth.BluetoothGattDescriptor; import android.bluetooth.BluetoothManager; import android.bluetooth.BluetoothProfile; import android.content.Context; +import android.content.Intent; import android.os.Message; import android.text.TextUtils; -import com.moko.beaconsupport.callback.BeaconConnStateCallback; -import com.moko.beaconsupport.callback.BeaconResponseCallback; -import com.moko.beaconsupport.callback.OrderTaskCallback; -import com.moko.beaconsupport.callback.ScanDeviceCallback; -import com.moko.beaconsupport.entity.BeaconCharacteristic; -import com.moko.beaconsupport.entity.OrderType; -import com.moko.beaconsupport.handler.BaseHandler; -import com.moko.beaconsupport.handler.BeaconConnStateHandler; -import com.moko.beaconsupport.handler.BeaconLeScanHandler; -import com.moko.beaconsupport.handler.CharacteristicHandler; -import com.moko.beaconsupport.log.LogModule; -import com.moko.beaconsupport.task.OrderTask; -import com.moko.beaconsupport.utils.BleConnectionCompat; -import com.moko.beaconsupport.utils.Utils; +import com.moko.support.callback.MokoConnStateCallback; +import com.moko.support.callback.MokoOrderTaskCallback; +import com.moko.support.callback.MokoResponseCallback; +import com.moko.support.callback.MokoScanDeviceCallback; +import com.moko.support.entity.MokoCharacteristic; +import com.moko.support.entity.OrderType; +import com.moko.support.handler.BaseMessageHandler; +import com.moko.support.handler.MokoCharacteristicHandler; +import com.moko.support.handler.MokoConnStateHandler; +import com.moko.support.handler.MokoLeScanHandler; +import com.moko.support.log.LogModule; +import com.moko.support.task.OrderTask; +import com.moko.support.utils.BleConnectionCompat; +import com.moko.support.utils.Utils; import java.lang.reflect.Method; import java.util.Arrays; @@ -32,13 +34,15 @@ import java.util.concurrent.BlockingQueue; import java.util.concurrent.LinkedBlockingQueue; +import no.nordicsemi.android.support.v18.scanner.BluetoothLeScannerCompat; + /** * @Date 2017/12/7 0007 * @Author wenzheng.liu * @Description - * @ClassPath com.moko.beaconsupport.beacon.BeaconModule + * @ClassPath com.moko.support.beacon.MokoSupport */ -public class BeaconModule implements BeaconResponseCallback { +public class MokoSupport implements MokoResponseCallback { public static final int HANDLER_MESSAGE_WHAT_CONNECTED = 1; public static final int HANDLER_MESSAGE_WHAT_DISCONNECTED = 2; public static final int HANDLER_MESSAGE_WHAT_SERVICES_DISCOVERED = 3; @@ -47,24 +51,25 @@ public class BeaconModule implements BeaconResponseCallback { private BluetoothAdapter mBluetoothAdapter; private BluetoothGatt mBluetoothGatt; - private BeaconLeScanHandler mBeaconLeScanHandler; - private HashMap mBeaconCharacteristicMap; + private MokoLeScanHandler mMokoLeScanHandler; + private HashMap mCharacteristicMap; private BlockingQueue mQueue; + private MokoScanDeviceCallback mMokoScanDeviceCallback; - private static volatile BeaconModule INSTANCE; + private static volatile MokoSupport INSTANCE; private Context mContext; - private BeaconModule() { + private MokoSupport() { //no instance mQueue = new LinkedBlockingQueue<>(); } - public static BeaconModule getInstance() { + public static MokoSupport getInstance() { if (INSTANCE == null) { - synchronized (BeaconModule.class) { + synchronized (MokoSupport.class) { if (INSTANCE == null) { - INSTANCE = new BeaconModule(); + INSTANCE = new MokoSupport(); } } } @@ -74,34 +79,34 @@ public static BeaconModule getInstance() { public void init(Context context) { LogModule.init(context); mContext = context; - mHandler = new ServiceHandler(this); + mHandler = new ServiceMessageHandler(this); final BluetoothManager bluetoothManager = (BluetoothManager) context.getSystemService(Context.BLUETOOTH_SERVICE); mBluetoothAdapter = bluetoothManager.getAdapter(); } - private ServiceHandler mHandler; + private ServiceMessageHandler mHandler; - public class ServiceHandler extends BaseHandler { - private BeaconConnStateCallback connStateCallback; + public class ServiceMessageHandler extends BaseMessageHandler { + private MokoConnStateCallback mokoConnStateCallback; - public ServiceHandler(BeaconModule module) { + public ServiceMessageHandler(MokoSupport module) { super(module); } @Override - protected void handleMessage(BeaconModule module, Message msg) { + protected void handleMessage(MokoSupport module, Message msg) { switch (msg.what) { case HANDLER_MESSAGE_WHAT_CONNECTED: mBluetoothGatt.discoverServices(); break; case HANDLER_MESSAGE_WHAT_DISCONNECTED: disConnectBle(); - connStateCallback.onDisConnected(); + mokoConnStateCallback.onDisConnected(); break; case HANDLER_MESSAGE_WHAT_SERVICES_DISCOVERED: LogModule.i("连接成功!"); - mBeaconCharacteristicMap = CharacteristicHandler.getInstance().getCharacteristics(mBluetoothGatt); - connStateCallback.onConnectSuccess(); + mCharacteristicMap = MokoCharacteristicHandler.getInstance().getCharacteristics(mBluetoothGatt); + mokoConnStateCallback.onConnectSuccess(); break; case HANDLER_MESSAGE_WHAT_DISCONNECT: if (mBluetoothGatt != null) { @@ -116,13 +121,13 @@ protected void handleMessage(BeaconModule module, Message msg) { } } - public void setConnStateCallback(BeaconConnStateCallback connStateCallback) { - this.connStateCallback = connStateCallback; + public void setMokoConnStateCallback(MokoConnStateCallback mokoConnStateCallback) { + this.mokoConnStateCallback = mokoConnStateCallback; } } - public void setConnStateCallback(final BeaconConnStateCallback connStateCallback) { - mHandler.setConnStateCallback(connStateCallback); + public void setConnStateCallback(final MokoConnStateCallback mokoConnStateCallback) { + mHandler.setMokoConnStateCallback(mokoConnStateCallback); } /** @@ -145,37 +150,42 @@ public boolean isConnDevice(Context context, String address) { return connState == BluetoothProfile.STATE_CONNECTED; } - public void startScanDevice(ScanDeviceCallback scanDeviceCallback) { + public void startScanDevice(MokoScanDeviceCallback mokoScanDeviceCallback) { LogModule.i("开始扫描Beacon"); - mBeaconLeScanHandler = new BeaconLeScanHandler(scanDeviceCallback); - mBluetoothAdapter.startLeScan(mBeaconLeScanHandler); - scanDeviceCallback.onStartScan(); + final BluetoothLeScannerCompat scanner = BluetoothLeScannerCompat.getScanner(); + mMokoLeScanHandler = new MokoLeScanHandler(mokoScanDeviceCallback); + scanner.startScan(mMokoLeScanHandler); + mMokoScanDeviceCallback = mokoScanDeviceCallback; + mokoScanDeviceCallback.onStartScan(); } public void stopScanDevice() { - if (mBeaconLeScanHandler != null) { + if (mMokoLeScanHandler != null && mMokoScanDeviceCallback != null) { LogModule.i("结束扫描Beacon"); - mBluetoothAdapter.stopLeScan(mBeaconLeScanHandler); - mBeaconLeScanHandler = null; + final BluetoothLeScannerCompat scanner = BluetoothLeScannerCompat.getScanner(); + scanner.stopScan(mMokoLeScanHandler); + mMokoScanDeviceCallback.onStopScan(); + mMokoLeScanHandler = null; + mMokoScanDeviceCallback = null; } } - public void connDevice(final Context context, final String address, final BeaconConnStateCallback connStateCallback) { + public void connDevice(final Context context, final String address, final MokoConnStateCallback mokoConnStateCallback) { if (TextUtils.isEmpty(address)) { - // TODO: 2017/12/12 0012 地址为空 + LogModule.i("connDevice: 地址为空"); return; } if (!isBluetoothOpen()) { - // TODO: 2017/12/12 0012 蓝牙未打开 + LogModule.i("connDevice: 蓝牙未打开"); return; } if (isConnDevice(context, address)) { - // TODO: 2017/12/12 0012 设备已连接 + LogModule.i("connDevice: 设备已连接"); return; } - final BeaconConnStateHandler gattCallback = BeaconConnStateHandler.getInstance(); + final MokoConnStateHandler gattCallback = MokoConnStateHandler.getInstance(); gattCallback.setBeaconResponseCallback(this); - setConnStateCallback(connStateCallback); + setConnStateCallback(mokoConnStateCallback); gattCallback.setMessageHandler(mHandler); final BluetoothDevice device = mBluetoothAdapter.getRemoteDevice(address); if (device != null) { @@ -197,7 +207,7 @@ public void run() { * @Description 断开连接 */ public void disConnectBle() { - mHandler.sendEmptyMessage(BeaconModule.HANDLER_MESSAGE_WHAT_DISCONNECT); + mHandler.sendEmptyMessage(MokoSupport.HANDLER_MESSAGE_WHAT_DISCONNECT); } /** @@ -236,9 +246,7 @@ public void sendOrder(OrderTask... orderTasks) { } mQueue.offer(ordertask); } - if (!mQueue.isEmpty()) { - executeTask(null); - } + executeTask(null); } else { for (OrderTask ordertask : orderTasks) { if (ordertask == null) { @@ -249,7 +257,7 @@ public void sendOrder(OrderTask... orderTasks) { } } - private void executeTask(OrderTaskCallback callback) { + private void executeTask(MokoOrderTaskCallback callback) { if (callback != null && mQueue.isEmpty()) { callback.onOrderFinish(); return; @@ -263,27 +271,30 @@ private void executeTask(OrderTaskCallback callback) { LogModule.i("executeTask : orderTask is null"); return; } - final BeaconCharacteristic beaconCharacteristic = mBeaconCharacteristicMap.get(orderTask.orderType); - if (beaconCharacteristic == null) { - LogModule.i("executeTask : beaconCharacteristic is null"); + final MokoCharacteristic mokoCharacteristic = mCharacteristicMap.get(orderTask.orderType); + if (mokoCharacteristic == null) { + LogModule.i("executeTask : mokoCharacteristic is null"); return; } if (orderTask.responseType == OrderTask.RESPONSE_TYPE_READ) { - sendReadOrder(orderTask, beaconCharacteristic); + sendReadOrder(orderTask, mokoCharacteristic); } if (orderTask.responseType == OrderTask.RESPONSE_TYPE_WRITE) { - sendWriteOrder(orderTask, beaconCharacteristic); + sendWriteOrder(orderTask, mokoCharacteristic); + } + if (orderTask.responseType == OrderTask.RESPONSE_TYPE_WRITE_NO_RESPONSE) { + sendWriteNoResponseOrder(orderTask, mokoCharacteristic); } if (orderTask.responseType == OrderTask.RESPONSE_TYPE_NOTIFY) { - sendNotifyOrder(orderTask, beaconCharacteristic); + sendNotifyOrder(orderTask, mokoCharacteristic); } orderTimeoutHandler(orderTask); } // 发送可监听命令 - private void sendNotifyOrder(OrderTask orderTask, final BeaconCharacteristic beaconCharacteristic) { - LogModule.i("set notification enable : " + orderTask.orderType.getName()); - final BluetoothGattDescriptor descriptor = beaconCharacteristic.characteristic.getDescriptor(DESCRIPTOR_UUID_NOTIFY); + private void sendNotifyOrder(OrderTask orderTask, final MokoCharacteristic mokoCharacteristic) { + LogModule.i("app set device notify : " + orderTask.orderType.getName()); + final BluetoothGattDescriptor descriptor = mokoCharacteristic.characteristic.getDescriptor(DESCRIPTOR_UUID_NOTIFY); if (descriptor == null) { return; } @@ -297,66 +308,111 @@ public void run() { } // 发送可写命令 - private void sendWriteOrder(OrderTask orderTask, final BeaconCharacteristic beaconCharacteristic) { - LogModule.i("app to ibeacon write : " + orderTask.orderType.getName()); + private void sendWriteOrder(OrderTask orderTask, final MokoCharacteristic mokoCharacteristic) { + LogModule.i("app to device write : " + orderTask.orderType.getName()); + LogModule.i(Utils.bytesToHexString(orderTask.assemble())); + mokoCharacteristic.characteristic.setValue(orderTask.assemble()); + mHandler.post(new Runnable() { + @Override + public void run() { + mBluetoothGatt.writeCharacteristic(mokoCharacteristic.characteristic); + } + }); + } + + // 发送可写无应答命令 + private void sendWriteNoResponseOrder(OrderTask orderTask, final MokoCharacteristic mokoCharacteristic) { + LogModule.i("app to device write no response : " + orderTask.orderType.getName()); LogModule.i(Utils.bytesToHexString(orderTask.assemble())); - beaconCharacteristic.characteristic.setValue(orderTask.assemble()); + mokoCharacteristic.characteristic.setValue(orderTask.assemble()); + mokoCharacteristic.characteristic.setWriteType(BluetoothGattCharacteristic.WRITE_TYPE_NO_RESPONSE); mHandler.post(new Runnable() { @Override public void run() { - mBluetoothGatt.writeCharacteristic(beaconCharacteristic.characteristic); + mBluetoothGatt.writeCharacteristic(mokoCharacteristic.characteristic); } }); } // 发送可读命令 - private void sendReadOrder(OrderTask orderTask, final BeaconCharacteristic beaconCharacteristic) { - LogModule.i("app to ibeacon read : " + orderTask.orderType.getName()); + private void sendReadOrder(OrderTask orderTask, final MokoCharacteristic mokoCharacteristic) { + LogModule.i("app to device read : " + orderTask.orderType.getName()); mHandler.post(new Runnable() { @Override public void run() { - mBluetoothGatt.readCharacteristic(beaconCharacteristic.characteristic); + mBluetoothGatt.readCharacteristic(mokoCharacteristic.characteristic); + } + }); + } + + // 直接发送命令(升级专用) + public void sendDirectOrder(OrderTask orderTask) { + final MokoCharacteristic mokoCharacteristic = mCharacteristicMap.get(orderTask.orderType); + if (mokoCharacteristic == null) { + LogModule.i("executeTask : mokoCharacteristic is null"); + return; + } + LogModule.i("app to device write no response : " + orderTask.orderType.getName()); + LogModule.i(Utils.bytesToHexString(orderTask.assemble())); + mokoCharacteristic.characteristic.setValue(orderTask.assemble()); + mokoCharacteristic.characteristic.setWriteType(BluetoothGattCharacteristic.WRITE_TYPE_NO_RESPONSE); + mHandler.post(new Runnable() { + @Override + public void run() { + mBluetoothGatt.writeCharacteristic(mokoCharacteristic.characteristic); } }); } private void orderTimeoutHandler(final OrderTask orderTask) { + long delayTime = 3000; mHandler.postDelayed(new Runnable() { @Override public void run() { if (orderTask.orderStatus != OrderTask.ORDER_STATUS_SUCCESS) { LogModule.i("应答超时"); mQueue.poll(); - orderTask.orderTaskCallback.onOrderTimeout(orderTask.orderType); - executeTask(orderTask.orderTaskCallback); + orderTask.mokoOrderTaskCallback.onOrderTimeout(orderTask.orderType); + executeTask(orderTask.mokoOrderTaskCallback); } } - }, 3000); + }, delayTime); } @Override - public void onCharacteristicChanged(byte[] value) { - if (mQueue.isEmpty()) { - return; - } - OrderTask orderTask = mQueue.peek(); - if (value != null && value.length > 0) { - switch (orderTask.orderType) { - case runtimeAndChipModel: - if ("59".equals(Utils.byte2HexString(value[1]))) { - byte[] runtime = Arrays.copyOfRange(value, 2, value.length); - formatCommonOrder(orderTask, runtime); - } - if ("5b".equals(Utils.byte2HexString(value[1]).toLowerCase())) { - byte[] chipModel = Arrays.copyOfRange(value, 2, value.length); - formatCommonOrder(orderTask, chipModel); - } - break; - case changePassword: - formatCommonOrder(orderTask, value); - break; + public void onCharacteristicChanged(BluetoothGattCharacteristic characteristic, byte[] value) { + if (!mQueue.isEmpty()) { + // 非延时应答 + OrderTask orderTask = mQueue.peek(); + if (value != null && value.length > 0) { + switch (orderTask.orderType) { + case runtimeAndChipModel: + if ("59".equals(Utils.byte2HexString(value[1]))) { + byte[] runtime = Arrays.copyOfRange(value, 2, value.length); + formatCommonOrder(orderTask, runtime); + } + if ("5b".equals(Utils.byte2HexString(value[1]).toLowerCase())) { + byte[] chipModel = Arrays.copyOfRange(value, 2, value.length); + formatCommonOrder(orderTask, chipModel); + } + break; + case changePassword: + formatCommonOrder(orderTask, value); + break; + } + } + } else { + OrderType orderType = null; + // 延时应答 + if (orderType != null) { + LogModule.i(orderType.getName()); + Intent intent = new Intent(MokoConstants.ACTION_RESPONSE_NOTIFY); + intent.putExtra(MokoConstants.EXTRA_KEY_RESPONSE_ORDER_TYPE, orderType); + intent.putExtra(MokoConstants.EXTRA_KEY_RESPONSE_VALUE, value); + mContext.sendBroadcast(intent); } } + } @Override @@ -422,23 +478,17 @@ public void onDescriptorWrite() { return; } OrderTask orderTask = mQueue.peek(); - LogModule.i("app to ibeacon notify : " + orderTask.orderType.getName()); - LogModule.i(Utils.bytesToHexString(orderTask.assemble())); - final BeaconCharacteristic beaconCharacteristic = mBeaconCharacteristicMap.get(orderTask.orderType); - beaconCharacteristic.characteristic.setValue(orderTask.assemble()); - mHandler.post(new Runnable() { - @Override - public void run() { - mBluetoothGatt.writeCharacteristic(beaconCharacteristic.characteristic); - } - }); + LogModule.i("device to app notify : " + orderTask.orderType.getName()); + orderTask.orderStatus = OrderTask.ORDER_STATUS_SUCCESS; + mQueue.poll(); + executeTask(orderTask.mokoOrderTaskCallback); } private void formatCommonOrder(OrderTask task, byte[] value) { task.orderStatus = OrderTask.ORDER_STATUS_SUCCESS; mQueue.poll(); - task.orderTaskCallback.onOrderResult(task.orderType, value); - executeTask(task.orderTaskCallback); + task.mokoOrderTaskCallback.onOrderResult(task.orderType, value); + executeTask(task.mokoOrderTaskCallback); } public boolean isSyncData() { diff --git a/beaconsupport/src/main/java/com/moko/beaconsupport/callback/BeaconConnStateCallback.java b/mokosupport/src/main/java/com/moko/support/callback/MokoConnStateCallback.java similarity index 79% rename from beaconsupport/src/main/java/com/moko/beaconsupport/callback/BeaconConnStateCallback.java rename to mokosupport/src/main/java/com/moko/support/callback/MokoConnStateCallback.java index e23542c..17af061 100644 --- a/beaconsupport/src/main/java/com/moko/beaconsupport/callback/BeaconConnStateCallback.java +++ b/mokosupport/src/main/java/com/moko/support/callback/MokoConnStateCallback.java @@ -1,4 +1,4 @@ -package com.moko.beaconsupport.callback; +package com.moko.support.callback; /** * @Date 2017/5/10 @@ -6,7 +6,7 @@ * @Description */ -public interface BeaconConnStateCallback { +public interface MokoConnStateCallback { /** * @Date 2017/5/10 diff --git a/beaconsupport/src/main/java/com/moko/beaconsupport/callback/OrderTaskCallback.java b/mokosupport/src/main/java/com/moko/support/callback/MokoOrderTaskCallback.java similarity index 69% rename from beaconsupport/src/main/java/com/moko/beaconsupport/callback/OrderTaskCallback.java rename to mokosupport/src/main/java/com/moko/support/callback/MokoOrderTaskCallback.java index 84bd0bd..e8a8b91 100644 --- a/beaconsupport/src/main/java/com/moko/beaconsupport/callback/OrderTaskCallback.java +++ b/mokosupport/src/main/java/com/moko/support/callback/MokoOrderTaskCallback.java @@ -1,6 +1,6 @@ -package com.moko.beaconsupport.callback; +package com.moko.support.callback; -import com.moko.beaconsupport.entity.OrderType; +import com.moko.support.entity.OrderType; /** * @Date 2017/5/10 @@ -8,7 +8,7 @@ * @Description 返回数据回调类 * @ClassPath com.fitpolo.support.callback.OrderCallback */ -public interface OrderTaskCallback { +public interface MokoOrderTaskCallback { void onOrderResult(OrderType orderType, byte[] value); diff --git a/mokosupport/src/main/java/com/moko/support/callback/MokoResponseCallback.java b/mokosupport/src/main/java/com/moko/support/callback/MokoResponseCallback.java new file mode 100644 index 0000000..b74e57d --- /dev/null +++ b/mokosupport/src/main/java/com/moko/support/callback/MokoResponseCallback.java @@ -0,0 +1,20 @@ +package com.moko.support.callback; + +import android.bluetooth.BluetoothGattCharacteristic; + +/** + * @Date 2017/12/12 0012 + * @Author wenzheng.liu + * @Description + * @ClassPath com.moko.beaconsupport.callback.MokoResponseCallback + */ +public interface MokoResponseCallback { + + void onCharacteristicChanged(BluetoothGattCharacteristic characteristic, byte[] value); + + void onCharacteristicWrite(byte[] value); + + void onCharacteristicRead(byte[] value); + + void onDescriptorWrite(); +} diff --git a/mokosupport/src/main/java/com/moko/support/callback/MokoScanDeviceCallback.java b/mokosupport/src/main/java/com/moko/support/callback/MokoScanDeviceCallback.java new file mode 100644 index 0000000..5000e4a --- /dev/null +++ b/mokosupport/src/main/java/com/moko/support/callback/MokoScanDeviceCallback.java @@ -0,0 +1,17 @@ +package com.moko.support.callback; + +import com.moko.support.entity.DeviceInfo; + +/** + * @Date 2017/12/8 0008 + * @Author wenzheng.liu + * @Description + * @ClassPath com.moko.support.callback.MokoScanDeviceCallback + */ +public interface MokoScanDeviceCallback { + void onStartScan(); + + void onScanDevice(DeviceInfo device); + + void onStopScan(); +} diff --git a/mokosupport/src/main/java/com/moko/support/entity/DeviceInfo.java b/mokosupport/src/main/java/com/moko/support/entity/DeviceInfo.java new file mode 100644 index 0000000..2559edb --- /dev/null +++ b/mokosupport/src/main/java/com/moko/support/entity/DeviceInfo.java @@ -0,0 +1,33 @@ +package com.moko.support.entity; + +import java.io.Serializable; + +/** + * @Date 2017/12/28 + * @Author wenzheng.liu + * @Description + * @ClassPath com.moko.support.entity.DeviceInfo + */ +public class DeviceInfo implements Serializable { + public String name; + public int rssi; + public String mac; + public String scanRecord; + public String saveDate; + public String productDate; + public String version; + + + @Override + public String toString() { + return "DeviceInfo{" + + "name='" + name + '\'' + + ", rssi=" + rssi + + ", mac='" + mac + '\'' + + ", scanRecord='" + scanRecord + '\'' + + ", saveDate='" + saveDate + '\'' + + ", productDate='" + productDate + '\'' + + ", version='" + version + '\'' + + '}'; + } +} diff --git a/beaconsupport/src/main/java/com/moko/beaconsupport/entity/BeaconCharacteristic.java b/mokosupport/src/main/java/com/moko/support/entity/MokoCharacteristic.java similarity index 54% rename from beaconsupport/src/main/java/com/moko/beaconsupport/entity/BeaconCharacteristic.java rename to mokosupport/src/main/java/com/moko/support/entity/MokoCharacteristic.java index 1e9e86b..9e9f18d 100644 --- a/beaconsupport/src/main/java/com/moko/beaconsupport/entity/BeaconCharacteristic.java +++ b/mokosupport/src/main/java/com/moko/support/entity/MokoCharacteristic.java @@ -1,8 +1,8 @@ -package com.moko.beaconsupport.entity; +package com.moko.support.entity; import android.bluetooth.BluetoothGattCharacteristic; -import com.moko.beaconsupport.utils.Utils; +import com.moko.support.utils.Utils; import java.io.Serializable; @@ -10,20 +10,20 @@ * @Date 2017/12/14 0014 * @Author wenzheng.liu * @Description - * @ClassPath com.moko.beaconsupport.entity.BeaconCharacteristic + * @ClassPath com.moko.support.entity.MokoCharacteristic */ -public class BeaconCharacteristic implements Serializable { +public class MokoCharacteristic implements Serializable { public BluetoothGattCharacteristic characteristic; public String charPropertie; public OrderType orderType; - public BeaconCharacteristic(BluetoothGattCharacteristic characteristic, String charPropertie, OrderType orderType) { + public MokoCharacteristic(BluetoothGattCharacteristic characteristic, String charPropertie, OrderType orderType) { this.characteristic = characteristic; this.charPropertie = charPropertie; this.orderType = orderType; } - public BeaconCharacteristic(BluetoothGattCharacteristic characteristic, OrderType orderType) { + public MokoCharacteristic(BluetoothGattCharacteristic characteristic, OrderType orderType) { this(characteristic, Utils.getCharPropertie(characteristic.getProperties()), orderType); } } diff --git a/beaconsupport/src/main/java/com/moko/beaconsupport/entity/OrderType.java b/mokosupport/src/main/java/com/moko/support/entity/OrderType.java similarity index 96% rename from beaconsupport/src/main/java/com/moko/beaconsupport/entity/OrderType.java rename to mokosupport/src/main/java/com/moko/support/entity/OrderType.java index 2ae8745..9f6f271 100644 --- a/beaconsupport/src/main/java/com/moko/beaconsupport/entity/OrderType.java +++ b/mokosupport/src/main/java/com/moko/support/entity/OrderType.java @@ -1,4 +1,4 @@ -package com.moko.beaconsupport.entity; +package com.moko.support.entity; import java.io.Serializable; @@ -6,7 +6,7 @@ * @Date 2017/12/14 0014 * @Author wenzheng.liu * @Description - * @ClassPath com.moko.beaconsupport.entity.OrderType + * @ClassPath com.moko.support.entity.OrderType */ public enum OrderType implements Serializable { // 电池信息 @@ -54,6 +54,7 @@ public enum OrderType implements Serializable { // 超时时间 overtime("overtime", "0000ff10-0000-1000-8000-00805f9b34fb"); + private String uuid; private String name; diff --git a/beaconsupport/src/main/java/com/moko/beaconsupport/handler/BaseHandler.java b/mokosupport/src/main/java/com/moko/support/handler/BaseMessageHandler.java similarity index 78% rename from beaconsupport/src/main/java/com/moko/beaconsupport/handler/BaseHandler.java rename to mokosupport/src/main/java/com/moko/support/handler/BaseMessageHandler.java index 58657f6..70f36d2 100644 --- a/beaconsupport/src/main/java/com/moko/beaconsupport/handler/BaseHandler.java +++ b/mokosupport/src/main/java/com/moko/support/handler/BaseMessageHandler.java @@ -1,4 +1,4 @@ -package com.moko.beaconsupport.handler; +package com.moko.support.handler; import android.os.Handler; import android.os.Looper; @@ -6,10 +6,10 @@ import java.lang.ref.WeakReference; -public abstract class BaseHandler extends Handler { +public abstract class BaseMessageHandler extends Handler { private WeakReference reference; - public BaseHandler(T t) { + public BaseMessageHandler(T t) { super(Looper.getMainLooper()); reference = new WeakReference<>(t); } diff --git a/beaconsupport/src/main/java/com/moko/beaconsupport/handler/CharacteristicHandler.java b/mokosupport/src/main/java/com/moko/support/handler/MokoCharacteristicHandler.java similarity index 63% rename from beaconsupport/src/main/java/com/moko/beaconsupport/handler/CharacteristicHandler.java rename to mokosupport/src/main/java/com/moko/support/handler/MokoCharacteristicHandler.java index d4f2b64..640b14b 100644 --- a/beaconsupport/src/main/java/com/moko/beaconsupport/handler/CharacteristicHandler.java +++ b/mokosupport/src/main/java/com/moko/support/handler/MokoCharacteristicHandler.java @@ -1,12 +1,12 @@ -package com.moko.beaconsupport.handler; +package com.moko.support.handler; import android.bluetooth.BluetoothGatt; import android.bluetooth.BluetoothGattCharacteristic; import android.bluetooth.BluetoothGattService; import android.text.TextUtils; -import com.moko.beaconsupport.entity.BeaconCharacteristic; -import com.moko.beaconsupport.entity.OrderType; +import com.moko.support.entity.MokoCharacteristic; +import com.moko.support.entity.OrderType; import java.util.HashMap; import java.util.List; @@ -15,35 +15,35 @@ * @Date 2017/12/13 0013 * @Author wenzheng.liu * @Description - * @ClassPath com.moko.beaconsupport.handler.CharacteristicHandler + * @ClassPath com.moko.support.handler.MokoCharacteristicHandler */ -public class CharacteristicHandler { - private static CharacteristicHandler INSTANCE; +public class MokoCharacteristicHandler { + private static MokoCharacteristicHandler INSTANCE; public static final String SERVICE_UUID_HEADER_BATTERY = "0000180f"; public static final String SERVICE_UUID_HEADER_SYSTEM = "0000180a"; public static final String SERVICE_UUID_HEADER_PARAMS = "0000ff00"; - public HashMap beaconCharacteristicMap; + public HashMap mokoCharacteristicMap; - private CharacteristicHandler() { + private MokoCharacteristicHandler() { //no instance - beaconCharacteristicMap = new HashMap<>(); + mokoCharacteristicMap = new HashMap<>(); } - public static CharacteristicHandler getInstance() { + public static MokoCharacteristicHandler getInstance() { if (INSTANCE == null) { - synchronized (CharacteristicHandler.class) { + synchronized (MokoCharacteristicHandler.class) { if (INSTANCE == null) { - INSTANCE = new CharacteristicHandler(); + INSTANCE = new MokoCharacteristicHandler(); } } } return INSTANCE; } - public HashMap getCharacteristics(BluetoothGatt gatt) { - if (beaconCharacteristicMap != null && !beaconCharacteristicMap.isEmpty()) { - beaconCharacteristicMap.clear(); + public HashMap getCharacteristics(BluetoothGatt gatt) { + if (mokoCharacteristicMap != null && !mokoCharacteristicMap.isEmpty()) { + mokoCharacteristicMap.clear(); } List services = gatt.getServices(); for (BluetoothGattService service : services) { @@ -59,7 +59,7 @@ public HashMap getCharacteristics(BluetoothGatt continue; } if (characteristicUuid.equals(OrderType.battery.getUuid())) { - beaconCharacteristicMap.put(OrderType.battery, new BeaconCharacteristic(characteristic, OrderType.battery)); + mokoCharacteristicMap.put(OrderType.battery, new MokoCharacteristic(characteristic, OrderType.battery)); continue; } } @@ -72,37 +72,37 @@ public HashMap getCharacteristics(BluetoothGatt } // 厂商名称 if (characteristicUuid.equals(OrderType.firmname.getUuid())) { - beaconCharacteristicMap.put(OrderType.firmname, new BeaconCharacteristic(characteristic, OrderType.firmname)); + mokoCharacteristicMap.put(OrderType.firmname, new MokoCharacteristic(characteristic, OrderType.firmname)); continue; } // 设备名称 if (characteristicUuid.equals(OrderType.devicename.getUuid())) { - beaconCharacteristicMap.put(OrderType.devicename, new BeaconCharacteristic(characteristic, OrderType.devicename)); + mokoCharacteristicMap.put(OrderType.devicename, new MokoCharacteristic(characteristic, OrderType.devicename)); continue; } // 出厂日期 if (characteristicUuid.equals(OrderType.iBeaconDate.getUuid())) { - beaconCharacteristicMap.put(OrderType.iBeaconDate, new BeaconCharacteristic(characteristic, OrderType.iBeaconDate)); + mokoCharacteristicMap.put(OrderType.iBeaconDate, new MokoCharacteristic(characteristic, OrderType.iBeaconDate)); continue; } // 硬件版本号 if (characteristicUuid.equals(OrderType.hardwareVersion.getUuid())) { - beaconCharacteristicMap.put(OrderType.hardwareVersion, new BeaconCharacteristic(characteristic, OrderType.hardwareVersion)); + mokoCharacteristicMap.put(OrderType.hardwareVersion, new MokoCharacteristic(characteristic, OrderType.hardwareVersion)); continue; } // 固件版本号 if (characteristicUuid.equals(OrderType.firmwareVersion.getUuid())) { - beaconCharacteristicMap.put(OrderType.firmwareVersion, new BeaconCharacteristic(characteristic, OrderType.firmwareVersion)); + mokoCharacteristicMap.put(OrderType.firmwareVersion, new MokoCharacteristic(characteristic, OrderType.firmwareVersion)); continue; } // 系统标示 if (characteristicUuid.equals(OrderType.systemMark.getUuid())) { - beaconCharacteristicMap.put(OrderType.systemMark, new BeaconCharacteristic(characteristic, OrderType.systemMark)); + mokoCharacteristicMap.put(OrderType.systemMark, new MokoCharacteristic(characteristic, OrderType.systemMark)); continue; } // IEEE标准信息 if (characteristicUuid.equals(OrderType.IEEEInfo.getUuid())) { - beaconCharacteristicMap.put(OrderType.IEEEInfo, new BeaconCharacteristic(characteristic, OrderType.IEEEInfo)); + mokoCharacteristicMap.put(OrderType.IEEEInfo, new MokoCharacteristic(characteristic, OrderType.IEEEInfo)); continue; } } @@ -116,80 +116,80 @@ public HashMap getCharacteristics(BluetoothGatt // 运行时间 if (characteristicUuid.equals(OrderType.runtimeAndChipModel.getUuid())) { gatt.setCharacteristicNotification(characteristic, true); - beaconCharacteristicMap.put(OrderType.runtimeAndChipModel, new BeaconCharacteristic(characteristic, OrderType.runtimeAndChipModel)); + mokoCharacteristicMap.put(OrderType.runtimeAndChipModel, new MokoCharacteristic(characteristic, OrderType.runtimeAndChipModel)); continue; } // uuid if (characteristicUuid.equals(OrderType.iBeaconUuid.getUuid())) { - beaconCharacteristicMap.put(OrderType.iBeaconUuid, new BeaconCharacteristic(characteristic, OrderType.iBeaconUuid)); + mokoCharacteristicMap.put(OrderType.iBeaconUuid, new MokoCharacteristic(characteristic, OrderType.iBeaconUuid)); continue; } // major if (characteristicUuid.equals(OrderType.major.getUuid())) { - beaconCharacteristicMap.put(OrderType.major, new BeaconCharacteristic(characteristic, OrderType.major)); + mokoCharacteristicMap.put(OrderType.major, new MokoCharacteristic(characteristic, OrderType.major)); continue; } // minor if (characteristicUuid.equals(OrderType.minor.getUuid())) { - beaconCharacteristicMap.put(OrderType.minor, new BeaconCharacteristic(characteristic, OrderType.minor)); + mokoCharacteristicMap.put(OrderType.minor, new MokoCharacteristic(characteristic, OrderType.minor)); continue; } // measure_power if (characteristicUuid.equals(OrderType.measurePower.getUuid())) { - beaconCharacteristicMap.put(OrderType.measurePower, new BeaconCharacteristic(characteristic, OrderType.measurePower)); + mokoCharacteristicMap.put(OrderType.measurePower, new MokoCharacteristic(characteristic, OrderType.measurePower)); continue; } // transmission if (characteristicUuid.equals(OrderType.transmission.getUuid())) { - beaconCharacteristicMap.put(OrderType.transmission, new BeaconCharacteristic(characteristic, OrderType.transmission)); + mokoCharacteristicMap.put(OrderType.transmission, new MokoCharacteristic(characteristic, OrderType.transmission)); continue; } // change_password if (characteristicUuid.equals(OrderType.changePassword.getUuid())) { gatt.setCharacteristicNotification(characteristic, true); - beaconCharacteristicMap.put(OrderType.changePassword, new BeaconCharacteristic(characteristic, OrderType.changePassword)); + mokoCharacteristicMap.put(OrderType.changePassword, new MokoCharacteristic(characteristic, OrderType.changePassword)); continue; } // broadcasting_interval if (characteristicUuid.equals(OrderType.broadcastingInterval.getUuid())) { - beaconCharacteristicMap.put(OrderType.broadcastingInterval, new BeaconCharacteristic(characteristic, OrderType.broadcastingInterval)); + mokoCharacteristicMap.put(OrderType.broadcastingInterval, new MokoCharacteristic(characteristic, OrderType.broadcastingInterval)); continue; } // serial_id if (characteristicUuid.equals(OrderType.serialID.getUuid())) { - beaconCharacteristicMap.put(OrderType.serialID, new BeaconCharacteristic(characteristic, OrderType.serialID)); + mokoCharacteristicMap.put(OrderType.serialID, new MokoCharacteristic(characteristic, OrderType.serialID)); continue; } // iBeacon_name if (characteristicUuid.equals(OrderType.iBeaconName.getUuid())) { - beaconCharacteristicMap.put(OrderType.iBeaconName, new BeaconCharacteristic(characteristic, OrderType.iBeaconName)); + mokoCharacteristicMap.put(OrderType.iBeaconName, new MokoCharacteristic(characteristic, OrderType.iBeaconName)); continue; } // connection_mode if (characteristicUuid.equals(OrderType.connectionMode.getUuid())) { - beaconCharacteristicMap.put(OrderType.connectionMode, new BeaconCharacteristic(characteristic, OrderType.connectionMode)); + mokoCharacteristicMap.put(OrderType.connectionMode, new MokoCharacteristic(characteristic, OrderType.connectionMode)); continue; } // soft_reboot if (characteristicUuid.equals(OrderType.softReboot.getUuid())) { - beaconCharacteristicMap.put(OrderType.softReboot, new BeaconCharacteristic(characteristic, OrderType.softReboot)); + mokoCharacteristicMap.put(OrderType.softReboot, new MokoCharacteristic(characteristic, OrderType.softReboot)); continue; } // iBeacon_mac if (characteristicUuid.equals(OrderType.iBeaconMac.getUuid())) { - beaconCharacteristicMap.put(OrderType.iBeaconMac, new BeaconCharacteristic(characteristic, OrderType.iBeaconMac)); + mokoCharacteristicMap.put(OrderType.iBeaconMac, new MokoCharacteristic(characteristic, OrderType.iBeaconMac)); continue; } // overtime if (characteristicUuid.equals(OrderType.overtime.getUuid())) { - beaconCharacteristicMap.put(OrderType.overtime, new BeaconCharacteristic(characteristic, OrderType.overtime)); + mokoCharacteristicMap.put(OrderType.overtime, new MokoCharacteristic(characteristic, OrderType.overtime)); continue; } } } // LogModule.i("service uuid:" + service.getUuid().toString()); -// List characteristics = service.getCharacteristics(); -// for (BluetoothGattCharacteristic characteristic : characteristics) { +// List characteristicList = service.getCharacteristics(); +// for (BluetoothGattCharacteristic characteristic : characteristicList) { // LogModule.i("characteristic uuid:" + characteristic.getUuid().toString()); // LogModule.i("characteristic properties:" + Utils.getCharPropertie(characteristic.getProperties())); // List descriptors = characteristic.getDescriptors(); @@ -199,6 +199,6 @@ public HashMap getCharacteristics(BluetoothGatt // } // } } - return beaconCharacteristicMap; + return mokoCharacteristicMap; } } diff --git a/beaconsupport/src/main/java/com/moko/beaconsupport/handler/BeaconConnStateHandler.java b/mokosupport/src/main/java/com/moko/support/handler/MokoConnStateHandler.java similarity index 54% rename from beaconsupport/src/main/java/com/moko/beaconsupport/handler/BeaconConnStateHandler.java rename to mokosupport/src/main/java/com/moko/support/handler/MokoConnStateHandler.java index 1fbf668..22c85d5 100644 --- a/beaconsupport/src/main/java/com/moko/beaconsupport/handler/BeaconConnStateHandler.java +++ b/mokosupport/src/main/java/com/moko/support/handler/MokoConnStateHandler.java @@ -1,4 +1,4 @@ -package com.moko.beaconsupport.handler; +package com.moko.support.handler; import android.bluetooth.BluetoothGatt; import android.bluetooth.BluetoothGattCallback; @@ -6,10 +6,10 @@ import android.bluetooth.BluetoothGattDescriptor; import android.bluetooth.BluetoothProfile; -import com.moko.beaconsupport.beacon.BeaconModule; -import com.moko.beaconsupport.callback.BeaconResponseCallback; -import com.moko.beaconsupport.log.LogModule; -import com.moko.beaconsupport.utils.Utils; +import com.moko.support.MokoSupport; +import com.moko.support.callback.MokoResponseCallback; +import com.moko.support.log.LogModule; +import com.moko.support.utils.Utils; /** * @Date 2017/5/10 @@ -17,21 +17,21 @@ * @Description 自定义蓝牙连接回调 * @ClassPath com.fitpolo.support.bluetooth.CustomGattCallback */ -public class BeaconConnStateHandler extends BluetoothGattCallback { +public class MokoConnStateHandler extends BluetoothGattCallback { - private static volatile BeaconConnStateHandler INSTANCE; + private static volatile MokoConnStateHandler INSTANCE; - private BeaconResponseCallback mBeaconResponseCallback; - private BeaconModule.ServiceHandler mHandler; + private MokoResponseCallback mMokoResponseCallback; + private MokoSupport.ServiceMessageHandler mHandler; - public BeaconConnStateHandler() { + public MokoConnStateHandler() { } - public static BeaconConnStateHandler getInstance() { + public static MokoConnStateHandler getInstance() { if (INSTANCE == null) { - synchronized (BeaconConnStateHandler.class) { + synchronized (MokoConnStateHandler.class) { if (INSTANCE == null) { - INSTANCE = new BeaconConnStateHandler(); + INSTANCE = new MokoConnStateHandler(); } } } @@ -46,14 +46,14 @@ public void onConnectionStateChange(BluetoothGatt gatt, int status, int newState LogModule.e("newState : " + newState); if (newState == BluetoothProfile.STATE_CONNECTED) { if (status == BluetoothGatt.GATT_SUCCESS) { - mHandler.sendEmptyMessage(BeaconModule.HANDLER_MESSAGE_WHAT_CONNECTED); + mHandler.sendEmptyMessage(MokoSupport.HANDLER_MESSAGE_WHAT_CONNECTED); return; } } else if (newState == BluetoothProfile.STATE_DISCONNECTED) { - mHandler.sendEmptyMessage(BeaconModule.HANDLER_MESSAGE_WHAT_DISCONNECTED); + mHandler.sendEmptyMessage(MokoSupport.HANDLER_MESSAGE_WHAT_DISCONNECTED); return; } - mHandler.sendEmptyMessage(BeaconModule.HANDLER_MESSAGE_WHAT_DISCONNECTED); + mHandler.sendEmptyMessage(MokoSupport.HANDLER_MESSAGE_WHAT_DISCONNECTED); } @Override @@ -62,9 +62,9 @@ public void onServicesDiscovered(BluetoothGatt gatt, int status) { LogModule.e("onServicesDiscovered"); LogModule.e("status : " + status); if (status == BluetoothGatt.GATT_SUCCESS) { - mHandler.sendEmptyMessage(BeaconModule.HANDLER_MESSAGE_WHAT_SERVICES_DISCOVERED); + mHandler.sendEmptyMessage(MokoSupport.HANDLER_MESSAGE_WHAT_SERVICES_DISCOVERED); } else { - mHandler.sendEmptyMessage(BeaconModule.HANDLER_MESSAGE_WHAT_DISCONNECTED); + mHandler.sendEmptyMessage(MokoSupport.HANDLER_MESSAGE_WHAT_DISCONNECTED); } } @@ -72,35 +72,35 @@ public void onServicesDiscovered(BluetoothGatt gatt, int status) { public void onCharacteristicChanged(BluetoothGatt gatt, BluetoothGattCharacteristic characteristic) { super.onCharacteristicChanged(gatt, characteristic); LogModule.e("onCharacteristicChanged"); - LogModule.e("ibeacon to app : " + Utils.bytesToHexString(characteristic.getValue())); - mBeaconResponseCallback.onCharacteristicChanged(characteristic.getValue()); + LogModule.e("device to app : " + Utils.bytesToHexString(characteristic.getValue())); + mMokoResponseCallback.onCharacteristicChanged(characteristic, characteristic.getValue()); } @Override public void onCharacteristicWrite(BluetoothGatt gatt, BluetoothGattCharacteristic characteristic, int status) { super.onCharacteristicWrite(gatt, characteristic, status); - LogModule.e("ibeacon to app : " + Utils.bytesToHexString(characteristic.getValue())); - mBeaconResponseCallback.onCharacteristicWrite(characteristic.getValue()); + LogModule.e("device to app : " + Utils.bytesToHexString(characteristic.getValue())); + mMokoResponseCallback.onCharacteristicWrite(characteristic.getValue()); } @Override public void onCharacteristicRead(BluetoothGatt gatt, BluetoothGattCharacteristic characteristic, int status) { super.onCharacteristicRead(gatt, characteristic, status); - LogModule.e("ibeacon to app : " + Utils.bytesToHexString(characteristic.getValue())); - mBeaconResponseCallback.onCharacteristicRead(characteristic.getValue()); + LogModule.e("device to app : " + Utils.bytesToHexString(characteristic.getValue())); + mMokoResponseCallback.onCharacteristicRead(characteristic.getValue()); } @Override public void onDescriptorWrite(BluetoothGatt gatt, BluetoothGattDescriptor descriptor, int status) { super.onDescriptorWrite(gatt, descriptor, status); - mBeaconResponseCallback.onDescriptorWrite(); + mMokoResponseCallback.onDescriptorWrite(); } - public void setBeaconResponseCallback(BeaconResponseCallback mBeaconResponseCallback) { - this.mBeaconResponseCallback = mBeaconResponseCallback; + public void setBeaconResponseCallback(MokoResponseCallback mMokoResponseCallback) { + this.mMokoResponseCallback = mMokoResponseCallback; } - public void setMessageHandler(BeaconModule.ServiceHandler messageHandler) { + public void setMessageHandler(MokoSupport.ServiceMessageHandler messageHandler) { this.mHandler = messageHandler; } } diff --git a/mokosupport/src/main/java/com/moko/support/handler/MokoLeScanHandler.java b/mokosupport/src/main/java/com/moko/support/handler/MokoLeScanHandler.java new file mode 100644 index 0000000..657891f --- /dev/null +++ b/mokosupport/src/main/java/com/moko/support/handler/MokoLeScanHandler.java @@ -0,0 +1,44 @@ +package com.moko.support.handler; + +import android.bluetooth.BluetoothDevice; +import android.text.TextUtils; + +import com.moko.support.callback.MokoScanDeviceCallback; +import com.moko.support.entity.DeviceInfo; +import com.moko.support.utils.Utils; + +import no.nordicsemi.android.support.v18.scanner.ScanCallback; +import no.nordicsemi.android.support.v18.scanner.ScanResult; + +/** + * @Date 2017/12/12 0012 + * @Author wenzheng.liu + * @Description 搜索设备回调类 + * @ClassPath com.moko.support.handler.MokoLeScanHandler + */ +public class MokoLeScanHandler extends ScanCallback { + private MokoScanDeviceCallback callback; + + public MokoLeScanHandler(MokoScanDeviceCallback callback) { + this.callback = callback; + } + + @Override + public void onScanResult(int callbackType, ScanResult result) { + if (result != null) { + BluetoothDevice device = result.getDevice(); + byte[] scanRecord = result.getScanRecord().getBytes(); + int rssi = result.getRssi(); + if (TextUtils.isEmpty(device.getName()) || scanRecord.length == 0 || rssi == 127) { + return; + } + DeviceInfo deviceInfo = new DeviceInfo(); + deviceInfo.name = device.getName(); + deviceInfo.rssi = rssi; + deviceInfo.mac = device.getAddress(); + String scanRecordStr = Utils.bytesToHexString(scanRecord); + deviceInfo.scanRecord = scanRecordStr; + callback.onScanDevice(deviceInfo); + } + } +} \ No newline at end of file diff --git a/beaconsupport/src/main/java/com/moko/beaconsupport/log/ClearLogBackStrategy.java b/mokosupport/src/main/java/com/moko/support/log/ClearLogBackStrategy.java similarity index 94% rename from beaconsupport/src/main/java/com/moko/beaconsupport/log/ClearLogBackStrategy.java rename to mokosupport/src/main/java/com/moko/support/log/ClearLogBackStrategy.java index 41f3b1e..12fdcea 100644 --- a/beaconsupport/src/main/java/com/moko/beaconsupport/log/ClearLogBackStrategy.java +++ b/mokosupport/src/main/java/com/moko/support/log/ClearLogBackStrategy.java @@ -1,4 +1,5 @@ -package com.moko.beaconsupport.log; +package com.moko.support.log; + import com.elvishew.xlog.printer.file.backup.BackupStrategy; @@ -9,7 +10,7 @@ * @Date 2017/12/7 0007 * @Author wenzheng.liu * @Description - * @ClassPath com.moko.beaconsupport.log.ClearLogBackStrategy + * @ClassPath com.moko.support.log.ClearLogBackStrategy */ public class ClearLogBackStrategy implements BackupStrategy { /** diff --git a/beaconsupport/src/main/java/com/moko/beaconsupport/log/LogModule.java b/mokosupport/src/main/java/com/moko/support/log/LogModule.java similarity index 90% rename from beaconsupport/src/main/java/com/moko/beaconsupport/log/LogModule.java rename to mokosupport/src/main/java/com/moko/support/log/LogModule.java index e1a4180..0b2afa1 100644 --- a/beaconsupport/src/main/java/com/moko/beaconsupport/log/LogModule.java +++ b/mokosupport/src/main/java/com/moko/support/log/LogModule.java @@ -1,4 +1,4 @@ -package com.moko.beaconsupport.log; +package com.moko.support.log; import android.content.Context; import android.os.Environment; @@ -18,11 +18,11 @@ * @Date 2017/12/7 0007 * @Author wenzheng.liu * @Description - * @ClassPath com.moko.beaconsupport.log.LogModule + * @ClassPath com.moko.support.log.LogModule */ public class LogModule { - private static final String TAG = "mokoBeacon"; - private static final String LOG_FOLDER = "mokoBeacon"; + private static final String TAG = "mokoLog"; + private static final String LOG_FOLDER = "mokoSupport"; private static String PATH_LOGCAT; public static void init(Context context) { diff --git a/beaconsupport/src/main/java/com/moko/beaconsupport/task/BatteryTask.java b/mokosupport/src/main/java/com/moko/support/task/BatteryTask.java similarity index 51% rename from beaconsupport/src/main/java/com/moko/beaconsupport/task/BatteryTask.java rename to mokosupport/src/main/java/com/moko/support/task/BatteryTask.java index 20f0819..9dfffb5 100644 --- a/beaconsupport/src/main/java/com/moko/beaconsupport/task/BatteryTask.java +++ b/mokosupport/src/main/java/com/moko/support/task/BatteryTask.java @@ -1,19 +1,19 @@ -package com.moko.beaconsupport.task; +package com.moko.support.task; -import com.moko.beaconsupport.callback.OrderTaskCallback; -import com.moko.beaconsupport.entity.OrderType; +import com.moko.support.callback.MokoOrderTaskCallback; +import com.moko.support.entity.OrderType; /** * @Date 2017/12/14 0014 * @Author wenzheng.liu * @Description - * @ClassPath com.moko.beaconsupport.task.BatteryTask + * @ClassPath com.moko.support.task.BatteryTask */ public class BatteryTask extends OrderTask { public byte[] data; - public BatteryTask(OrderTaskCallback callback, int sendDataType) { + public BatteryTask(MokoOrderTaskCallback callback, int sendDataType) { super(OrderType.battery, callback, sendDataType); } diff --git a/beaconsupport/src/main/java/com/moko/beaconsupport/task/BroadcastingIntervalTask.java b/mokosupport/src/main/java/com/moko/support/task/BroadcastingIntervalTask.java similarity index 56% rename from beaconsupport/src/main/java/com/moko/beaconsupport/task/BroadcastingIntervalTask.java rename to mokosupport/src/main/java/com/moko/support/task/BroadcastingIntervalTask.java index c1359cd..f9c7053 100644 --- a/beaconsupport/src/main/java/com/moko/beaconsupport/task/BroadcastingIntervalTask.java +++ b/mokosupport/src/main/java/com/moko/support/task/BroadcastingIntervalTask.java @@ -1,20 +1,20 @@ -package com.moko.beaconsupport.task; +package com.moko.support.task; -import com.moko.beaconsupport.callback.OrderTaskCallback; -import com.moko.beaconsupport.entity.OrderType; -import com.moko.beaconsupport.utils.Utils; +import com.moko.support.callback.MokoOrderTaskCallback; +import com.moko.support.entity.OrderType; +import com.moko.support.utils.Utils; /** * @Date 2017/12/14 0014 * @Author wenzheng.liu * @Description - * @ClassPath com.moko.beaconsupport.task.BroadcastingIntervalTask + * @ClassPath com.moko.support.task.BroadcastingIntervalTask */ public class BroadcastingIntervalTask extends OrderTask { public byte[] data; - public BroadcastingIntervalTask(OrderTaskCallback callback, int sendDataType) { + public BroadcastingIntervalTask(MokoOrderTaskCallback callback, int sendDataType) { super(OrderType.broadcastingInterval, callback, sendDataType); } diff --git a/beaconsupport/src/main/java/com/moko/beaconsupport/task/ChangePasswordTask.java b/mokosupport/src/main/java/com/moko/support/task/ChangePasswordTask.java similarity index 58% rename from beaconsupport/src/main/java/com/moko/beaconsupport/task/ChangePasswordTask.java rename to mokosupport/src/main/java/com/moko/support/task/ChangePasswordTask.java index 55bf073..bbd3cf1 100644 --- a/beaconsupport/src/main/java/com/moko/beaconsupport/task/ChangePasswordTask.java +++ b/mokosupport/src/main/java/com/moko/support/task/ChangePasswordTask.java @@ -1,20 +1,20 @@ -package com.moko.beaconsupport.task; +package com.moko.support.task; -import com.moko.beaconsupport.callback.OrderTaskCallback; -import com.moko.beaconsupport.entity.OrderType; -import com.moko.beaconsupport.utils.Utils; +import com.moko.support.callback.MokoOrderTaskCallback; +import com.moko.support.entity.OrderType; +import com.moko.support.utils.Utils; /** * @Date 2017/12/14 0014 * @Author wenzheng.liu * @Description - * @ClassPath com.moko.beaconsupport.task.ChangePasswordTask + * @ClassPath com.moko.support.task.ChangePasswordTask */ public class ChangePasswordTask extends OrderTask { public byte[] data; - public ChangePasswordTask(OrderTaskCallback callback, int sendDataType) { + public ChangePasswordTask(MokoOrderTaskCallback callback, int sendDataType) { super(OrderType.changePassword, callback, sendDataType); } diff --git a/beaconsupport/src/main/java/com/moko/beaconsupport/task/ChipModelTask.java b/mokosupport/src/main/java/com/moko/support/task/ChipModelTask.java similarity index 66% rename from beaconsupport/src/main/java/com/moko/beaconsupport/task/ChipModelTask.java rename to mokosupport/src/main/java/com/moko/support/task/ChipModelTask.java index 4255a76..3d27be4 100644 --- a/beaconsupport/src/main/java/com/moko/beaconsupport/task/ChipModelTask.java +++ b/mokosupport/src/main/java/com/moko/support/task/ChipModelTask.java @@ -1,19 +1,20 @@ -package com.moko.beaconsupport.task; +package com.moko.support.task; -import com.moko.beaconsupport.callback.OrderTaskCallback; -import com.moko.beaconsupport.entity.OrderType; + +import com.moko.support.callback.MokoOrderTaskCallback; +import com.moko.support.entity.OrderType; /** * @Date 2017/12/14 0014 * @Author wenzheng.liu * @Description - * @ClassPath com.moko.beaconsupport.task.ChipModelTask + * @ClassPath com.moko.support.task.ChipModelTask */ public class ChipModelTask extends OrderTask { public byte[] data; - public ChipModelTask(OrderTaskCallback callback, int sendDataType) { + public ChipModelTask(MokoOrderTaskCallback callback, int sendDataType) { super(OrderType.runtimeAndChipModel, callback, sendDataType); setData(); } diff --git a/beaconsupport/src/main/java/com/moko/beaconsupport/task/ConnectionModeTask.java b/mokosupport/src/main/java/com/moko/support/task/ConnectionModeTask.java similarity index 55% rename from beaconsupport/src/main/java/com/moko/beaconsupport/task/ConnectionModeTask.java rename to mokosupport/src/main/java/com/moko/support/task/ConnectionModeTask.java index 81a8650..570b3f6 100644 --- a/beaconsupport/src/main/java/com/moko/beaconsupport/task/ConnectionModeTask.java +++ b/mokosupport/src/main/java/com/moko/support/task/ConnectionModeTask.java @@ -1,20 +1,21 @@ -package com.moko.beaconsupport.task; +package com.moko.support.task; -import com.moko.beaconsupport.callback.OrderTaskCallback; -import com.moko.beaconsupport.entity.OrderType; -import com.moko.beaconsupport.utils.Utils; + +import com.moko.support.callback.MokoOrderTaskCallback; +import com.moko.support.entity.OrderType; +import com.moko.support.utils.Utils; /** * @Date 2017/12/14 0014 * @Author wenzheng.liu * @Description - * @ClassPath com.moko.beaconsupport.task.ConnectionModeTask + * @ClassPath com.moko.support.task.ConnectionModeTask */ public class ConnectionModeTask extends OrderTask { public byte[] data; - public ConnectionModeTask(OrderTaskCallback callback, int sendDataType) { + public ConnectionModeTask(MokoOrderTaskCallback callback, int sendDataType) { super(OrderType.connectionMode, callback, sendDataType); } diff --git a/beaconsupport/src/main/java/com/moko/beaconsupport/task/DevicenameTask.java b/mokosupport/src/main/java/com/moko/support/task/DevicenameTask.java similarity index 51% rename from beaconsupport/src/main/java/com/moko/beaconsupport/task/DevicenameTask.java rename to mokosupport/src/main/java/com/moko/support/task/DevicenameTask.java index 5772141..381efca 100644 --- a/beaconsupport/src/main/java/com/moko/beaconsupport/task/DevicenameTask.java +++ b/mokosupport/src/main/java/com/moko/support/task/DevicenameTask.java @@ -1,19 +1,20 @@ -package com.moko.beaconsupport.task; +package com.moko.support.task; -import com.moko.beaconsupport.callback.OrderTaskCallback; -import com.moko.beaconsupport.entity.OrderType; + +import com.moko.support.callback.MokoOrderTaskCallback; +import com.moko.support.entity.OrderType; /** * @Date 2017/12/14 0014 * @Author wenzheng.liu * @Description - * @ClassPath com.moko.beaconsupport.task.DevicenameTask + * @ClassPath com.moko.support.task.DevicenameTask */ public class DevicenameTask extends OrderTask { public byte[] data; - public DevicenameTask(OrderTaskCallback callback, int sendDataType) { + public DevicenameTask(MokoOrderTaskCallback callback, int sendDataType) { super(OrderType.devicename, callback, sendDataType); } diff --git a/beaconsupport/src/main/java/com/moko/beaconsupport/task/FirmnameTask.java b/mokosupport/src/main/java/com/moko/support/task/FirmnameTask.java similarity index 51% rename from beaconsupport/src/main/java/com/moko/beaconsupport/task/FirmnameTask.java rename to mokosupport/src/main/java/com/moko/support/task/FirmnameTask.java index 0883104..eee5032 100644 --- a/beaconsupport/src/main/java/com/moko/beaconsupport/task/FirmnameTask.java +++ b/mokosupport/src/main/java/com/moko/support/task/FirmnameTask.java @@ -1,19 +1,20 @@ -package com.moko.beaconsupport.task; +package com.moko.support.task; -import com.moko.beaconsupport.callback.OrderTaskCallback; -import com.moko.beaconsupport.entity.OrderType; + +import com.moko.support.callback.MokoOrderTaskCallback; +import com.moko.support.entity.OrderType; /** * @Date 2017/12/14 0014 * @Author wenzheng.liu * @Description - * @ClassPath com.moko.beaconsupport.task.FirmnameTask + * @ClassPath com.moko.support.task.FirmnameTask */ public class FirmnameTask extends OrderTask { public byte[] data; - public FirmnameTask(OrderTaskCallback callback, int sendDataType) { + public FirmnameTask(MokoOrderTaskCallback callback, int sendDataType) { super(OrderType.firmname, callback, sendDataType); } diff --git a/beaconsupport/src/main/java/com/moko/beaconsupport/task/FirmwareVersionTask.java b/mokosupport/src/main/java/com/moko/support/task/FirmwareVersionTask.java similarity index 51% rename from beaconsupport/src/main/java/com/moko/beaconsupport/task/FirmwareVersionTask.java rename to mokosupport/src/main/java/com/moko/support/task/FirmwareVersionTask.java index 0ff239f..4f16ebe 100644 --- a/beaconsupport/src/main/java/com/moko/beaconsupport/task/FirmwareVersionTask.java +++ b/mokosupport/src/main/java/com/moko/support/task/FirmwareVersionTask.java @@ -1,19 +1,20 @@ -package com.moko.beaconsupport.task; +package com.moko.support.task; -import com.moko.beaconsupport.callback.OrderTaskCallback; -import com.moko.beaconsupport.entity.OrderType; + +import com.moko.support.callback.MokoOrderTaskCallback; +import com.moko.support.entity.OrderType; /** * @Date 2017/12/14 0014 * @Author wenzheng.liu * @Description - * @ClassPath com.moko.beaconsupport.task.FirmwareVersionTask + * @ClassPath com.moko.support.task.FirmwareVersionTask */ public class FirmwareVersionTask extends OrderTask { public byte[] data; - public FirmwareVersionTask(OrderTaskCallback callback, int sendDataType) { + public FirmwareVersionTask(MokoOrderTaskCallback callback, int sendDataType) { super(OrderType.firmwareVersion, callback, sendDataType); } diff --git a/beaconsupport/src/main/java/com/moko/beaconsupport/task/HardwareVersionTask.java b/mokosupport/src/main/java/com/moko/support/task/HardwareVersionTask.java similarity index 51% rename from beaconsupport/src/main/java/com/moko/beaconsupport/task/HardwareVersionTask.java rename to mokosupport/src/main/java/com/moko/support/task/HardwareVersionTask.java index a68f526..11676a6 100644 --- a/beaconsupport/src/main/java/com/moko/beaconsupport/task/HardwareVersionTask.java +++ b/mokosupport/src/main/java/com/moko/support/task/HardwareVersionTask.java @@ -1,19 +1,20 @@ -package com.moko.beaconsupport.task; +package com.moko.support.task; -import com.moko.beaconsupport.callback.OrderTaskCallback; -import com.moko.beaconsupport.entity.OrderType; + +import com.moko.support.callback.MokoOrderTaskCallback; +import com.moko.support.entity.OrderType; /** * @Date 2017/12/14 0014 * @Author wenzheng.liu * @Description - * @ClassPath com.moko.beaconsupport.task.HardwareVersionTask + * @ClassPath com.moko.support.task.HardwareVersionTask */ public class HardwareVersionTask extends OrderTask { public byte[] data; - public HardwareVersionTask(OrderTaskCallback callback, int sendDataType) { + public HardwareVersionTask(MokoOrderTaskCallback callback, int sendDataType) { super(OrderType.hardwareVersion, callback, sendDataType); } diff --git a/beaconsupport/src/main/java/com/moko/beaconsupport/task/IBeaconDateTask.java b/mokosupport/src/main/java/com/moko/support/task/IBeaconDateTask.java similarity index 51% rename from beaconsupport/src/main/java/com/moko/beaconsupport/task/IBeaconDateTask.java rename to mokosupport/src/main/java/com/moko/support/task/IBeaconDateTask.java index 928788d..54d0c5b 100644 --- a/beaconsupport/src/main/java/com/moko/beaconsupport/task/IBeaconDateTask.java +++ b/mokosupport/src/main/java/com/moko/support/task/IBeaconDateTask.java @@ -1,19 +1,20 @@ -package com.moko.beaconsupport.task; +package com.moko.support.task; -import com.moko.beaconsupport.callback.OrderTaskCallback; -import com.moko.beaconsupport.entity.OrderType; + +import com.moko.support.callback.MokoOrderTaskCallback; +import com.moko.support.entity.OrderType; /** * @Date 2017/12/14 0014 * @Author wenzheng.liu * @Description - * @ClassPath com.moko.beaconsupport.task.IBeaconDateTask + * @ClassPath com.moko.support.task.IBeaconDateTask */ public class IBeaconDateTask extends OrderTask { public byte[] data; - public IBeaconDateTask(OrderTaskCallback callback, int sendDataType) { + public IBeaconDateTask(MokoOrderTaskCallback callback, int sendDataType) { super(OrderType.iBeaconDate, callback, sendDataType); } diff --git a/beaconsupport/src/main/java/com/moko/beaconsupport/task/IBeaconMacTask.java b/mokosupport/src/main/java/com/moko/support/task/IBeaconMacTask.java similarity index 51% rename from beaconsupport/src/main/java/com/moko/beaconsupport/task/IBeaconMacTask.java rename to mokosupport/src/main/java/com/moko/support/task/IBeaconMacTask.java index a65f01e..8cd6a35 100644 --- a/beaconsupport/src/main/java/com/moko/beaconsupport/task/IBeaconMacTask.java +++ b/mokosupport/src/main/java/com/moko/support/task/IBeaconMacTask.java @@ -1,19 +1,20 @@ -package com.moko.beaconsupport.task; +package com.moko.support.task; -import com.moko.beaconsupport.callback.OrderTaskCallback; -import com.moko.beaconsupport.entity.OrderType; + +import com.moko.support.callback.MokoOrderTaskCallback; +import com.moko.support.entity.OrderType; /** * @Date 2017/12/14 0014 * @Author wenzheng.liu * @Description - * @ClassPath com.moko.beaconsupport.task.IBeaconMacTask + * @ClassPath com.moko.support.task.IBeaconMacTask */ public class IBeaconMacTask extends OrderTask { public byte[] data; - public IBeaconMacTask(OrderTaskCallback callback, int sendDataType) { + public IBeaconMacTask(MokoOrderTaskCallback callback, int sendDataType) { super(OrderType.iBeaconMac, callback, sendDataType); } diff --git a/beaconsupport/src/main/java/com/moko/beaconsupport/task/IBeaconNameTask.java b/mokosupport/src/main/java/com/moko/support/task/IBeaconNameTask.java similarity index 56% rename from beaconsupport/src/main/java/com/moko/beaconsupport/task/IBeaconNameTask.java rename to mokosupport/src/main/java/com/moko/support/task/IBeaconNameTask.java index f2f63f7..bcb4b44 100644 --- a/beaconsupport/src/main/java/com/moko/beaconsupport/task/IBeaconNameTask.java +++ b/mokosupport/src/main/java/com/moko/support/task/IBeaconNameTask.java @@ -1,20 +1,21 @@ -package com.moko.beaconsupport.task; +package com.moko.support.task; -import com.moko.beaconsupport.callback.OrderTaskCallback; -import com.moko.beaconsupport.entity.OrderType; -import com.moko.beaconsupport.utils.Utils; + +import com.moko.support.callback.MokoOrderTaskCallback; +import com.moko.support.entity.OrderType; +import com.moko.support.utils.Utils; /** * @Date 2017/12/14 0014 * @Author wenzheng.liu * @Description - * @ClassPath com.moko.beaconsupport.task.IBeaconNameTask + * @ClassPath com.moko.support.task.IBeaconNameTask */ public class IBeaconNameTask extends OrderTask { public byte[] data; - public IBeaconNameTask(OrderTaskCallback callback, int sendDataType) { + public IBeaconNameTask(MokoOrderTaskCallback callback, int sendDataType) { super(OrderType.iBeaconName, callback, sendDataType); } diff --git a/beaconsupport/src/main/java/com/moko/beaconsupport/task/IBeaconUuidTask.java b/mokosupport/src/main/java/com/moko/support/task/IBeaconUuidTask.java similarity index 57% rename from beaconsupport/src/main/java/com/moko/beaconsupport/task/IBeaconUuidTask.java rename to mokosupport/src/main/java/com/moko/support/task/IBeaconUuidTask.java index 34a6811..f3be094 100644 --- a/beaconsupport/src/main/java/com/moko/beaconsupport/task/IBeaconUuidTask.java +++ b/mokosupport/src/main/java/com/moko/support/task/IBeaconUuidTask.java @@ -1,20 +1,21 @@ -package com.moko.beaconsupport.task; +package com.moko.support.task; -import com.moko.beaconsupport.callback.OrderTaskCallback; -import com.moko.beaconsupport.entity.OrderType; -import com.moko.beaconsupport.utils.Utils; + +import com.moko.support.callback.MokoOrderTaskCallback; +import com.moko.support.entity.OrderType; +import com.moko.support.utils.Utils; /** * @Date 2017/12/14 0014 * @Author wenzheng.liu * @Description - * @ClassPath com.moko.beaconsupport.task.IBeaconUuidTask + * @ClassPath com.moko.support.task.IBeaconUuidTask */ public class IBeaconUuidTask extends OrderTask { public byte[] data; - public IBeaconUuidTask(OrderTaskCallback callback, int sendDataType) { + public IBeaconUuidTask(MokoOrderTaskCallback callback, int sendDataType) { super(OrderType.iBeaconUuid, callback, sendDataType); } diff --git a/beaconsupport/src/main/java/com/moko/beaconsupport/task/IEEEInfoTask.java b/mokosupport/src/main/java/com/moko/support/task/IEEEInfoTask.java similarity index 51% rename from beaconsupport/src/main/java/com/moko/beaconsupport/task/IEEEInfoTask.java rename to mokosupport/src/main/java/com/moko/support/task/IEEEInfoTask.java index 56de8f5..6d2c08b 100644 --- a/beaconsupport/src/main/java/com/moko/beaconsupport/task/IEEEInfoTask.java +++ b/mokosupport/src/main/java/com/moko/support/task/IEEEInfoTask.java @@ -1,19 +1,19 @@ -package com.moko.beaconsupport.task; +package com.moko.support.task; -import com.moko.beaconsupport.callback.OrderTaskCallback; -import com.moko.beaconsupport.entity.OrderType; +import com.moko.support.callback.MokoOrderTaskCallback; +import com.moko.support.entity.OrderType; /** * @Date 2017/12/14 0014 * @Author wenzheng.liu * @Description - * @ClassPath com.moko.beaconsupport.task.IEEEInfoTask + * @ClassPath com.moko.support.task.IEEEInfoTask */ public class IEEEInfoTask extends OrderTask { public byte[] data; - public IEEEInfoTask(OrderTaskCallback callback, int sendDataType) { + public IEEEInfoTask(MokoOrderTaskCallback callback, int sendDataType) { super(OrderType.IEEEInfo, callback, sendDataType); } diff --git a/beaconsupport/src/main/java/com/moko/beaconsupport/task/MajorTask.java b/mokosupport/src/main/java/com/moko/support/task/MajorTask.java similarity index 65% rename from beaconsupport/src/main/java/com/moko/beaconsupport/task/MajorTask.java rename to mokosupport/src/main/java/com/moko/support/task/MajorTask.java index 322cd88..765c9ad 100644 --- a/beaconsupport/src/main/java/com/moko/beaconsupport/task/MajorTask.java +++ b/mokosupport/src/main/java/com/moko/support/task/MajorTask.java @@ -1,20 +1,20 @@ -package com.moko.beaconsupport.task; +package com.moko.support.task; -import com.moko.beaconsupport.callback.OrderTaskCallback; -import com.moko.beaconsupport.entity.OrderType; -import com.moko.beaconsupport.utils.Utils; +import com.moko.support.callback.MokoOrderTaskCallback; +import com.moko.support.entity.OrderType; +import com.moko.support.utils.Utils; /** * @Date 2017/12/14 0014 * @Author wenzheng.liu * @Description - * @ClassPath com.moko.beaconsupport.task.MajorTask + * @ClassPath com.moko.support.task.MajorTask */ public class MajorTask extends OrderTask { public byte[] data; - public MajorTask(OrderTaskCallback callback, int sendDataType) { + public MajorTask(MokoOrderTaskCallback callback, int sendDataType) { super(OrderType.major, callback, sendDataType); } diff --git a/beaconsupport/src/main/java/com/moko/beaconsupport/task/MeasurePowerTask.java b/mokosupport/src/main/java/com/moko/support/task/MeasurePowerTask.java similarity index 56% rename from beaconsupport/src/main/java/com/moko/beaconsupport/task/MeasurePowerTask.java rename to mokosupport/src/main/java/com/moko/support/task/MeasurePowerTask.java index 1dfb647..3e4dadc 100644 --- a/beaconsupport/src/main/java/com/moko/beaconsupport/task/MeasurePowerTask.java +++ b/mokosupport/src/main/java/com/moko/support/task/MeasurePowerTask.java @@ -1,20 +1,21 @@ -package com.moko.beaconsupport.task; +package com.moko.support.task; -import com.moko.beaconsupport.callback.OrderTaskCallback; -import com.moko.beaconsupport.entity.OrderType; -import com.moko.beaconsupport.utils.Utils; + +import com.moko.support.callback.MokoOrderTaskCallback; +import com.moko.support.entity.OrderType; +import com.moko.support.utils.Utils; /** * @Date 2017/12/14 0014 * @Author wenzheng.liu * @Description - * @ClassPath com.moko.beaconsupport.task.MeasurePowerTask + * @ClassPath com.moko.support.task.MeasurePowerTask */ public class MeasurePowerTask extends OrderTask { public byte[] data; - public MeasurePowerTask(OrderTaskCallback callback, int sendDataType) { + public MeasurePowerTask(MokoOrderTaskCallback callback, int sendDataType) { super(OrderType.measurePower, callback, sendDataType); } diff --git a/beaconsupport/src/main/java/com/moko/beaconsupport/task/MinorTask.java b/mokosupport/src/main/java/com/moko/support/task/MinorTask.java similarity index 65% rename from beaconsupport/src/main/java/com/moko/beaconsupport/task/MinorTask.java rename to mokosupport/src/main/java/com/moko/support/task/MinorTask.java index a52a11c..db40400 100644 --- a/beaconsupport/src/main/java/com/moko/beaconsupport/task/MinorTask.java +++ b/mokosupport/src/main/java/com/moko/support/task/MinorTask.java @@ -1,20 +1,21 @@ -package com.moko.beaconsupport.task; +package com.moko.support.task; -import com.moko.beaconsupport.callback.OrderTaskCallback; -import com.moko.beaconsupport.entity.OrderType; -import com.moko.beaconsupport.utils.Utils; + +import com.moko.support.callback.MokoOrderTaskCallback; +import com.moko.support.entity.OrderType; +import com.moko.support.utils.Utils; /** * @Date 2017/12/14 0014 * @Author wenzheng.liu * @Description - * @ClassPath com.moko.beaconsupport.task.MinorTask + * @ClassPath com.moko.support.task.MinorTask */ public class MinorTask extends OrderTask { public byte[] data; - public MinorTask(OrderTaskCallback callback, int sendDataType) { + public MinorTask(MokoOrderTaskCallback callback, int sendDataType) { super(OrderType.minor, callback, sendDataType); } diff --git a/beaconsupport/src/main/java/com/moko/beaconsupport/task/OrderTask.java b/mokosupport/src/main/java/com/moko/support/task/OrderTask.java similarity index 51% rename from beaconsupport/src/main/java/com/moko/beaconsupport/task/OrderTask.java rename to mokosupport/src/main/java/com/moko/support/task/OrderTask.java index c04bd48..0e1b6cc 100644 --- a/beaconsupport/src/main/java/com/moko/beaconsupport/task/OrderTask.java +++ b/mokosupport/src/main/java/com/moko/support/task/OrderTask.java @@ -1,27 +1,29 @@ -package com.moko.beaconsupport.task; +package com.moko.support.task; -import com.moko.beaconsupport.callback.OrderTaskCallback; -import com.moko.beaconsupport.entity.OrderType; +import com.moko.support.callback.MokoOrderTaskCallback; +import com.moko.support.entity.OrderType; /** - * @Date 2017/12/14 0014 + * @Date 2018/1/10 * @Author wenzheng.liu - * @Description 命令任务 + * @Description + * @ClassPath com.moko.support.task.OrderTask */ public abstract class OrderTask { public static final int RESPONSE_TYPE_READ = 0; public static final int RESPONSE_TYPE_WRITE = 1; public static final int RESPONSE_TYPE_NOTIFY = 2; + public static final int RESPONSE_TYPE_WRITE_NO_RESPONSE = 3; public static final int ORDER_STATUS_SUCCESS = 1; public OrderType orderType; - public OrderTaskCallback orderTaskCallback; + public MokoOrderTaskCallback mokoOrderTaskCallback; public int responseType; public int orderStatus; - public OrderTask(OrderType orderType,OrderTaskCallback callback,int responseType) { + public OrderTask(OrderType orderType, MokoOrderTaskCallback callback, int responseType) { this.orderType = orderType; - this.orderTaskCallback = callback; + this.mokoOrderTaskCallback = callback; this.responseType = responseType; } diff --git a/beaconsupport/src/main/java/com/moko/beaconsupport/task/OvertimeTask.java b/mokosupport/src/main/java/com/moko/support/task/OvertimeTask.java similarity index 59% rename from beaconsupport/src/main/java/com/moko/beaconsupport/task/OvertimeTask.java rename to mokosupport/src/main/java/com/moko/support/task/OvertimeTask.java index 4fb51cf..cd7297f 100644 --- a/beaconsupport/src/main/java/com/moko/beaconsupport/task/OvertimeTask.java +++ b/mokosupport/src/main/java/com/moko/support/task/OvertimeTask.java @@ -1,19 +1,19 @@ -package com.moko.beaconsupport.task; +package com.moko.support.task; -import com.moko.beaconsupport.callback.OrderTaskCallback; -import com.moko.beaconsupport.entity.OrderType; +import com.moko.support.callback.MokoOrderTaskCallback; +import com.moko.support.entity.OrderType; /** * @Date 2017/12/14 0014 * @Author wenzheng.liu * @Description - * @ClassPath com.moko.beaconsupport.task.IBeaconMacTask + * @ClassPath com.moko.support.task.IBeaconMacTask */ public class OvertimeTask extends OrderTask { public byte[] data; - public OvertimeTask(OrderTaskCallback callback, int sendDataType) { + public OvertimeTask(MokoOrderTaskCallback callback, int sendDataType) { super(OrderType.overtime, callback, sendDataType); setData(); } diff --git a/beaconsupport/src/main/java/com/moko/beaconsupport/task/RunntimeTask.java b/mokosupport/src/main/java/com/moko/support/task/RunntimeTask.java similarity index 66% rename from beaconsupport/src/main/java/com/moko/beaconsupport/task/RunntimeTask.java rename to mokosupport/src/main/java/com/moko/support/task/RunntimeTask.java index 4c4a301..f9c89a3 100644 --- a/beaconsupport/src/main/java/com/moko/beaconsupport/task/RunntimeTask.java +++ b/mokosupport/src/main/java/com/moko/support/task/RunntimeTask.java @@ -1,19 +1,20 @@ -package com.moko.beaconsupport.task; +package com.moko.support.task; -import com.moko.beaconsupport.callback.OrderTaskCallback; -import com.moko.beaconsupport.entity.OrderType; + +import com.moko.support.callback.MokoOrderTaskCallback; +import com.moko.support.entity.OrderType; /** * @Date 2017/12/14 0014 * @Author wenzheng.liu * @Description - * @ClassPath com.moko.beaconsupport.task.RunntimeTask + * @ClassPath com.moko.support.task.RunntimeTask */ public class RunntimeTask extends OrderTask { public byte[] data; - public RunntimeTask(OrderTaskCallback callback, int sendDataType) { + public RunntimeTask(MokoOrderTaskCallback callback, int sendDataType) { super(OrderType.runtimeAndChipModel, callback, sendDataType); setData(); } diff --git a/beaconsupport/src/main/java/com/moko/beaconsupport/task/SerialIDTask.java b/mokosupport/src/main/java/com/moko/support/task/SerialIDTask.java similarity index 55% rename from beaconsupport/src/main/java/com/moko/beaconsupport/task/SerialIDTask.java rename to mokosupport/src/main/java/com/moko/support/task/SerialIDTask.java index 08c84d7..c378ba4 100644 --- a/beaconsupport/src/main/java/com/moko/beaconsupport/task/SerialIDTask.java +++ b/mokosupport/src/main/java/com/moko/support/task/SerialIDTask.java @@ -1,20 +1,20 @@ -package com.moko.beaconsupport.task; +package com.moko.support.task; -import com.moko.beaconsupport.callback.OrderTaskCallback; -import com.moko.beaconsupport.entity.OrderType; -import com.moko.beaconsupport.utils.Utils; +import com.moko.support.callback.MokoOrderTaskCallback; +import com.moko.support.entity.OrderType; +import com.moko.support.utils.Utils; /** * @Date 2017/12/14 0014 * @Author wenzheng.liu * @Description - * @ClassPath com.moko.beaconsupport.task.SerialIDTask + * @ClassPath com.moko.support.task.SerialIDTask */ public class SerialIDTask extends OrderTask { public byte[] data; - public SerialIDTask(OrderTaskCallback callback, int sendDataType) { + public SerialIDTask(MokoOrderTaskCallback callback, int sendDataType) { super(OrderType.serialID, callback, sendDataType); } diff --git a/beaconsupport/src/main/java/com/moko/beaconsupport/task/SoftRebootModeTask.java b/mokosupport/src/main/java/com/moko/support/task/SoftRebootModeTask.java similarity index 51% rename from beaconsupport/src/main/java/com/moko/beaconsupport/task/SoftRebootModeTask.java rename to mokosupport/src/main/java/com/moko/support/task/SoftRebootModeTask.java index cce2807..081b18c 100644 --- a/beaconsupport/src/main/java/com/moko/beaconsupport/task/SoftRebootModeTask.java +++ b/mokosupport/src/main/java/com/moko/support/task/SoftRebootModeTask.java @@ -1,19 +1,20 @@ -package com.moko.beaconsupport.task; +package com.moko.support.task; -import com.moko.beaconsupport.callback.OrderTaskCallback; -import com.moko.beaconsupport.entity.OrderType; + +import com.moko.support.callback.MokoOrderTaskCallback; +import com.moko.support.entity.OrderType; /** * @Date 2017/12/14 0014 * @Author wenzheng.liu * @Description - * @ClassPath com.moko.beaconsupport.task.SoftRebootModeTask + * @ClassPath com.moko.support.task.SoftRebootModeTask */ public class SoftRebootModeTask extends OrderTask { public byte[] data; - public SoftRebootModeTask(OrderTaskCallback callback, int sendDataType) { + public SoftRebootModeTask(MokoOrderTaskCallback callback, int sendDataType) { super(OrderType.softReboot, callback, sendDataType); } diff --git a/beaconsupport/src/main/java/com/moko/beaconsupport/task/SystemMarkTask.java b/mokosupport/src/main/java/com/moko/support/task/SystemMarkTask.java similarity index 51% rename from beaconsupport/src/main/java/com/moko/beaconsupport/task/SystemMarkTask.java rename to mokosupport/src/main/java/com/moko/support/task/SystemMarkTask.java index d97042c..08274df 100644 --- a/beaconsupport/src/main/java/com/moko/beaconsupport/task/SystemMarkTask.java +++ b/mokosupport/src/main/java/com/moko/support/task/SystemMarkTask.java @@ -1,19 +1,20 @@ -package com.moko.beaconsupport.task; +package com.moko.support.task; -import com.moko.beaconsupport.callback.OrderTaskCallback; -import com.moko.beaconsupport.entity.OrderType; + +import com.moko.support.callback.MokoOrderTaskCallback; +import com.moko.support.entity.OrderType; /** * @Date 2017/12/14 0014 * @Author wenzheng.liu * @Description - * @ClassPath com.moko.beaconsupport.task.SystemMarkTask + * @ClassPath com.moko.support.task.SystemMarkTask */ public class SystemMarkTask extends OrderTask { public byte[] data; - public SystemMarkTask(OrderTaskCallback callback, int sendDataType) { + public SystemMarkTask(MokoOrderTaskCallback callback, int sendDataType) { super(OrderType.systemMark, callback, sendDataType); } diff --git a/beaconsupport/src/main/java/com/moko/beaconsupport/task/TransmissionTask.java b/mokosupport/src/main/java/com/moko/support/task/TransmissionTask.java similarity index 56% rename from beaconsupport/src/main/java/com/moko/beaconsupport/task/TransmissionTask.java rename to mokosupport/src/main/java/com/moko/support/task/TransmissionTask.java index fbf3be5..bbe8b99 100644 --- a/beaconsupport/src/main/java/com/moko/beaconsupport/task/TransmissionTask.java +++ b/mokosupport/src/main/java/com/moko/support/task/TransmissionTask.java @@ -1,20 +1,21 @@ -package com.moko.beaconsupport.task; +package com.moko.support.task; -import com.moko.beaconsupport.callback.OrderTaskCallback; -import com.moko.beaconsupport.entity.OrderType; -import com.moko.beaconsupport.utils.Utils; + +import com.moko.support.callback.MokoOrderTaskCallback; +import com.moko.support.entity.OrderType; +import com.moko.support.utils.Utils; /** * @Date 2017/12/14 0014 * @Author wenzheng.liu * @Description - * @ClassPath com.moko.beaconsupport.task.TransmissionTask + * @ClassPath com.moko.support.task.TransmissionTask */ public class TransmissionTask extends OrderTask { public byte[] data; - public TransmissionTask(OrderTaskCallback callback, int sendDataType) { + public TransmissionTask(MokoOrderTaskCallback callback, int sendDataType) { super(OrderType.transmission, callback, sendDataType); } diff --git a/beaconsupport/src/main/java/com/moko/beaconsupport/utils/BleConnectionCompat.java b/mokosupport/src/main/java/com/moko/support/utils/BleConnectionCompat.java similarity index 96% rename from beaconsupport/src/main/java/com/moko/beaconsupport/utils/BleConnectionCompat.java rename to mokosupport/src/main/java/com/moko/support/utils/BleConnectionCompat.java index 38820f4..9454f7e 100644 --- a/beaconsupport/src/main/java/com/moko/beaconsupport/utils/BleConnectionCompat.java +++ b/mokosupport/src/main/java/com/moko/support/utils/BleConnectionCompat.java @@ -1,4 +1,4 @@ -package com.moko.beaconsupport.utils; +package com.moko.support.utils; import android.bluetooth.BluetoothDevice; import android.bluetooth.BluetoothGatt; diff --git a/beaconsupport/src/main/java/com/moko/beaconsupport/utils/Utils.java b/mokosupport/src/main/java/com/moko/support/utils/Utils.java similarity index 84% rename from beaconsupport/src/main/java/com/moko/beaconsupport/utils/Utils.java rename to mokosupport/src/main/java/com/moko/support/utils/Utils.java index 750df90..cdf241b 100644 --- a/beaconsupport/src/main/java/com/moko/beaconsupport/utils/Utils.java +++ b/mokosupport/src/main/java/com/moko/support/utils/Utils.java @@ -1,4 +1,4 @@ -package com.moko.beaconsupport.utils; +package com.moko.support.utils; import android.bluetooth.BluetoothGattCharacteristic; import android.text.TextUtils; @@ -132,6 +132,40 @@ public static byte[] hex2bytes(String hex) { return data; } + /** + * @Date 2017/8/15 + * @Author wenzheng.liu + * @Description 将byte数组bRefArr转为一个整数, 字节数组的低位是整型的低字节位 + */ + public static int toInt(byte[] bRefArr) { + int iOutcome = 0; + byte bLoop; + + for (int i = 0; i < bRefArr.length; i++) { + bLoop = bRefArr[i]; + iOutcome += (bLoop & 0xFF) << (8 * i); + } + return iOutcome; + } + + /** + * @Date 2017/8/14 0014 + * @Author wenzheng.liu + * @Description 整数转换成byte数组 + */ + public static byte[] toByteArray(int iSource, int iArrayLen) { + byte[] bLocalArr = new byte[iArrayLen]; + for (int i = 0; (i < 4) && (i < iArrayLen); i++) { + bLocalArr[i] = (byte) (iSource >> 8 * i & 0xFF); + } + // 数据反了,需要做个翻转 + byte[] bytes = new byte[iArrayLen]; + for (int i = 0; i < bLocalArr.length; i++) { + bytes[bLocalArr.length - 1 - i] = bLocalArr[i]; + } + return bytes; + } + private static HashMap charProperties = new HashMap(); diff --git a/beaconsupport/src/main/res/values/strings.xml b/mokosupport/src/main/res/values/strings.xml similarity index 100% rename from beaconsupport/src/main/res/values/strings.xml rename to mokosupport/src/main/res/values/strings.xml diff --git a/settings.gradle b/settings.gradle index 65e0b33..221ce10 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1 +1 @@ -include ':app', ':beaconsupport' +include ':app', ':mokosupport'