2

私はAndroidに比較的慣れていませんが、Javaの経験があります。これは、Bluetoothとは対照的に、マルチスレッド/ハンドラーの問題である可能性があります。

ボタン付きの複数のレイアウトを持つアプリケーションを作成しています。ボタンのonClickListnersを設定しました。一部のボタンはアクティビティを変更し、新しいボタンで新しいレイアウトを表示します。その他のボタンは、Bluetooth経由で送信SPP文字列を送信します。文字列はXMLファイルで定義され、変更されません(シリアルコマンド)。BluetoothサーバーのMACアドレスをハードコーディングでき、データを送信するだけで、受信する必要はありません。

Bluetooth接続と発信送信のセットアップに至るまでの方向性に関する一般的なガイダンスを探しています。BluetoothChatの例を詳しく見てきましたが、複数のアクティビティの場合に適切なリソースがありません。

-個別のアクティビティを使用して、すべてのBluetooth送信と接続を管理し、Bluetoothメッセージを送信するすべてのケースのハンドラーを作成しますか?-すべてのアクティビティにBluetooth接続+送信スレッドを追加する必要がありますか(アクティビティを変更すると接続が失われる問題が発生するようです)?-BluetoothServiceアクティビティがアクティブ/現在のアクティビティによって促されたものを送信できるクラス固有ではないハンドラーを使用できますか?-BluetoothServiceアクティビティで送信されるすべての文字列をハードコーディングするだけで、UIアクティビティは、ボタンのクリックに基づいて要求された文字列を送信するようにBluetoothServiceアクティビティに促すことができますか?

どんな情報でも大歓迎です。一般的な方向性、小さなサンプル、またはクラスの提案だけで、正しい方向に進むことができます。

ありがとう、

ジョナサン

4

1 に答える 1

0

別のスレッドを使用してBluetooth通信を管理します。このスレッドは起動され、アプリケーション自体からアクセスできるため、すべてのアクティビティがこのスレッドにアクセスできます。ブロッキングキュー(スレッド内)を使用して、すべてのアクティビティからメッセージをキューに入れ、メッセージ(ハンドラーによってキャプチャされたインテントまたはメッセージ)を使用して応答を報告できます。

于 2010-09-15T07:02:32.097 に答える