1

みんな。

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 から電話帳を取得できません。

Nokia N9 を試してみましたが、HTC G11 と同じです。Nokia N9 も応答コード 211 を返します。

しかし、Nokia N9 と HTC G11 はお互いに電話帳を転送でき、どちらも Android フォンから電話帳を取得できます。

Android は、framework/base/obex で pbap セッション レイヤー API を実装します

HTC G11 は標準の Android セッション レイヤー API を使用していないと思います。

しかし、それは何を使用しますか?ノキアN9はどうですか?

誰かが私に答えや正しいコードを教えてもらえますか? 私を助けてください。

私はこの問題にかなり苦しんでいました。ありがとう!

私のメールアドレス: yulf88@gmail.com

4

0 に答える 0