Android 通过蓝牙发送文本字符串时出现异常
我正试图通过蓝牙从Nexus S向另一个android设备发送一个字符串。 代码如下:Android 通过蓝牙发送文本字符串时出现异常,android,bluetooth,Android,Bluetooth,我正试图通过蓝牙从Nexus S向另一个android设备发送一个字符串。 代码如下: public boolean onContextItemSelected(MenuItem item) { AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) item.getMenuInfo(); if(item.getItemId() == 0) { BluetoothDevi
public boolean onContextItemSelected(MenuItem item) {
AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo)
item.getMenuInfo();
if(item.getItemId() == 0)
{
BluetoothDevice selDev = pairedDevices.get(info.position);
TelephonyManager tman = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
byte[] toSend = "a text".getBytes();
try
{
BluetoothSocket socket = selDev.createInsecureRfcommSocketToServiceRecord(
UUID.fromString("00001105-0000-1000-8000-00805F9B34FB"));
OutputStream out = socket.getOutputStream();
out.write(toSend);
return true;
}
catch (Exception ex) {
ex.printStackTrace();
return false;
}
}
return true;
}
但我总是得到这样的IO异常:java.IO.IOException:传输端点未连接
怎么了?我发现使用安全连接解决了我的问题。但是在您的情况下,需要调用
connect()
来启动连接
//Just in case cancel any discovery as this slows everything down
selDev.CancelDiscovery();
//Try the secure method too. I found that worked for me.
BluetoothSocket socket = selDev.createInsecureRfcommSocketToServiceRecord(
UUID.fromString("00001105-0000-1000-8000-00805F9B34FB"));
socket.Connect();
OutputStream out = socket.getOutputStream();
您是否首先与其他蓝牙设备建立了连接?我有一个带有配对/绑定设备的列表视图,因此我必须向其中一个设备发送字符串。您需要调用实际创建套接字连接的
selDev.connect()
。但我的问题是它在那里失败了,我不知道为什么。