Blackberry 黑莓蓝牙开发帮助
我的蓝牙应用程序已经被卡住好几天了。 它的作用是使用串行端口协议从蓝牙设备接收数据。。。 当手机和设备需要发送信息时,应用程序在后台运行,打开蓝牙并尝试发送数据帧 问题是使用此应用程序可以连接多个设备。我也没有把手机作为服务器,这样它就可以接收连续的数据。 这意味着我可以使用acceptEndOpen()创建Connector.open(“btspp:localhost:…”),但是这个函数只启动一次,我不能无休止地重新启动Blackberry 黑莓蓝牙开发帮助,blackberry,bluetooth,Blackberry,Bluetooth,我的蓝牙应用程序已经被卡住好几天了。 它的作用是使用串行端口协议从蓝牙设备接收数据。。。 当手机和设备需要发送信息时,应用程序在后台运行,打开蓝牙并尝试发送数据帧 问题是使用此应用程序可以连接多个设备。我也没有把手机作为服务器,这样它就可以接收连续的数据。 这意味着我可以使用acceptEndOpen()创建Connector.open(“btspp:localhost:…”),但是这个函数只启动一次,我不能无休止地重新启动 解决方案是启动AcceptOnDopen() 蓝牙通话结束后。。。重
解决方案是启动AcceptOnDopen() 蓝牙通话结束后。。。重新启动函数,但我不能(我只是重新创建使端口打开的对象)
我尝试使用但未成功: -PushRegistry(“btspp”不兼容) -Connector.open(),带有客户端的mac地址(但这不是自阻塞) 如果有人能帮我解决这个问题。因为我已经在黑莓论坛上彻底搜索过了 谢谢你,法布里斯
PS:如果你需要源代码,我可以给你。。。但是我不确定这是否能帮助你回答我。我刚刚把
acceptAndOpen()
:
现在一切正常。确保在从acceptAndOpen获得连接后,将该连接传递到新线程。这允许当前的“服务器”线程返回并接受另一个连接(假设它处于循环中)。很抱歉我的回答太晚了 我创建了一个类:BluetoothReceiver,它是在后台启动的()。 我的源代码中有一部分用于尝试帮助您:
public void start() {
try {
_connector = (StreamConnectionNotifier) Connector.open("btspp://localhost:" + MY_UUID, Connector.READ);
Runnable r = new Runnable() {
public void run() {
while(true) {
try {
StreamConnection connection = _connector.acceptAndOpen();
onConnectionOpen(connection);
}
catch (IOException e) {
// Connection failed
break;
}
}
}
};
Thread t = new Thread(r);
t.start();
}
catch (IOException e) {
// e.getMessage()
}
private void onConnectionOpen(StreamConnection connection) {
RemoteDevice device = null;
try {
device = RemoteDevice.getRemoteDevice(connection);
} catch (IOException e) {
// e.getMessage()
}
if(device != null) {
// Make your own process: read, write, pair, ...
}
}
你好,法布里斯
public void start() {
try {
_connector = (StreamConnectionNotifier) Connector.open("btspp://localhost:" + MY_UUID, Connector.READ);
Runnable r = new Runnable() {
public void run() {
while(true) {
try {
StreamConnection connection = _connector.acceptAndOpen();
onConnectionOpen(connection);
}
catch (IOException e) {
// Connection failed
break;
}
}
}
};
Thread t = new Thread(r);
t.start();
}
catch (IOException e) {
// e.getMessage()
}
private void onConnectionOpen(StreamConnection connection) {
RemoteDevice device = null;
try {
device = RemoteDevice.getRemoteDevice(connection);
} catch (IOException e) {
// e.getMessage()
}
if(device != null) {
// Make your own process: read, write, pair, ...
}
}