30

シナリオは次のとおりです。

Bluetooth ドングルを備えた PC への RFCOMM ソケットを作成する Android 用のアプリケーションを作成する必要があります (サーバーも作成します)。

私の要件は、ユーザーがデバイスを手動でペアリングする必要がないことです。

実際、大きなハックで、私はcreateInsecureRfcommSocketを使用しています。

ちょっとしたシナリオ: RFCOMM ソケットを開いた状態で Linux ボックスと情報を交換する Android アプリケーションがあります。デバイスに PIN を手動で設定できます (ハードコーディングはオプションです)

私はさまざまな道を探しています:

JNI ラッパーを作成する

ここで Max Kellermannが行ったように、JNI レイヤーを記述してすべてのペアリング フェーズを作成できます。これは良いオプションですが、問題があります:

NDK 4b は libbluetooth ライブラリを提供しないため、NDK v.3 と同様に -lbluetooth が失敗します。

オプション:

  1. NDK 1.5 (lib bluetooth を含む) を見つけます。何日もウェブを検索した後、私は見つけることができませんでした。誰かが私がそれを見つけることができる場所を持っているか知っていますか?
  2. 自分で Android 用の libbluetooth をコンパイルし、-lbluetooth に使用します。幸運なことに、私はそれらを構築することができません。ヒントはありますか?

API によって公開されたものを使用する

createRfcommSocketToServiceRecordを使用して、ユーザーがデバイスを手動でペアリングしないようにする方法を知っている人はいますか? 出来ますか?サーバーはどのように記述すればよいですか?

私が知らない何か

たぶん(確かに!) 私が知らない何かがあります。多分私は何か他のものを使うことができますか?RFCOMMではありませんか?社民党?

Android API と手動でペアリングできますか?

質問するだけでなくても、十分に明確であることを願っています。繰り返しますが、初めてではないので、私はあなたの手にあります:)

すべてのサポートに感謝します!

4

3 に答える 3

2

最後に、私はあなたができないと言うことができます.

ラッパーを使用したり、C モジュールを作成したりする方法を見つけたとしても、Android の進化により、使用しているものが変わる可能性があります。

そして、選択肢はありません。悲しいことに。

Android Bluetooth API が今後どのように変化するか見てみましょう。

于 2011-02-20T13:22:41.403 に答える
-2

Android Bluetooth APIは完成しておらず変化する。自己責任。このクラスは、BluetoothRFCOMMレイヤーへのAPIを実装します。RFCOMMソケットは、アドレスとポート番号を受け取るという点で通常のソケットに似ています。違いはもちろん、アドレスがBluetoothデバイスのアドレスであり、ポート番号がRFCOMMチャネルであることです。APIを使用すると、メソッドbind、listen、acceptを介してリスニングソケットを確立したり、connect、connectAsync、waitForAsyncConnectを使用して発信接続を確立したりできます。ソケットを作成したら、それを作成し、使い終わったら破棄する必要があります。作成と受け入れの両方で、実際のデータのFileDescriptorが返されます。または、getInputStreamとgetOutputStreamを呼び出して、FileDescriptorを経由せずにそれぞれのストリームを取得することもできます。

于 2011-01-21T05:52:02.550 に答える