Android蓝牙pbap获取请求失败

时间:2012-09-29 02:48:26

标签: android bluetooth obex

大家。

我尝试在Android平台上实现pbap客户端。

我的客户可以从大多数Android手机上获取电话簿。

但是当我连接到HTC G11时,它无法正常工作。

我的主要代码如下:

mSocket = mDevice.createInsecureRfcommSocketToServiceRecord(ParcelUuid.fromString(PBAP_UUID).getUuid());  //it's OK here


mSocket.connect();  //it's OK here


mClientSession = new ClientSession(transport);  //it's OK here

HeaderSet request_conn = new HeaderSet();
request_conn.setHeader(HeaderSet.TARGET, PBAP_TARGET);
HeaderSet return_header = mClientSession.connect(request_conn); //it's OK here

当调用mClientSession.connect(request_conn)时,远程设备会给出响应代码OBEX_HTTP_OK。

这意味着远程设备接受了我的pbap连接请求。

但问题出现之后。

HeaderSet request_get = new HeaderSet();
request_get.setHeader(HeaderSet.NAME, name);
request_get.setHeader(HeaderSet.TYPE, type);
mGetOperation = (ClientOperation)mClientSession.get(request_get);
mInputStream = mGetOperation.openInputStream();  // problem come out here

我向远程设备发送get请求但远程给出响应代码211,这意味着 OBEX_SERVICE_UNAVAILABLE。所以我无法从htc G11获得电话簿。

我尝试诺基亚N9,与HTC G11相同。诺基亚N9也提供了响应代码211。

但是诺基亚N9和HTC G11可以互相转移电话本, 他们俩都可以从Android手机上获取电话簿。

Android在framework / base / obex

中实现pbap会话层API

我猜HTC G11不使用标准的android会话层API。

但它有什么用?诺基亚N9怎么样?

任何人都可以给我一个答案或一些正确的代码吗?请帮帮我。

我经常遇到这个问题。 谢谢!

我的电子邮件:yulf88@gmail.com

0 个答案:

没有答案