大家。
我尝试在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