我尝试打开一个套接字来侦听来自非android设备的连接。Obex推送配置文件的UUID
Parcelable[] uuidExtra = device.getUuids();
String t = uuidExtra[0].toString();
t = t.toUpperCase();
Log.i("UUID: ", t);
此codesnippet会给我的蓝牙设备提供的服务的UUID。从logcat的输出是:
00001105-0000-1000-8000-00805F9B34FB
我相信这是OBEX对象推送模式的UUID。我认为这是因为该设备的制造商告诉我该设备仅支持协议:Obex Push Profile。
当我尝试在我Parcelable[]
阵列访问例如第二元素,输出只会
07-12 13:29:36.305: E/AndroidRuntime(6293): java.lang.ArrayIndexOutOfBoundsException: length=1; index=1
通过,我可以肯定地说,我的阵列只包含一个对象。
因此,以更多的Android特定蓝牙的东西。
我'使用这个UUID是这样的:
try {
tmp = adapter.listenUsingRfcommWithServiceRecord(device.getName(), UUID.fromString(t));
} catch (IOException e) {
Log.e(TAG, "FAILED BECAUSE: " + e.getMessage()); }
异常输出以下,以logcat的:
FAILED BECAUSE: Not able to register SDP record for: "name of the device"
了几个小时后,谷歌搜索这个例外,我还是想不通了解如何为设备打开侦听套接字。
有什么建议吗?提前致谢!
这似乎是在某些设备上间歇性发生的低级别蓝牙问题,大多数遇到此异常的人员通过重新启动设备或更新固件后解决了这个问题。 – BFil 2012-07-16 09:47:36
感谢您的回答,ShadowCloud!我试过重新启动手机和蓝牙设备,但没有帮助。不管怎么说,还是要谢谢你。 – 2012-07-17 11:01:57