是否有任何方式关闭BlueCove堆栈,在我的应用程序中,用户可以随时启动、停止和重新启动蓝牙服务器,因为我可以启动服务器,侦听连接,接受来自客户端的消息。但是当我试图停止并重新启动BlueCove时,我得到的是BluetoothStateException,而不是重新启动应用程序本身。
因为关闭了我用的,
BlueCoveImpl.shutdown();还有另一件事
BlueCoveImpl blueCoveImpl = BlueCoveImpl.instance();
blueCoveImpl.setBluetoothStack(null);但两个人都不适合我。
任何做这个的想法。
编辑:当我关闭整个应用程序时,它会显示
BlueCove堆栈关闭完成
在控制台里。
谢谢。
发布于 2011-06-29 04:33:35
启动蓝牙服务器时,我将其设置为在搜索模式下可见,
LocalDevice local = LocalDevice.getLocalDevice();
local.setDiscoverable(DiscoveryAgent.GIAC);为了停止服务器,我刚刚添加了以下代码,
local.setDiscoverable(DiscoveryAgent.NOT_DISCOVERABLE);这个解决了我的问题。
发布于 2015-12-09 05:44:43
蓝牙堆栈一直在运行,直到您手动关闭它,或者直到它在程序退出时关闭。
使用com.intel.bluetooth.BlueCoveImpl中的以下命令调用手动关机
BlueCoveImpl.shutdown();从医生那里
公共静态空隙关闭() 关闭由BluetoothStacks初始化的所有BlueCove接口
您还可以使用:
公共静态空shutdownThreadBluetoothStack() 关闭为当前线程分配的BluetoothStack并清除此线程的配置属性
我可以确认这和程序结束时自动完成的任务相同.当第一次使用类似LocalDevice.getLocalDevice()的方法初始化时,您将看到控制台打印出来:
winsock上的BlueCove版本2.1.1快照
或者类似的东西。终止时,控制台打印:
BlueCove堆栈关闭完成
但是,如果在程序结束前调用shutdown(),"BlueCove堆栈关闭已完成“将不会打印。此外,再次调用LocalDevice.getLocalDevice()将再次显示第一条消息。
https://stackoverflow.com/questions/6464825
复制相似问题