Android官方文档是最好的参考资料,跟着文档一步步的,学习起来不难。
手机蓝牙需要硬件支持,有的Android手机有蓝牙支持,但无法开启,无法勾,原因有很多种(水货,刷机)
1. 添加权限
<uses-permission android:name="android.permission.BLUETOOTH" />
2. 得到蓝牙配置器
BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();
if (adapter != null && !adapter.isEnabled()) { //如果adapter为空,表示手机不支持蓝牙,isEnabled 为false表示未开启蓝牙
Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE); //请求开启蓝牙,将会显示一个对话框
startActivityForResult(enableBtIntent, 100);
}
3. 得到可用的蓝牙设备(就是附近开启蓝牙的手机)
Set<BluetoothDevice> deviceList = adapter.getBondedDevices();
if (deviceList != null) {
for (BluetoothDevice bluetooth : deviceList) {
}
}
4. 数据传输使用蓝牙Socket
try {
BluetoothServerSocket serverSocket = adapter.listenUsingInsecureRfcommWithServiceRecord("MYBLUE", UUID.randomUUID());
BluetoothSocket socket = null;
while ((socket = serverSocket.accept()) != null) { //得到其他设备请求
if (!running) {
break;
}
}
} catch (IOException e) {
e.printStackTrace();
}
建立一个Server,别的手机便可以连接指定的uuid上,进行数据传输。 用法与java.net.ServerSocket 一样。