問題タブ [rfcomm]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
5 に答える
54323 参照

android - AndroidのRS232アダプターへのBluetooth RFCOMM / SDP接続

Google が提供する Bluetooth Chat サンプル API アプリを使用して、別のデバイスに接続された Bluetooth RS232 アダプターに接続しようとしています。参考にしたアプリはこちら

http://developer.android.com/resources/samples/BluetoothChat/index.html

参考までに、RS232 コネクタのスペック シートを次に示します。

http://serialio.com/download/Docs/BlueSnap-guide-4.77_Commands.pdf

問題は、次の方法でデバイスに接続するときです。

メソッドによって常にIOExceptionエラーがスローされますconnect()。例外を実行するtoStringと、「サービスの検出に失敗しました」というメッセージが表示されます。私の質問は、ほとんどの場合IOException、接続メソッドでスローされる原因は何ですか? それらがソースのどこかにあることは知っていますが、アプリを作成する Java レイヤーと、実際のスタック インターフェイスを含む C/C++ レイヤーがどのようになっているのか正確にはわかりません。C / C ++で記述されたbluez bluetoothスタックを使用していることは知っていますが、例外をスローしていると思われるJavaレイヤーにどのように結びついているかはわかりません。この問題を分析できる場所を教えていただけると助かります。

また、RS232 アダプターとは正常にペアリングできますが、実際に接続することはできません。詳細な参照用の logcat 出力は次のとおりです。

接続しようとしているデバイスは、00:06:66:03:0C:51スキャンして明らかにペアリングできるデバイスです。


以下は、ここで選択した回答によって正常に解決された同様の質問からマージされています。

Androidで別の電話以外のrfcommデバイスに接続するにはどうすればよいですか?

Android API は、listenUsingRfcommWithServiceRecord() を使用してソケットをセットアップし、createRfcommSocketToServiceRecord() を使用してそのソケットに接続する例を提供ます

BlueSMiRF Goldチップを搭載した組み込みデバイスに接続しようとしています。Android に移植したい私の作業 Python コード ( PyBluezライブラリを使用) は次のとおりです。

...したがって、接続するサービスは、SDP ルックアップなしで、単純にチャネル 1 として定義されます。

私が Android API で目にする唯一の文書化されたメカニズムは、UUID の SDP ルックアップを行うため、少し途方に暮れています。Linux ホストから「sdptool browse」を使用すると何も表示されないため、問題のチップには SDP サポートが欠けていると推測されます。

0 投票する
2 に答える
20627 参照

android - SPP Socket createRfcommSocketToServiceRecord will not connect

I want to use Android 2.1 to connect to an external Bluetooth device, wich is offering an SPP port to me. In this case it is an external GPS unit. When I'm trying to connect I can't connect an established socket while being in the "client" mode. Then if I try to set up a socket (being in the server role), to RECEIVE text from my PC everything works just fine. The Computer can connect as the client to the Socket on the Phone via SPP using the SSP UUID or some random UUID. So the Problem is not that I'm using the wrong UUID.

But the other way around (e.g. calling connect on the established client socket) createRfcommSocketToServiceRecord(UUID uuid)) just doesn't work. Sadly I don't have the time to inspect the problem further. It would be greate If somebody could point me the right way. Phone: Samsung Galaxy Spica I-5700 Android 2.1 In the following part of the Logfile has to be the Problem.

Greets PhilDev

P.S. I'm going to be present during the Office hours.

Here the log file:




0 投票する
5 に答える
63456 参照

android - .connect() の直後に Android bluetooth RFCOMM 接続が切断されないようにするにはどうすればよいですか?

この問題は解決しました!ブラッド、デニス、ジャンキーに感謝!あなたはヒーローです!:)

これは作業コードです。Zeemote に接続し、そこからデータを読み取ります。

===== コード =====

===== 元の質問 =====

2.0.1 ファームウェアを実行している Moto Droid からZeemote ( http://zeemote.com/ ) ゲーム コントローラーに接続しようとしています。以下のテスト アプリケーションはデバイスに接続しますが (LED が点滅)、その直後に接続が切断されます。

以下に 2 つのテスト アプリを貼り付けています。はい、私は 3 番目のバージョンを持っています :) 最初に ACL_CONNECTED を待ってからソケットを開きますが、その動作には何も新しいものはありません。

背景情報: bluez ツールを使用して、ラップトップから Zeemote に完全に接続できます (ログも添付されています)。DroidZeemote と通信できることは確かです。なぜなら、Market の「Game Pro」はそれで問題なく動作するからです (ただし、これはドライバー/サービスであるため、低レベルの API を使用している可能性があります)。

「adb bugreport」では、Zeemote の UUID チャネルも RFCOMM チャネルも報告されていませんが、他のすべてのデバイス (Moto HS815 ヘッドセット、「sdp ブラウズ」では何も報告されない別のダム デバイスを含む) では報告されていることに気付きました。また、デバイスの起動時、Zeemote の優先度は 0 です (その他の優先度は 100+ です)。

私はここでかなり途方に暮れています。私はアイデアを使い果たしたほど長い間それに取り組んできたので、どんな助けも大歓迎です(答えがわからなくても:) )

ありがとう、マックス

テストアプリケーション No. 1

このアプリは、実際にデバイスから読み取ろうとします。

===== コード =====

===== ログ =====

テストアプリケーション No. 2

このテストは接続して待機します。自動切断の問題を表示するのに役立ちます。

===== コード =====

===== ログ =====

システムログ

===== 端末ログ =====

===== adb バグレポートの一部 =====

