public class CaLeClientInterface {
private static String SERVICE_UUID = "ADE3D529-C784-4F63-A987-EB69F70EE816";
- private static String TAG = "Sample_Service : CaLeClientInterface";
+ private static String TAG = "OIC_LE_CB_INTERFACE";
+ private static Context mContext;
private CaLeClientInterface(Context context) {
-
caLeRegisterLeScanCallback(mLeScanCallback);
caLeRegisterGattCallback(mGattCallback);
-
- registerIntentFilter(context);
+ mContext = context;
+ registerIntentFilter();
}
public static void getLeScanCallback() {
caLeRegisterGattCallback(mGattCallback);
}
- private static IntentFilter registerIntentFilter(Context context) {
+ private static IntentFilter registerIntentFilter() {
IntentFilter filter = new IntentFilter();
filter.addAction(BluetoothAdapter.ACTION_STATE_CHANGED);
filter.addAction(BluetoothDevice.ACTION_BOND_STATE_CHANGED);
- context.registerReceiver(mReceiver, filter);
+ mContext.registerReceiver(mReceiver, filter);
return filter;
}
+ public static void destroyLeInterface() {
+ mContext.unregisterReceiver(mReceiver);
+ }
+
private native static void caLeRegisterLeScanCallback(BluetoothAdapter.LeScanCallback callback);
private native static void caLeRegisterGattCallback(BluetoothGattCallback callback);
// BluetoothAdapter.LeScanCallback
- private native static void caLeScanCallback(BluetoothDevice device,
- int rssi, byte[] scanRecord);
+ private native static void caLeScanCallback(BluetoothDevice device);
// BluetoothGattCallback
private native static void caLeGattConnectionStateChangeCallback(
BluetoothGatt gatt, int status, int newState);
- private native static void caLeGattServicesDiscoveredCallback(BluetoothGatt gatt, int status);
+ // BluetoothGattCallback for Connection Manager
+ private native static void caManagerLeGattConnectionStateChangeCB(
+ BluetoothGatt gatt, int status, int newState);
- private native static void caLeGattCharacteristicReadCallback(
- BluetoothGatt gatt, BluetoothGattCharacteristic characteristic,
- byte[] data, int status);
+ private native static void caLeGattNWConnectionStateChangeCallback(
+ BluetoothGatt gatt, int status, int newState);
+
+ private native static void caLeGattServicesDiscoveredCallback(BluetoothGatt gatt, int status);
private native static void caLeGattCharacteristicWriteCallback(
- BluetoothGatt gatt, BluetoothGattCharacteristic characteristic,
- byte[] data, int status);
+ BluetoothGatt gatt, byte[] data, int status);
private native static void caLeGattCharacteristicChangedCallback(
- BluetoothGatt gatt, BluetoothGattCharacteristic characteristic, byte[] data);
+ BluetoothGatt gatt, byte[] data);
- private native static void caLeGattDescriptorReadCallback(BluetoothGatt gatt,
- BluetoothGattDescriptor descriptor,
- int status);
-
- private native static void caLeGattDescriptorWriteCallback(BluetoothGatt gatt,
- BluetoothGattDescriptor descriptor,
- int status);
+ private native static void caLeGattDescriptorWriteCallback(BluetoothGatt gatt, int status);
private native static void caLeGattReliableWriteCompletedCallback(BluetoothGatt gatt,
int status);
// bond state
private native static void caLeBondStateChangedCallback(String address);
+ // adapter state
+ private native static void caManagerAdapterStateChangedCallback(int state);
+
+ // bond state
+ private native static void caManagerBondStateChangedCallback(BluetoothDevice address);
+
+ private native static void caManagerLeServicesDiscoveredCallback(BluetoothGatt gatt,
+ int status);
+
+ private native static void caManagerLeRemoteRssiCallback(BluetoothGatt gatt, int rssi,
+ int status);
+
// Callback
private static BluetoothAdapter.LeScanCallback mLeScanCallback =
new BluetoothAdapter.LeScanCallback() {
Log.d(TAG, "UUID : " + uuid.toString());
if(uuid.toString().contains(SERVICE_UUID.toLowerCase())) {
Log.d(TAG, "we found that has the Device");
- caLeScanCallback(device, rssi, scanRecord);
+ Log.d(TAG, "scanned device address : " + device.getAddress());
+ caLeScanCallback(device);
}
}
} catch(UnsatisfiedLinkError e) {
super.onConnectionStateChange(gatt, status, newState);
caLeGattConnectionStateChangeCallback(gatt, status, newState);
+ caManagerLeGattConnectionStateChangeCB(gatt, status, newState);
+ caLeGattNWConnectionStateChangeCallback(gatt, status, newState);
}
@Override
super.onServicesDiscovered(gatt, status);
caLeGattServicesDiscoveredCallback(gatt, status);
+ caManagerLeServicesDiscoveredCallback(gatt, status);
}
@Override
public void onCharacteristicRead(BluetoothGatt gatt,
BluetoothGattCharacteristic characteristic, int status) {
super.onCharacteristicRead(gatt, characteristic, status);
-
- caLeGattCharacteristicReadCallback(gatt, characteristic,
- characteristic.getValue(), status);
}
@Override
BluetoothGattCharacteristic characteristic, int status) {
super.onCharacteristicWrite(gatt, characteristic, status);
- caLeGattCharacteristicWriteCallback(gatt, characteristic,
- characteristic.getValue(), status);
+ caLeGattCharacteristicWriteCallback(gatt, characteristic.getValue(), status);
}
@Override
BluetoothGattCharacteristic characteristic) {
super.onCharacteristicChanged(gatt, characteristic);
- caLeGattCharacteristicChangedCallback(gatt, characteristic,
- characteristic.getValue());
+ caLeGattCharacteristicChangedCallback(gatt, characteristic.getValue());
}
@Override
public void onDescriptorRead(BluetoothGatt gatt, BluetoothGattDescriptor descriptor,
int status) {
super.onDescriptorRead(gatt, descriptor, status);
-
- caLeGattDescriptorReadCallback(gatt, descriptor, status);
}
@Override
int status) {
super.onDescriptorWrite(gatt, descriptor, status);
- caLeGattDescriptorWriteCallback(gatt, descriptor, status);
+ caLeGattDescriptorWriteCallback(gatt, status);
}
@Override
public void onReliableWriteCompleted(BluetoothGatt gatt, int status) {
super.onReliableWriteCompleted(gatt, status);
-
- caLeGattReliableWriteCompletedCallback(gatt, status);
}
@Override
public void onReadRemoteRssi(BluetoothGatt gatt, int rssi, int status) {
super.onReadRemoteRssi(gatt, rssi, status);
-
- caLeGattReadRemoteRssiCallback(gatt, rssi, status);
+ caManagerLeRemoteRssiCallback(gatt, rssi, status);
}
};
int state = intent.getIntExtra(BluetoothAdapter.EXTRA_STATE,
BluetoothAdapter.ERROR);
- if (state == BluetoothAdapter.STATE_ON || state == BluetoothAdapter.STATE_OFF)
+ if (state == BluetoothAdapter.STATE_ON || state == BluetoothAdapter.STATE_OFF
+ || state == BluetoothAdapter.STATE_TURNING_OFF)
{
caLeStateChangedCallback(state);
+ caManagerAdapterStateChangedCallback(state);
}
}
BluetoothDevice device = intent
.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
+ caManagerBondStateChangedCallback(device);
caLeBondStateChangedCallback(device.getAddress());
}
}
};
}
+