2011-07-31 15 views
2

AndroidでBluetoothで情報をブロードキャストする方法を知りたいです。AndroidでBluetoothで情報をブロードキャストする方法は?

私はlistenUsingRfcommWithServiceRecord()のSDPレコードのサービス名を利用して情報をブロードキャストすることを考えています。しかし、私はSDPレコードのサービス名を読み取るために使用する方法を見つけることができませんでした。それを読む方法はありますか?

また、Bluetoothで情報をブロードキャストするための他の適切な方法がありますか?あなたが知っているならば、私に教えてください。本当に私のプロジェクトのためにこれを知る必要があります。ウルの助けが大いに評価されるだろう。 =)

答えて

0

残念なことに、Android Bluetooth APIでは、検出されたサービスの名前を取得するためのパブリックメソッドは提供されていません。また、ターゲットデバイス上で実行中のサービスのUUIDを取得する方法も提供しません。しかし、私自身のアプリケーションを開発するときには、UUIDを提供する隠しメソッドにアクセスするために必要なステップを詳述したthis postが見つかりました。もちろん、プライベートAPIを使用することなどはサポートされていませんが、私はそれを私のアプリで動作させることができました。それで私はプライベートAPIを使用することに反対し、(私の特定のUUIDで)私の希望するサービスに接続しようと試み、接続試行でエラーをキャッチしました。

+0

あなたの答えはたくさんあります。 =) 1.隠されたメソッドは、SDPレコードの名前ではなく、UUIDを取得するだけです。どのようにしてサービスの名前を取得できますか? 2.私が知っているように、サービスは1UUIDのみに関連付けられていますが、上記のurlのメソッドがParcelUUIDの配列を取得できることがわかります。これは、サービスが1つ以上のUUIDに関連付けられることを意味しますか? 3.どのUUIDを使用するのかわかりません.UUIDが接続しようとしているかどうかを判断できるのであれば、あらかじめUUIDを知っているわけではないからです。 – Fenixtriver

+0

あなたはそうです、私はちょっと混乱しました:-)私は私の答えを更新します。しかし、あなたの質問に答えて:1)私はAndroidでこれを行う方法を見つけることができませんでした。これにより、サービス名に基づいて私のBluetoothプロトコル全体を再編集することができました。 2)いいえ、あなたがParcelUUIDで受け取っているのは、あなたが調べているデバイスに登録されている各サービスのUUIDの集合です。 3)UUIDを取得することは、あなたが望むサービスを実行していると確信しているデバイスにのみ接続したい場合に便利です。私のアプリケーションでは、この余分なオーバーヘッドは必要ありませんでした。 – zeitkunst

+0

さて、あなたの更新を待っている間、私はいくつかについて知りたいと思います。あなたのアプリケーションに新しいBluetoothプロトコルを書いていますか?情報をブロードキャストするようにアプリを設計していますか?もしそうなら、情報をブロードキャストするためにBluetoothプロトコルが必要ですか? Android APIのどの部分が上書きされていますか? – Fenixtriver

関連する問題