每个人。
我尝试在 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