,可以通过以下步骤实现:
以下是一个示例代码,演示了如何以编程方式连接蓝牙设备:
import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothDevice;
import android.bluetooth.BluetoothSocket;
import android.content.Intent;
import android.os.Bundle;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import java.io.IOException;
import java.util.UUID;
public class MainActivity extends AppCompatActivity {
private static final int REQUEST_ENABLE_BT = 1;
private static final String DEVICE_ADDRESS = "00:00:00:00:00:00"; // 蓝牙设备的MAC地址
private static final UUID MY_UUID = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB"); // SPP蓝牙服务的UUID
private BluetoothAdapter bluetoothAdapter;
private BluetoothDevice bluetoothDevice;
private BluetoothSocket bluetoothSocket;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
if (bluetoothAdapter == null) {
// 设备不支持蓝牙
Toast.makeText(this, "设备不支持蓝牙", Toast.LENGTH_SHORT).show();
return;
}
if (!bluetoothAdapter.isEnabled()) {
// 请求用户授权打开蓝牙
Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT);
} else {
connectBluetoothDevice();
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_ENABLE_BT) {
if (resultCode == RESULT_OK) {
// 用户已授权打开蓝牙
connectBluetoothDevice();
} else {
// 用户未授权打开蓝牙
Toast.makeText(this, "用户未授权打开蓝牙", Toast.LENGTH_SHORT).show();
}
}
}
private void connectBluetoothDevice() {
bluetoothDevice = bluetoothAdapter.getRemoteDevice(DEVICE_ADDRESS);
try {
bluetoothSocket = bluetoothDevice.createRfcommSocketToServiceRecord(MY_UUID);
bluetoothSocket.connect();
// 连接成功,可以进行数据传输
Toast.makeText(this, "蓝牙设备连接成功", Toast.LENGTH_SHORT).show();
} catch (IOException e) {
// 连接失败
Toast.makeText(this, "蓝牙设备连接失败", Toast.LENGTH_SHORT).show();
e.printStackTrace();
}
}
}
请注意,以上示例代码仅演示了连接蓝牙设备的基本步骤,并未涉及数据传输和错误处理。在实际应用中,您可能需要进一步处理数据的读写操作,并根据具体情况进行错误处理和异常处理。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云