1

每个人。

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

我的客户可以从大多数安卓手机中获取电话簿。

但是当我连接到 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

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

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

但是诺基亚 N9 和 HTC G11 可以互相传输电话簿,两者都可以从安卓手机上获取电话簿。

Android 在 framework/base/obex 中实现 pbap 会话层 API

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

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

谁能给我一个答案或一些正确的代码?请帮我。

我深受这个问题的困扰。谢谢!

我的邮箱:yulf88@gmail.com

4

0 回答 0