设置蓝牙服务名称时的Android问题
问题描述:
我正在开发一个用作蓝牙外部设备(通信由外部设备启动)的蓝牙服务器的应用程序。从蓝牙服务,我部署一个具体的服务名称(“PWAccessP”)这个外部设备的请求,于是我开始用下面的指令将ServerSocket:设置蓝牙服务名称时的Android问题
serversocket = Activa.myBluetoothAdapter.listenUsingRfcommWithServiceRecord("PWAccessP", UUID.fromString("00001101-0000-1000-8000-00805F9B34FB"));
但是,当一个测试应用程序搜索蓝牙服务用我的手机给我,我得到了以下日志:
search services on 38E7D82E98F8 HTC Desire
service Unknown found btspp://38E7D82E98F8:22;authenticate=false;encrypt=false;master=false
“未知”的服务名称,表明所提供的服务的名称是未知的。我检查过这个服务是我正在部署的服务。
我工作的手机是HTC Desire。
有谁知道可能是什么问题?
在此先感谢。
答
也许问题与android 2.1有关。用'PWAccessP'作为服务名创建新服务是没有问题的。 也许你应该尝试使用android 2.2设备。
只是为了让你知道,PWAccessP设备将存储来自前面连接的RFCOMM通道号,并使用该号码连接到SPP服务器设备。所以如果您的Android SPP应用程序重新启动并注册一个新的RFCOMM chanel编号,连接将失败,并且PWAccess设备将再次重新启动查询过程。这是设备上的问题。正确的,它应该在进行RFCOMM连接之前先执行SDP查询,但它没有。