android 怎么根据mac地址断开蓝牙连接 10
1个回答
2016-11-18 · 学高端技术就来八维教育
关注
展开全部
对于单片机蓝牙连接的过程中,搜索过程虽然省略了,但是连接仍然是费时间的,所有我把它单独写了一个进程来实现,以免出现黑屏的现象,同时程序里我还对bundle传值,Activity间跳转方式进行了修改。
/*
开启多线程实现蓝牙连接的耗时操作
*/
private class ConnectThread implements Runnable {
@Override
public void run() {
Message message = new Message();
BluetoothDevice device = _bluetooth.getRemoteDevice(address);
try {
_socket = device.createRfcommSocketToServiceRecord(MY_UUID);
} catch (IOException e) {
try {
message.what = FAIL;
_socket.close();
_socket = null;
} catch (IOException e1) {
e1.printStackTrace();
}
Log.e("ceshi", "ON RESUME: Socket creation failed.", e);
}
_bluetooth.cancelDiscovery();
try {
_socket.connect();
message.what = SUCCESS;
} catch (IOException e) {
try {
message.what = FAIL;
_socket.close();
_socket = null;
} catch (IOException ee) {
message.what = FAIL;
}
return;
}
connectHandler.sendMessage(message);
}
}
/*
通过handler接收蓝牙连接状态信息
*/
private class ConnectHandler extends Handler {
@Override
public void handleMessage(Message msg) {
// super.handleMessage(msg);
switch (msg.what) {
case 0:
myToast(R.string.link_fail);
break;
case 1:
Toast.makeText(getApplicationContext(), "连接" + addressName + "||" + address + "成功!", Toast.LENGTH_SHORT).show();
break;
case 2:
myToast(R.string.not_found_bluetooth);
}
}
}
/*
开启多线程实现蓝牙连接的耗时操作
*/
private class ConnectThread implements Runnable {
@Override
public void run() {
Message message = new Message();
BluetoothDevice device = _bluetooth.getRemoteDevice(address);
try {
_socket = device.createRfcommSocketToServiceRecord(MY_UUID);
} catch (IOException e) {
try {
message.what = FAIL;
_socket.close();
_socket = null;
} catch (IOException e1) {
e1.printStackTrace();
}
Log.e("ceshi", "ON RESUME: Socket creation failed.", e);
}
_bluetooth.cancelDiscovery();
try {
_socket.connect();
message.what = SUCCESS;
} catch (IOException e) {
try {
message.what = FAIL;
_socket.close();
_socket = null;
} catch (IOException ee) {
message.what = FAIL;
}
return;
}
connectHandler.sendMessage(message);
}
}
/*
通过handler接收蓝牙连接状态信息
*/
private class ConnectHandler extends Handler {
@Override
public void handleMessage(Message msg) {
// super.handleMessage(msg);
switch (msg.what) {
case 0:
myToast(R.string.link_fail);
break;
case 1:
Toast.makeText(getApplicationContext(), "连接" + addressName + "||" + address + "成功!", Toast.LENGTH_SHORT).show();
break;
case 2:
myToast(R.string.not_found_bluetooth);
}
}
}
追问
我不是要连接 我是连接到这个蓝牙后 发送数据过后,断开这个蓝牙连接
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
迪凯特科技(北京)有限公司
2023-07-28 广告
2023-07-28 广告
要从电脑的一个串行口接收数据并将其从另一个串行口发送出去,你可以使用以下步骤:1. 确定你要使用的两个串行口。在大多数计算机上,串行口通常被称为COM1、COM2等。确保你了解每个串行口的名称或编号。2. 编写一个程序来读取来自一个串行口的...
点击进入详情页
本回答由迪凯特科技(北京)有限公司提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询