2011-01-19 24 views
1

まず、手動で事前にペアリングしていれば、Bluetoothでデバイスにプログラムで接続することができます。しかし、変更されていないサンプルのAndroid Bluetoothコードを使用していても、(対応している、明らかに)対応していないデバイスと接続する(ユーザーフレンドリーな)方法は見つかりませんでした。Android Bluetooth開発 - 未対応のデバイスに接続する

私はデバイスのパスキーの入力をユーザーに要求するペアリングダイアログボックスをポップアップしたいと思います。私のコード、およびサンプルAndroidのBluetoothのコードで何が起こるか、

device.createRfcommSocketToServiceRecord(MY_UUID); 

発見Bluetoothデバイスとのソケットを作成すると、画面上部の通知バーに通知を追加するということです。ただし、ユーザーが新しい通知に気付くことはほとんどありません(私は知っていませんでした)。

このペアリングダイアログボックスを表示して、パスキーの入力を促すメッセージを表示するにはどうしたらいいですか?

+1

自動的にペアのないデバイスに私を接続している場合、私はあなたのプログラムを望んでいません。私はそのようなセキュリティの欠陥が存在しないことを願っています。 –

答えて

0

これを行うにはBlueCoveライブラリを使用できます。しかし、それはネイティブコンポーネントを必要とするので、あなたが望むよりも少し重いかもしれませんが、代わりにあなたの携帯電話でBluetoothへの実際のアクセスを提供します。

Tim:悪意のあるアプリがこのメカニズムを悪用する可能性はありますが、従来のPINベースの認証方式(たとえばWiiMoteなど)はまったくサポートしていないデバイスがあります。

0

私はこれについていくつかのスレッドを見たことがありますが、実際には良い答えが見つかりませんでした 答え。

を読み取り、データを書き込むために、ネクサス1をBluetooth Sppサーバデバイスに接続しています。私はペアリングダイアログを(私は良いアイデアを検討する)UIスレッド からの接続の確立をオフロードした場合、私は(ピンを入力してください)以下の

  1. 発見したいくつかの実験をした後

    は です表示されない - 通知項目が表示され、ユーザーは をクリックしてデバイスをペア設定する必要があります。私は、UIスレッド内からの接続を確立する場合

  2. はその後 ペアリングダイアログが前面に来るが、これを待っている間に、明らかに 小さな醜いUIポーズがあります。接続を確立するための要求は、ユーザーの前に をタイムアウトされたいずれの場合も

(私)はIOExceptionサービス 発見でピンを入力することができませんでした。

私の理想は、ペアリングの入力を待つ間にペアリングのダイアログが前面に来ること( はUIスレッドをブロックする必要がない)で、接続の試行が になっていないことです。

他の誰かがこの作業を行う方法を考案しましたか?

関連する問題