使用Android中的Bluetooth API,扫描附近的蓝牙设备,将扫描结果与本地蓝牙设备的名称进行匹配。如果找到名称相同的设备,则自动进行配对。下面是示例代码:
public class AutoPairActivity extends AppCompatActivity {
private BluetoothAdapter mBluetoothAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
if (mBluetoothAdapter == null) {
// Device does not support Bluetooth
return;
}
if (!mBluetoothAdapter.isEnabled()) {
Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT);
} else {
// start scanning for devices
scanForDevices();
}
}
private void scanForDevices() {
// start discovery
mBluetoothAdapter.startDiscovery();
// create BroadcastReceiver for scan results
BroadcastReceiver receiver = new BroadcastReceiver() {
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
// device found
if (BluetoothDevice.ACTION_FOUND.equals(action)) {
BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
// check if name matches
if (device.getName().equals(mBluetoothAdapter.getName())) {
// attempt to pair
device.createBond();
}
}
}
};
// register BroadcastReceiver
IntentFilter filter = new IntentFilter(BluetoothDevice.ACTION_FOUND);
registerReceiver(receiver, filter);
}
}