java 蓝牙指定连接失败_在Android上使用蓝牙的服务发现失败异常

本文探讨了在Android应用中通过蓝牙连接设备时遇到的Service Discovery Failed异常。作者参考了Android官方的蓝牙聊天应用示例,但在尝试连接选定设备时遇到问题。代码显示在设备选择并尝试连接时,会触发该异常。尽管设备可以在手机上手动配对,但连接过程中的服务发现步骤似乎存在问题。作者寻求可能的解决方案和原因分析。
摘要由CSDN通过智能技术生成

我目前正在研究一种通过蓝牙连接到仪器的Android应用程序,需要编写字符串命令并接收字符串响应。目前我通过Wi-Fi进行TCP / IP连接/读/写工作,现在尝试实现蓝牙。但我遇到了一些障碍。我一直在网上搜索试图找到类似的东西的例子,并没有运气。我一直在使用Android开发人员资源示例:蓝牙聊天作为我的主要参考点。

我当前的代码似乎工作..然后它会在连接点抛出Service Discovery Failed异常。我正在使用DeviceListActivity该类来发现和选择我想要连接的设备。它返回anActivityResult,然后我的蓝牙类等待它处理它,然后连接到它。下面的代码几乎与蓝牙聊天应用程序相同。

public void onActivityResult(int requestCode, int resultCode, Intent data) {

if(!m_BluetoothAdapter.isEnabled())

{

m_BluetoothAdapter.enable();

}

switch (requestCode) {

case REQUEST_CONNECT_DEVICE:

// When DeviceListActivity returns with a device to connect

if (resultCode == Activity.RESULT_OK) {

// Get the device MAC address

String address = data.getExtras()

.getString(DeviceListActivity.EXTRA_DEVICE_ADDRESS);

// Get the BLuetoothDevice object

BluetoothDevice device = m_BluetoothAdapter.getRemoteDevice(address);

// Attempt to connect to the device

connect(device);

}

break;

case REQUEST_ENABLE_BT:

// When the request to enable Bluetooth returns

if (resultCode == Activity.RESULT_OK) {

// Bluetooth is now enabled, so set up a chat session

}

else {

// User did not enable Bluetooth or an error occured

Toast.makeText(this, "Bluetooth not enabled", Toast.LENGTH_SHORT).show();

finish();

}

}

}

这是我的连接功能:

private static final UUID MY_UUID = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB");

private void connect(BluetoothDevice device) {

m_Device = device;

BluetoothSocket tmp = null;

希望无论我做错什么都很简单,但我担心这从未如此简单。这是我第一次进行任何蓝牙开发,也许我正在做一些明显的错误...但我不知道为什么我得到服务发现失败的异常。

您可以在手机上手动配对/查找设备......它确实需要密码,但我不认为这是我遇到的问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值