跌倒检测和BLE按钮按下事件无法单独工作

时间:2018-11-28 12:01:29

标签: android bluetooth-lowenergy

我正在创建一个BLE android应用。当BLE设备按钮被按下或放下时,该应用将发出警报(坠落检测)。一切正常,直到我添加了坠落检测和按钮按下。现在问题出在应用如果我按下按钮将运行,我将得到警报。此后,它将不适用于跌倒检测。再次,如果我在应用启动时放下按钮,则会收到警报,此后按钮没有警报。

这是我在BluetoothLEservice.java中的 onServicesDiscovered

public void onServicesDiscovered(BluetoothGatt gatt, int status) {
            if (status == BluetoothGatt.GATT_SUCCESS) {
               // broadcastUpdate(ACTION_GATT_CONNECTED, deviceAddress, status);
                // Do APP verification as soon as service discovered.
                try {
                    appVerification(gatt, getGattChar(gatt, Constants.SIMPLE_SERVICE,Constants.CHAR_APP_VERIFICATION),Constants.NEW_APP_VERIFICATION_VALUE);
                } catch (Exception e)
                {
                    // Log.e(,"exception with app verify:" + e.getMessage());
                }

                for (BluetoothGattService service : gatt.getServices()) {
                    if ((service == null) || (service.getUuid() == null)) {
                        continue;
                    }
                    if (Constants.SIMPLE_SERVICE.equals(service.getUuid())) {
//                       
                        // Write Emergency key press
                        enableForDetect(gatt,service.getCharacteristic(Constants.CHAR_DETECTION_CONFIG),Constants.ENABLE_KEY_LONGPRESS_DETECTION_VALUE);
                        // Set notification for emergency key press and fall detection
                        setCharacteristicNotification(gatt,service.getCharacteristic(Constants.CHAR_DETECTION_NOTIFY),true);
                    }
                    else if (Constants.SIMPLE_SERVICE.equals(service.getUuid())){


                        if (db.getValue(Common.FALL_DETECTION).equals(Common.TRUE)){
                            enableForDetect(gatt,service.getCharacteristic(Constants.CHAR_DETECTION_CONFIG),Constants.ENABLE_FALL_KEY_DETECTION_VALUE);
                            setCharacteristicNotification(gatt,service.getCharacteristic(Constants.CHAR_DETECTION_NOTIFY),true);
                        }

                    }

在我的 onCharacteristicChanged 中,我将根据键值将其中两个事件重定向到我的警报活动中。 如有任何帮助,请询问是否需要进一步的解释。

1 个答案:

答案 0 :(得分:0)

我在Gattconstant课堂上犯了一个错误。对于按钮按下,需要输入

public static final byte[] ENABLE_KEY_DETECTION_VALUE = new byte[]{(byte) 2};

要检测跌倒情况,必须写出

public static final byte[] ENABLE_FALL_KEY_DETECTION_VALUE = new byte[]{(byte) 6};

我写的是4而不是6。