如何知道蓝牙设备何时连接和断开连接

时间:2017-07-17 09:14:39

标签: android

每当我连接设备时,它会显示“ACTION_ACL_CONNECTED”..但它会立即显示“ACTION_ACL_DISCONNECTED”。我用这个代码。 当任何设备连接时,它显示设备已连接但在某段时间后它显示设备已断开,但设备仍然连接。

private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
    @Override
    public void onReceive(Context context, Intent intent) {
        String action = intent.getAction();
        BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);

        if (BluetoothDevice.ACTION_FOUND.equals(action)) {
            Log.e(TAG, "Device found");
            //Device found
        } else if (BluetoothDevice.ACTION_ACL_CONNECTED.equals(action)) {
            Log.e(TAG, "Device is now connected");
            //Device is now connected
        } else if (BluetoothAdapter.ACTION_DISCOVERY_FINISHED.equals(action)) {
            Log.e(TAG, "Done searching");
            //Done searching
        } else if (BluetoothDevice.ACTION_ACL_DISCONNECT_REQUESTED.equals(action)) {
            Log.e(TAG, "Device is about to disconnect");
            //Device is about to disconnect
        } else if (BluetoothDevice.ACTION_ACL_DISCONNECTED.equals(action)) {
            Log.e(TAG, "Device has disconnected");
            //Device has disconnected
        }
    }
};

private void registerBluetoothreceiver() {
    IntentFilter filter = new IntentFilter();
    filter.addAction(BluetoothDevice.ACTION_ACL_CONNECTED);
    filter.addAction(BluetoothAdapter.ACTION_STATE_CHANGED);
    filter.addAction(BluetoothDevice.ACTION_ACL_DISCONNECT_REQUESTED);
    filter.addAction(BluetoothDevice.ACTION_ACL_DISCONNECTED);
        this.registerReceiver(mReceiver, filter);
    }
}

0 个答案:

没有答案