android.bluetooth.BluetoothGatt#STATE_CONNECTING源码实例Demo

下面列出了android.bluetooth.BluetoothGatt#STATE_CONNECTING 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: neatle   文件: Device.java
@VisibleForTesting
void connectWithGatt() {
    int oldState;
    int newState = BluetoothGatt.STATE_CONNECTING;
    synchronized (lock) {
        oldState = state;
        state = BluetoothGatt.STATE_CONNECTING;
    }

    NeatleLogger.d("Connecting with " + device.getName() + "[" + device.getAddress() + "]");
    BluetoothGatt gatt = device.connectGatt(context, false, callback);

    synchronized (lock) {
        if (state == BluetoothGatt.STATE_DISCONNECTED) {
            gatt = null;
        }

        this.gatt = gatt;
        if (gatt == null) {
            state = BluetoothGatt.STATE_DISCONNECTED;
            newState = BluetoothGatt.STATE_DISCONNECTED;
        }
    }

    notifyConnectionStateChange(oldState, newState);
}
 
源代码2 项目: BLE   文件: DeviceMirror.java
/**
 * 连接状态改变,主要用来分析设备的连接与断开
 * @param gatt GATT
 * @param status 改变前状态
 * @param newState 改变后状态
 */
@Override
public void onConnectionStateChange(final BluetoothGatt gatt, final int status, final int newState) {
    ViseLog.i("onConnectionStateChange  status: " + status + " ,newState: " + newState +
            "  ,thread: " + Thread.currentThread());
    if (newState == BluetoothGatt.STATE_CONNECTED) {
        gatt.discoverServices();
    } else if (newState == BluetoothGatt.STATE_DISCONNECTED) {
        close();
        if (connectCallback != null) {
            if (handler != null) {
                handler.removeCallbacksAndMessages(null);
            }
            ViseBle.getInstance().getDeviceMirrorPool().removeDeviceMirror(deviceMirror);
            if (status == BluetoothGatt.GATT_SUCCESS) {
                connectState = ConnectState.CONNECT_DISCONNECT;
                connectCallback.onDisconnect(isActiveDisconnect);
            } else {
                connectState = ConnectState.CONNECT_FAILURE;
                connectCallback.onConnectFailure(new ConnectException(gatt, status));
            }
        }
    } else if (newState == BluetoothGatt.STATE_CONNECTING) {
        connectState = ConnectState.CONNECT_PROCESS;
    }
}
 
源代码3 项目: neatle   文件: Device.java
private void deviceDiscovered() {
    stopDiscovery();

    int state = getState();
    if (state == BluetoothGatt.STATE_CONNECTING) {
        NeatleLogger.i("Device discovered. Continuing with connecting");
        connectWithGatt();
    } else {
        NeatleLogger.e("Device discovered but no longer connecting");
    }
}
 
源代码4 项目: neatle   文件: Device.java
public void run() {
    stopDiscovery();

    int state = getState();
    if (state == BluetoothGatt.STATE_CONNECTING) {
        NeatleLogger.e("Device no discovered failing connection attempt.");
        connectionFailed(BluetoothGatt.GATT_FAILURE);
    } else {
        NeatleLogger.e("Discover timeout but we are not connecting anymore.");
    }
}
 
源代码5 项目: RxAndroidBle   文件: RxBleGattCallback.java
static RxBleConnectionState mapConnectionStateToRxBleConnectionStatus(int newState) {

        switch (newState) {
            case BluetoothGatt.STATE_CONNECTING:
                return RxBleConnectionState.CONNECTING;
            case BluetoothGatt.STATE_CONNECTED:
                return RxBleConnectionState.CONNECTED;
            case BluetoothGatt.STATE_DISCONNECTING:
                return RxBleConnectionState.DISCONNECTING;
            default:
                return RxBleConnectionState.DISCONNECTED;
        }
    }
 
