質問: シンプルなBluetoothデータ受信機Android Androidプログラミングの初心者として私は質問があります: マイクロプロセッサーに接続されたブルートゥース/シリアルモジュールからデータ(2バイト)を受信したい。このデータは画面に印刷され、毎秒1回更新されます。私はこれを既に見つけました: AndroidのBluetoothを防ぐ方法.connect()の直後に死んでいるRFCOMM接続? どちらが動作するはずですが、何も起こっていません。 macアドレスを00:11:12:05:03:67に変更しました。これはBluetoothモジュールに対応する必要があります。 私は完全に間違った方向に向いていますか?私が望むものはかなり基本的なものだと思う:ブルートゥースを通した単純な片方向のデータ転送。 どんな考えも非常に高く評価されます。 ご多幸を祈る、 ケビン
回答: あなたがそこで参照した質問は、 `.createRfcommSocketToServiceRecord()`の通常の呼び出しがうまくいかない状況の回避策を提供するので非常に便利です。私は個人的に私が今やっているプロジェクトでその回避策のソリューションを使用しています。私が行うことは、最初に `.createRfcommSocketToServiceRecord()`の呼び出しを試み、それが失敗した場合、自分のコードが `.getClass()。getMethod( "createRfcommSocket"、new Class [] {int.class});` の回避策です。いくつかのBluetooth-to-serial PCBを試してみると、それらのうちのいくつかは `.createRfcommSocketToServiceRecord()`がそうでないときに動作します。 *However*... although that question you referenced does provide a very useful compact piece of code, I don't think it's the best place for you to start. The place you should start is at Android's Bluetooth documentation, which explains the whole process extremely well, including how to use separate `Threads` to handle discovery, connection, etc. In fact it's really easy to get started using the Bluetooth Chat source code. Using that, you can get up and running and connected to a Bluetooth-serial module very quickly. You just need to make sure you change the UUID to that required for Serial Port Profile (SPP): ``` private static final UUID MY_UUID = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB"); ``` それはうまくいけば、あなたのBluetoothシリアルモジュールと通信する簡単なアプリケーションがあれば十分です。また、Bluetoothチャットのサンプルアプリケーションでは、デバイスの検出、ペア設定などの操作を行うダイアログが提供されているため、デバイスのMACアドレスでハードコーディングを行う必要がありません。 接続に問題がある場合は、実際に起こっていることについて具体的に説明する必要があります。すなわち、あなたが得ている例外などです。