关于Windows蓝牙“启用发现”控制的奇怪问题

   近日在做基于Windows的蓝牙程序开发时,需要使用程序来开启蓝牙的“启用发现”,即使用API函数BluetoothEnableDiscovery。结果发现了如下问题:
   1. 无论程序中通过BluetoothEnableDiscovery对“启用发现”作出如何的控制,程序退出后仍然回到之前“启用发现”的状态。
   2. 正常情况下,程序可以对“启用发现”作出控制。但是,当用户使用控制面板中的蓝牙控制对“启用发现”做出操作后,程序中再次使用BluetoothEnableDiscovery进行控制时,该函数返回是成功,但是你会发现其实并没有起作用。而手工使用控制面板中的蓝牙控制仍然可以正常的进行控制。
   3. 当你的程序运行中,蓝牙装置进行了拔插的操作后,程序就无法通过BluetoothEnableDiscovery进行操作了。
   4. 控制函数BluetoothEnableIncomingConnections不存在如上的问题。

   在网上查了一下,发现国外也有人提出此类问题,但是没有人做出回答。我估计,是不是因为“启用发现”与进程的控制域有关,系统的控制域大于进程的控制域,因此当系统作出了操作后,进程就没有权限进行控制了。现在也只能这样解释了,不知道哪位高人看到我这篇文章后可以给出合理的解释和解决方案。

posted on 2007-07-11 23:30 追梦时代 阅读(212) 评论(1)  编辑 收藏 引用

评论

# re: 关于Windows蓝牙“启用发现”控制的奇怪问题 2008-08-18 10:35 ukyocxl

想请教大哥一个问题,小弟近日也在做基于Windows的蓝牙程序开发。在做PC作为服务端接收文件时发现一个奇怪的问题。我是用VC开发的(PSDK2003)
当我用HP iPaq,N73向PC发送文件时,他们可以找到我的PC,但是用SONY的手机,或Nokia 6270向PC发送文件时,他们都找不到我的PC,但是他们可以在配对设备时找到我的PC。我可是都开了启用发现的。
另外我发现如果我用WINDOWS自带的蓝牙程序,当我没有选“接收文件”时SONY和Nokia 6270发送文件时也找不到我的PC,只有在选了“接收文件”后他们就可以找到了。。。相当的奇怪。不知在发布服务的时候缺了什么?望指点!  回复  更多评论   


标题  
姓名  
主页
验证码 *
内容(提交失败后,可以通过“恢复上次提交”恢复刚刚提交的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
[使用Ctrl+Enter键可以直接提交]
相关链接:
网站导航:
<2008年8月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
31123456

导航

统计

常用链接

留言簿(3)

随笔档案

文章档案

搜索

积分与排名

最新随笔

最新评论

阅读排行榜

评论排行榜