源代码6 项目: neatle   文件: Device.java
@Override
public void connect() {
    int oldState;
    int newState;
    boolean doConnectGatt = false;
    boolean doDiscovery = false;
    boolean adapterEnabled = adapter != null && adapter.isEnabled();

    synchronized (lock) {
        if (isConnected() || isConnecting()) {
            return;
        }
        if (this.gatt != null) {
            throw new IllegalStateException();
        }

        oldState = state;
        if (!adapterEnabled) {
            //newState = BluetoothAdapter.STATE_OFF;
            NeatleLogger.d("BT off. Won't connect to " + device.getName() + "[" + device.getAddress() + "]");
            connectionFailed(BluetoothGatt.GATT_FAILURE);
            return;
        } else {
            newState = BluetoothGatt.STATE_CONNECTING;
            if (device.getType() == BluetoothDevice.DEVICE_TYPE_UNKNOWN) {
                doDiscovery = true;
            } else {
                doConnectGatt = true;
            }
        }
    }
    //call these methods outside of the lock, to prevent deadlocks
    if (doConnectGatt) {
        connectWithGatt();
        return;
    }
    synchronized (lock) {
        state = newState;
    }

    notifyConnectionStateChange(oldState, newState);

    if (doDiscovery) {
        NeatleLogger.d("Device unknown, let's discover it" + device.getName() + "[" + device.getAddress() + "]");
        discoverDevice();
    }
}
 
源代码7 项目: neatle   文件: Device.java
public boolean isConnecting() {
    synchronized (lock) {
        return state == BluetoothGatt.STATE_CONNECTING;
    }
}
 
源代码8 项目: AsteroidOSSync   文件: P_NativeDeviceWrapper.java
boolean isNativelyConnecting()
{
	return getConnectionState() == BluetoothGatt.STATE_CONNECTING;
}
 
源代码9 项目: AsteroidOSSync   文件: P_NativeDeviceWrapper.java
boolean isNativelyConnectingOrConnected()
{
	int state = getConnectionState();
	return state == BluetoothGatt.STATE_CONNECTED || state == BluetoothGatt.STATE_CONNECTING;
}
 
源代码10 项目: Android-nRF-Toolbox   文件: BleManager.java
/**
 * Connects to the Bluetooth Smart device.
 *
 * @param device a device to connect to
 */
public void connect(final BluetoothDevice device) {
	if (connected)
		return;

	synchronized (lock) {
		if (bluetoothGatt != null) {
			// There are 2 ways of reconnecting to the same device:
			// 1. Reusing the same BluetoothGatt object and calling connect() - this will force the autoConnect flag to true
			// 2. Closing it and reopening a new instance of BluetoothGatt object.
			// The gatt.close() is an asynchronous method. It requires some time before it's finished and
			// device.connectGatt(...) can't be called immediately or service discovery
			// may never finish on some older devices (Nexus 4, Android 5.0.1).
			// If shouldAutoConnect() method returned false we can't call gatt.connect() and have to close gatt and open it again.
			if (!initialConnection) {
				bluetoothGatt.close();
				bluetoothGatt = null;
				try {
					Thread.sleep(200); // Is 200 ms enough?
				} catch (final InterruptedException e) {
					// Ignore
				}
			} else {
				// Instead, the gatt.connect() method will be used to reconnect to the same device.
				// This method forces autoConnect = true even if the gatt was created with this flag set to false.
				initialConnection = false;
				connectionState = BluetoothGatt.STATE_CONNECTING;
				callbacks.onDeviceConnecting(device);
				bluetoothGatt.connect();
				return;
			}
		} else {
			// Register bonding broadcast receiver
			context.registerReceiver(bluetoothStateBroadcastReceiver, new IntentFilter(BluetoothAdapter.ACTION_STATE_CHANGED));
			context.registerReceiver(bondingBroadcastReceiver, new IntentFilter(BluetoothDevice.ACTION_BOND_STATE_CHANGED));
		}
	}

	final boolean shouldAutoConnect = shouldAutoConnect();
	userDisconnected = !shouldAutoConnect; // We will receive Linkloss events only when the device is connected with autoConnect=true
	// The first connection will always be done with autoConnect = false to make the connection quick.
	// If the shouldAutoConnect() method returned true, the manager will automatically try to reconnect to this device on link loss.
	if (shouldAutoConnect)
		initialConnection = true;
	bluetoothDevice = device;
	connectionState = BluetoothGatt.STATE_CONNECTING;
	callbacks.onDeviceConnecting(device);
	bluetoothGatt = device.connectGatt(context, false, gattCallback = new BleManagerGattCallback());
}
 
源代码11 项目: SweetBlue   文件: P_NativeDeviceWrapper.java
boolean isNativelyConnecting()
{
	return getConnectionState() == BluetoothGatt.STATE_CONNECTING;
}
 
源代码12 项目: SweetBlue   文件: P_NativeDeviceWrapper.java
boolean isNativelyConnectingOrConnected()
{
	int state = getConnectionState();
	return state == BluetoothGatt.STATE_CONNECTED || state == BluetoothGatt.STATE_CONNECTING;
}