У меня есть приложение, которое требует использования Bluetooth для отправки данных, таких как 4-5 цифр и 2-3 текста, между устройствами, но я новичок в java, и мне сложно понять руководство со страницы разработчиков Google.
Чтобы всем, кто хочет помочь мне, было легче, я буду поэтапно записывать, что я сделал до сих пор.
1 . Я попросил разрешения в манифесте:
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
2 . Я получил адаптер по умолчанию в моей деятельности:
final BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
3 . Я создал кнопку, которая при нажатии сканирует устройство на другие устройства:
bt_scan.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//first checks if bluettoth is enabled
if (!mBluetoothAdapter.isEnabled()) {
//if not it enables it
Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT);
}
// Register for broadcasts when a device is discovered.
IntentFilter filter = new IntentFilter(BluetoothDevice.ACTION_FOUND);
registerReceiver(mReceiver, filter);
}
});
4 . Когда устройство найдено, получите информацию об устройстве:
// Create a BroadcastReceiver for ACTION_FOUND.
private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (BluetoothDevice.ACTION_FOUND.equals(action)) {
// Discovery has found a device. Get the BluetoothDevice
// object and its info from the Intent.
BluetoothDevice device =
intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
String deviceName = device.getName();
String deviceHardwareAddress = device.getAddress(); // MAC address
}
}
};
5 . При уничтожении отмените регистрацию получателя ACTION_FOUND:
@Override
protected void onDestroy() {
super.onDestroy();
// Don't forget to unregister the *ACTION_FOUND* receiver.
unregisterReceiver(mReceiver);
}
6 . Я создал вторую кнопку, которая при нажатии активирует обнаружение (которую нужно сначала нажать на устройстве A , чтобы кнопка scan на устройстве B , обнаружила устройство A ):
bt_enable.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent discoverableIntent = new
Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE);
discoverableIntent.putExtra( BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION,300);
startActivity(discoverableIntent);
}
});
Вопросы:
A. На шаге 3 для чего REQUEST_ENABLE_BT для?
B. Это все, что мне нужно, чтобы без проблем установить соединение между двумя устройствами?
C. Если я хочу подключить более двух устройств, могу ли я добавить еще что-нибудь?