![](/img/trans.png)
[英]Bluetooth LE send string data between Android devices via application
[英]Two methods to send data via Bluetooth LE
我正在研究一個通過藍牙LE向其發送數據的Android應用。 我很困惑這里有兩種方法。 有人可以解釋這兩種方法及其相互之間的關系:
private String localmessage = null;
public void Send_Oe_Ef(BluetoothDevice device,String message)
{
localmessage= message;
Send_Oe_Ef(device);
}
public void Send_Oe_Ef(BluetoothDevice device)
{
boolean result = false;
Log.i(TAG, "Send_Oe_Ef ");
isNoti = true;
BluetoothGattService mCC2540 = mBluetoothGatt.getService(device, CC2540_SERVICE);
if (mCC2540 == null)
{
Log.e(TAG, "CC2540 service not found!");
return;
}
BluetoothGattCharacteristic mHRMcharac = mCC2540.getCharacteristic(CC2540_CHARACTERISTIC);
if (mHRMcharac == null) {
Log.e(TAG, "CC2540 charateristic not found!");
return;
}
byte[] value = new byte[14];
value[0] = (byte) 1;
value[1] = (byte) 2;
value[2] = (byte) 3;
value[3] = (byte) 4;
value[4] = (byte) 5;
value[5] = (byte) 6;
value[6] = (byte) 7;
value[7] = (byte) 8;
value[8] = (byte) 9;
value[9] = (byte) 10;
value[10] = (byte) 11;
value[11] = (byte) 12;
value[12] = (byte) 13;
value[13] = (byte) 14;
try
{
value = localmessage.getBytes("UTF-8");
} catch (UnsupportedEncodingException e)
{
e.printStackTrace();
}
mHRMcharac.setValue(value);
mBluetoothGatt.writeCharacteristic(mHRMcharac);
Log.e(TAG, "SetValue");
}
提前致謝
第一種方法是調用第二種方法。 有一秒鍾,我以為它們是類的構造函數所在的位置,但當然不是。
BLE使用GATT協議。 簡而言之,GATT協議由服務組成,而服務又由特征組成。 特征描述您要在遠程設備上訪問的被測實體。 通常,每個設備都有一個特定的UUID,您可以使用它連接到該設備。 例如,如果您查看TI SensorTag,則將使用F0000000-0451-4000-B000-00000000AA01連接到其溫度傳感器。 http://processors.wiki.ti.com/index.php/SensorTag_User_Guide
據我所知
BluetoothGattService mCC2540 = mBluetoothGatt.getService(device, CC2540_SERVICE);
正在嘗試獲取在遠程設備上由常量CC2540_SERVICE定義的服務。
這條線
BluetoothGattCharacteristic mHRMcharac = mCC2540.getCharacteristic(CC2540_CHARACTERISTIC);
正在嘗試訪問CC2540_CHARACTERISTIC引用的服務mCC2540內部的特征
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.