===== ブートログからの抜粋 =====

0 投票する
1 に答える
372 参照

android - Android 2.0 より前の RFCOMM?

標準の SDK を使用して作成したアプリがいくつかあります。それらはすべてBluetoothを使用してRFCOMMデバイスに接続するため、現在、2.0以降のデバイスのみをサポートできます。

コードの書き直しを最小限に抑えながら、Bluetooth アプリを 2.0 より前のアプリにバックポートするには、どのようなオプションがありますか?

ありがとうございました。

0 投票する
2 に答える
5079 参照

android - OTA 2.1 を実行している HTC Droid が RFCOMM と通信できないのはなぜですか?

昨日、妻の HTC Droid で OTA Android 2.1 を受け取りました。私はついに彼女の携帯電話に自分の carputer アプリをロードすることができました。

ロードしましたが、機能しません。具体的には、接続しますが、I/O が表示されません!!!

同じ問題が発生するたびに、ペアリング、再ペアリング、および再ペアリングを繰り返しました。

接続しているデバイスは AT コマンドを使用しています。ATIデバイス ID で応答する必要があります。Moto Droid でアプリを実行すると問題なく動作しますが、HTC Droid では入力ストリーム/バッファにデータが存在しません。

個人的には、HTC のこのリリースのバグまたは制限であると確信しています (このアプリは、私の Moto A855 Droid でうまく動作するため)。

誰でもこの問題についてコメントできますか?

必須のコード スニペット:

RFCOMM UUID を定義するメンバー変数

私の connect() の一部

それから私は送信します"ATI\r"

のようなものを期待します"CAN OBD II"が、何も得られません。

mBTInputStream.available()、データが入力バッファにある場合でも、常にゼロのようです。

で表示されるように、OS によって生成されるトレース メッセージの GOBS があります。adb logcat -v time

より興味深いもののいくつか:

0 投票する
1 に答える
3432 参照

android - Android SPP Bluetooth から非 Android デバイスへ

私は gilead の成功を真似ようとしています (ここ) が、これまでのところ、私のアプリの彼のコードは失敗しています。複数の UUID を試しましたが、何も機能しません。実行すると、次のようsdptool records [address]になります。

デバイスがチャネル 1 にあることを示しているため、コードが機能しない理由がわかりません。私はAndroid 2.1を実行しています。他のデバイスにアクセスすることはできません.tmpsockのデバッグ中.connect()は、呼び出される前にすべての正しい値があります。

私のコード

0 投票する
1 に答える
2468 参照

android - Android で RFCOMM 経由でファイルを受信する

RFCOMM経由でAndroidでファイルを受信する方法を知っている人はいますか? 私はBluetoothの問題に慣れていないので、しばらくお待ちください。

RFCOMM を介してストリームとしてデータを受信し、携帯電話のどこかに保存する方法を探しています。データの保存は問題ありません。問題なく動作します。

主な問題は、接続の実装とデータの信頼性の高い検索です...

この手順全体を Android サービスとして実装する必要があります (データの受信中にアクティビティを起動する必要がないようにするため)。何をお勧めしますか: ローカルまたはリモート サービス?

グリーツ、ポエスクロン

0 投票する
0 に答える
4854 参照

android - Android 2.1 で listenUsingRfcommWithServiceRecord が失敗する: wrp_sock_create: ソケットの作成に失敗しました (権限が拒否されました)

Android (GT-I5700 では 2.1-update1)携帯電話でBluetooth サーバー ソケットを開こうとしていますが、失敗します。アイデアが尽きた。私が欠けているものについてのいくつかの指針は大歓迎です。Bluetoothはオンになっているので問題ありません。

また、パーミッションが問題ないと確信しています:

失敗するコードは非常に単純です。

そしてログ:

そのエラーはかなり醜く、グーグルでは何も見つかりません。私はまた、Androidの世界全体にまったく慣れていません。

0 投票する
1 に答える
5065 参照

android - Android Bluetooth: ソフトウェアが原因で接続が中止されました IOException?

重複の可能性:
「ソフトウェアが接続を中止しました:ソケット書き込みエラー」の公式の理由

BluetoothChat に問題があり、Droid に接続できません。私はいつもこの IOException を取得します

どうすればこの問題を解決できますか?

0 投票する
2 に答える
8384 参照

android - Android で SPP over Bluetooth を使用した場合のデータ転送エラー

Android で Bluetooth 経由の RFCOMM ソケットを使用すると、データの整合性に問題が発生します。接続に問題はありませんが、受信したデータが文字化けしており、送信されたデータと同じではありません。データは、電話機が接続されている Bluetooth アダプタを介して RS232 デバイスによって送信されます。ノートパソコンと接続すれば正常にデータを受信できるので、アダプタに問題はありません。

私の Bluetooth 接続は、Android 開発者サイト ( http://developer.android.com/resources/samples/BluetoothChat/index.html ) にあるBluetoothChatサンプル アプリケーションに基づいて処理され、変更はありません。送信されるデータは、プレーン テキストと制御文字 (ユーザーに表示される前に取り除かれます) です。私が抱えている特定の問題は、テキストの一部が欠落している、一部が繰り返されているなどです。面白いことに、端末アプリを使用してコンピューターに接続し、そこに入力すると、データが正常に送信されます。さらに、GetBlueアプリを使用してデバイスに接続すると、データは正常に受信されます。

問題は、Bluetooth データ転送を処理するために GetBlue が異なる可能性があること、または Android の RFCOMM ソケットを介して Bluetooth データを受信する別の方法があることだと思います。