Я попытался соединить телефон Arduino и Android с BLE.
Но это не работает.
Я хочу, чтобы приложение подключалось к определенному устройству с определенным именем и MAC-адресом.
Я объявляю Mac-адрес
private static String Adr = "D4:36:39:6F:7F:0E";
и т. Д.
private BluetoothGattCharacteristic characteristic;
private BluetoothAdapter mBluetoothAdapter;
private int REQUEST_ENABLE_BT = 1;
private Handler mHandler;
private static final long SCAN_PERIOD = 10000;
private BluetoothLeScanner mLEScanner;
private ScanSettings settings;
private List<ScanFilter> filters;
private BluetoothGatt mGatt;
private SharedPreferences setting;
и сделал несколько уроков.
части класы
private ScanCallback mScanCallback = new ScanCallback() {
@Override
public void onScanResult(int callbackType, ScanResult result) {
Log.i("callbackType", String.valueOf(callbackType));
Log.i("result", result.toString());
btDevice = result.getDevice();
if (btDevice != null && btDevice.getName() != null && btDevice.getName().contains("Device"))
connectToDevice(btDevice);
}
@Override
public void onBatchScanResults(List<ScanResult> results) {
for (ScanResult sr : results) {
Log.i("ScanResult - Results", sr.toString());
}
}
@Override
public void onScanFailed(int errorCode) {
Log.e("Scan Failed", "Error Code: " + errorCode);
}
};
private BluetoothAdapter.LeScanCallback mLeScanCallback =
new BluetoothAdapter.LeScanCallback() {
@Override
public void onLeScan(final BluetoothDevice device, int rssi,
byte[] scanRecord) {
runOnUiThread(new Runnable() {
@Override
public void run() {
Log.i("onLeScan", device.toString());
connectToDevice(device);
}
});
}
};
и я искал в интернете и модифицировал
public void connectToDevice(BluetoothDevice device) {
if (mGatt == null) {
btDevice = mBluetoothAdapter.getRemoteDevice(CantusAdr);
mGatt = device.connectGatt(this, false, gattCallback);
}
}
для подключения к устройству Arduino.
и
private ScanCallback mScanCallback = new ScanCallback() {
@Override
public void onScanResult(int callbackType, ScanResult result) {
Log.i("callbackType", String.valueOf(callbackType));
Log.i("result", result.toString());
btDevice = result.getDevice();
if (btDevice != null && btDevice.getName() != null && btDevice.getName().contains("Device"))
connectToDevice(btDevice);
}
Это коды для соединения с именем «Устройство», имеющее MAC-адрес.
"D4: 36: 39: 6F: 7F: 0E"
Приложение работает.
Соединяется с одним устройством, но не с «Устройством» «D4 ~~~».
Как я могу это решить?
Пожалуйста, помогите мне.