以下是整理后的代码:
// 导入相关库 import android.bluetooth.BluetoothAdapter; import android.bluetooth.BluetoothDevice; import android.bluetooth.BluetoothSocket; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.Button; import android.widget.Toast; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.util.Set; import java.util.UUID; public class MainActivity extends AppCompatActivity { // 定义相关变量 private BluetoothAdapter bluetoothAdapter; private SetpairedDevices; private List devicesList = new ArrayList (); private BluetoothDevice device; private BluetoothSocket socket; private InputStream inStream; private OutputStream outStream; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 初始化蓝牙适配器 bluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); Button scanBtn = (Button) findViewById(R.id.scanBtn); scanBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // 扫描附近的蓝牙设备 pairedDevices = bluetoothAdapter.getBondedDevices(); if (pairedDevices.size() > 0) { for (BluetoothDevice bt : pairedDevices) { devicesList.add(bt.getName() + "" + bt.getAddress()); } ArrayAdapter arrayAdapter = new ArrayAdapter (getApplicationContext(), android.R.layout.simple_list_item_1, devicesList); lvDevices.setAdapter(arrayAdapter); } else { Toast.makeText(getApplicationContext(), "No Devices Found", Toast.LENGTH_LONG).show(); } } }); Button connectBtn = (Button) findViewById(R.id.connectBtn); connectBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // 连接蓝牙设备 if (device != null) { UUID uuid = UUID.fromString("0000110100001000800000805F9B34FB"); socket = device.createRfcommSocketToServiceRecord(uuid); socket.connect(); Toast.makeText(getApplicationContext(), "Connected to " + device.getName(), Toast.LENGTH_LONG).show(); // 数据传输 inStream = socket.getInputStream(); outStream = socket.getOutputStream(); } else { Toast.makeText(getApplicationContext(), "Please select a device first", Toast.LENGTH_LONG).show(); } } }); Button disconnectBtn = (Button) findViewById(R.id.disconnectBtn); disconnectBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // 关闭蓝牙连接 if (socket != null) { socket.close(); Toast.makeText(getApplicationContext(), "Disconnected from " + device.getName(), Toast.LENGTH_LONG).show(); } else { Toast.makeText(getApplicationContext(), "Please connect a device first", Toast.LENGTH_LONG).show(); } } }); } }
这段代码是一个简单的Android蓝牙通信应用的实现。主要包括初始化蓝牙适配器、扫描附近的蓝牙设备、连接蓝牙设备、数据传输和关闭蓝牙连接等功能。
关于Android平台上的蓝牙通信源码,可以以下内容来进行整理:
BluetoothAdapter
蓝牙适配器,用于获取蓝牙的状态和执行基本的蓝牙任务,如打开蓝牙,搜索设备等。
BluetoothAdapter.getDefaultAdapter()
BluetoothDevice
代表一个远程蓝牙设备,用来获取设备名称、地址等。
device.getName()
BluetoothSocket
代表蓝牙套接字,用于建立和管理蓝牙连接。
socket.connect()
UUID
通用唯一识别码,用于标识蓝牙服务。
UUID.fromString("0000110100001000800000805F9B34FB")
BluetoothClass
提供有关蓝牙设备的通用信息,如设备类型。
device.getBluetoothClass()
以上是Android平台上蓝牙通信的基本框架,可以利用这些类和接口实现不同的蓝牙通信功能。
希望以上内容对你有所帮助,如果还有其他问题,请随时提问。感谢阅读!
请评论、关注、点赞以及感谢您的观看!
评论留言