// 获得BluetoothAdapter对象
private BluetoothAdapter adapter = null;
private BluetoothReceiver receiver = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
adapter = BluetoothAdapter.getDefaultAdapter();
//注册Receiver
IntentFilter filter = new IntentFilter(BluetoothDevice.ACTION_FOUND);
receiver = new BluetoothReceiver();
registerReceiver(receiver, filter);
Button btnTest = (Button) findViewById(R.id.btnTest);
btnTest.setOnClickListener(new ButtonOnClickListener());
Button btnDiscovery = (Button) findViewById(R.id.btnDiscovery);
btnDiscovery.setOnClickListener(new ButtonOnClickListener());
Button btnScan = (Button) findViewById(R.id.btnScan);
btnScan.setOnClickListener(new ButtonOnClickListener());
}
private final class BluetoothReceiver extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
//可以从收到的Intent对象中,将代表远程蓝牙适配器的对象取出
BluetoothDevice devices = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
}
}
final class ButtonOnClickListener implements OnClickListener {
@Override
public void onClick(final View v) {
switch (v.getId()) {
case R.id.btnTest:
// 判断adapter是否为空,null表明本机没有蓝牙设备
if (adapter != null) {
System.out.println("本机拥有蓝牙设备!!!");
// 是否启用蓝牙设备
if (!adapter.isEnabled()) {
Intent intent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivity(intent);
}
// 得到所有已经配对的蓝牙适配器对象
Set<BluetoothDevice> devices = adapter.getBondedDevices();
if (devices.size() > 0) {
for (Iterator iterator = devices.iterator(); iterator.hasNext();) {
BluetoothDevice bluetoothDevice = (BluetoothDevice) iterator.next();
System.out.println(bluetoothDevice.getAddress());
}
}
} else {
System.out.println("本机没有蓝牙设备!!!");
}
break;
// 修改蓝牙设备可见性
case R.id.btnDiscovery:
Intent intent = new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE);
intent.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION, 500);
startActivity(intent);
break;
case R.id.btnScan:
//发现一个蓝牙设备后会发送一个广播
adapter.startDiscovery();
break;
}
}
}
@Override
protected void onDestroy() {
super.onDestroy();
unregisterReceiver(receiver);
}
}
本文介绍了一个基于Android平台的蓝牙功能实现方案,通过自定义BroadcastReceiver监听蓝牙设备的搜索结果,并提供了按钮来控制蓝牙的开启、可见性和扫描等功能。文中详细展示了如何使用BluetoothAdapter进行蓝牙设备的配对和发现。
2215

被折叠的 条评论
为什么被折叠?



