в основном это зависит от того, андроид версии вы ориентируетесь. так как api немного изменился в леденец (21).
в вашей деятельности, получить Bluetooth-адаптер
BluetoothManager bm = (BluetoothManager)getSystemService(Context.BLUETOOTH_SERVICE)
BluetoothAdapter mBluetoothAdapter = bm.getAdapter();
// Ensures Bluetooth is available on the device and it is enabled. If not,
// displays a dialog requesting user permission to enable Bluetooth.
if (mBluetoothAdapter == null || !mBluetoothAdapter.isEnabled()) {
Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT);
}
, то вы должны проверить, какой андроид версии вы ориентируетесь
int apiVersion = android.os.Build.VERSION.SDK_INT;
if (apiVersion > android.os.Build.VERSION_CODES.KITKAT){
BluetoothLeScanner scanner = mBluetoothAdapter.getBluetoothLeScanner();
// scan for devices
scanner.startScan(new ScanCallback() {
@Override
public void onScanResult(int callbackType, ScanResult result) {
// get the discovered device as you wish
// this will trigger each time a new device is found
BluetoothDevice device = result.getDevice();
}
});
} else {
// targetting kitkat or bellow
mBluetoothAdapter.startLeScan(new BluetoothAdapter.LeScanCallback() {
@Override
public void onLeScan(BluetoothDevice device, int rssi, byte[] scanRecord) {
// get the discovered device as you wish
}
});
// rest of your code that will run **before** callback is triggered since it's asynchronous
не забудьте добавить разрешения в манифесте
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
<uses-permission android:name="android.permission.BLUETOOTH"/>
Спасибо! что такое 'REQUEST_ENABLE_BT'? Кроме того, что вы помещаете в '// получить обнаруженное устройство по своему усмотрению'? Документация сбивала с толку о том, как получить доступ к устройству в методах 'onLeScan' и' onScanResult'.Можете ли вы привести пример того, как я могу получить доступ к идентификатору найденного устройства, или к MAC-адресу и т. Д., Или к какой-либо строке имени? – kmn
REQUEST_ENABLE_BT - это целое число, которое вы ожидаете вернуть в onActivityResult. в onActivityResult() вы можете проверить, что результат для этого конкретного запроса (включить bt) относительно MAC-адреса. у вас есть BluetoothDevice. вы можете вызвать device.getAddress() или любые другие доступные методы http://developer.android.com/reference/android/bluetooth/BluetoothDevice.html – DanM