关于Android开发手机蓝牙连接设备的,连接时出了问题可能是客户端线程socket.connect()的问题

服务器好像没问题,但是客户端在连接后页面就直接没了//作为客户端线程代码privateclassConnectThreadextendsThread{privatefin... 服务器好像没问题,但是客户端在连接后页面就直接没了
//作为客户端线程代码
private class ConnectThread extends Thread{
private final BluetoothDevice device;
public ConnectThread(BluetoothDevice device){
this.device=device;
BluetoothSocket tmp=null;

try {

tmp =device.createInsecureRfcommSocketToServiceRecord(UUID.fromString("00001101-0000-1000-8000-00805F9B34FB"));
} catch (IOException e) {
e.printStackTrace();
}
mSocket=tmp;
}
public void run(){
bluetoothAdapter.cancelDiscovery();

try {

Message msg = new Message();
msg.obj = "请稍候,正在连接服务器:";
msg.what = STATUS_CONNECT;
handler.sendMessage(msg);
mSocket.connect();
msg.obj = "连接成功:";
msg.what = STATUS_CONNECT;
handler.sendMessage(msg);
connectedThread=new ConnectedThread(mSocket);
connectedThread.start();

} catch (IOException e) {
Message msg = new Message();
msg.obj = "连接服务端异常!断开连接重新试一试。";
msg.what = STATUS_CONNECT;
handler.sendMessage(msg);
}return;

}
public void cancel(){
try {
mSocket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
调试报错截图:
展开
 我来答
匿名用户
2016-12-14
展开全部
在sendMessage()之后,为什么又重新创建线程了?
在seneMessage()之后,直接进行后续的收发处理就可以了。
没有进行主动断开操作之前,连接一般都是维持着的,不会断开。

如果你重新创建线程,而线程里面又向服务器发起新的连接了,所以服务器接收新连接后,很可能会切断旧的连接。
不要把一个消息重复发送多次(发送队列里面已经存在了此消息)。如果想多次发送同样的内容,就创建内容一样的多个消息进行发送。
深圳市容大彩晶科技有限公司
2024-11-20 广告
作为深圳市容大彩晶科技有限公司的工作人员,可以明确告知您,**部分广告机支持网络连接和Wi-Fi功能**。具体是否支持,需根据产品型号和配置来确定。公司广告机产品功能丰富,若您有购买意向或需了解更多产品详情,请咨询我们的销售人员。 广告机代... 点击进入详情页
本回答由深圳市容大彩晶科技有限公司提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式