Android携帯にシリアルデータを転送したいBluetoothアダプタ(約2ドル)があります。
私は以下をインストールしました:
sudo apt-get install bluetooth bluez-utils blueman
スキャン中にAndroidデバイスを見つけました。 (これはドングルが動作していることを意味するようです。)
hcitool scan
その後、私はこれを実行しました:
sudo bluez-simple-agent hci0 xx:xx:xx:xx:xx:xx
このファイルを編集しました。/etc/bluetooth/rfcomm.conf
これに関して:
rfcomm1 {
bind yes;
device xx:xx:xx:xx:xx:xx;
channel 1;
comment "Connection to Bluetooth serial module";
}
しかし、走っている間
sudo rfcomm connect 1
、入力中です( ' Can't connect RFCOMM socket: Connection refused
'ステータス
問題は何ですか?
ベストアンサー1
今は仕事をしているようです。
Bluetooth
ちょっとトリッキーなようですね。他の人が役に立つと思う場合に備えて、全体のステップを見てみましょう(私が最初に試したのとほぼ同じですが)。これは、Nexus 4のAndroid JB(4.2.2)とArch Linux 3.6.7-1、Gnome 3.6のbluez 4.101(gnome-bluetoothを含む)で動作します。(この手順はおそらく役に立ちません。)Androidを終了し、
Bluetooth
LinuxコンピュータからUSB /ブルートゥースアダプタを取り外します(または内蔵アダプタがある場合はhcitool devnameをリセットにリセットします)。Linuxでアダプタを接続/開きます
bluetooth
。アダプターが表示されていることを確認してください(gnome-bluetoothで設定できます -bluetooth
システムトレイアイコンを表示する必要があります)。
bluetooth
Androidデバイスを開きます。 Androidを使用してアダプタとペアリングします(Linuxでは反対方向にペアリングできません)。キーの入力を求めるダイアログボックスが表示されます。希望のPINを入力してください。 Gnomeは、以前に入力したのと同じPINを入力するように通知します。これで、Androidデバイスとキーがペアリングされました。
Linuxでは、ターミナルを開き、bluetooth
次のように入力して利用可能なサービスを確認します。
sdptool browse local
すでにシリアルポートサービスがある場合は、そのサービスがどのチャネルであるかを記録してください。そうでない場合は、サービスを追加できます。
sdptool add --channel=22 SP
次に、次のコマンドを使用してチャンネルを聞きますrfcomm
。
sudo rfcomm listen /dev/rfcomm0 22
rfcomm
ブロックし、次のメッセージの接続を受信します。
Waiting for connection on channel 22
AndroidではBlueTermアプリ(http://pymasde.es/blueterm/、Google Playストアでも無料で利用できます)、同様のアプリであればすべて機能します。 BlueTermを開き、オプション/デバイス接続に移動して、ペアリングされたアダプタを選択します。
アプリが接続されることを願っています。リスニングをブロックした端末には、次のメッセージとともに追加の検証が表示されます。
Waiting for connection on channel 22
Connection from 22:22:22:22:22:22 to /dev/rfcomm0
Press CTRL-C for hangup
BlueTermアプリケーションに入力するすべての内容が表示されます/dev/rfcomm0
。新しい端末を開いて次の操作を行うと、入力時に表示される内容を確認できます。
cat /dev/rfcomm0
源泉: LinuxでBluetoothシリアルポートに接続してデータを送信するには?
包装について議論したいと思います。ブルースそしてbluez-utilsのツール、引っ越した後ランツ5たとえばsdptool
(この質問と同じ)、
$ sdptool browse local
Failed to connect to SDP server on FF:FF:FF:00:00:00: No such file or directory
これは、Bluez 5がソケット/var/run/sdpを介した通信に古いCインタフェースを使用しなくなり、そのソケットが存在しなくなったためです。 bluetoothdのヘルプメッセージは解決策を提供します。
$ /usr/lib/bluetooth/bluetoothd --help
...
-C, --compat Provide deprecated command line interfaces
私はこれを次のように適用します。
# nano /etc/systemd/system/dbus-org.bluez.service
良い:
ExecStart=/usr/lib/bluetooth/bluetoothd --compat
muruのコメント:上記で編集されました↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
systemctl edit dbus-org.bluez.service
サービスファイルを直接編集するのではなく、パッケージの更新時に失われないオーバーレイファイルを作成するために使用されます。
それから:
# systemctl daemon-reload
# systemctl restart bluetooth
言うまでもなく、この編集内容はbluezが更新されるたびに戻されます。今/var/run/sdpが存在しますが、sdptoolはまだ破損しています。
$ sdptool browse local
Failed to connect to SDP server on FF:FF:FF:00:00:00: Permission denied
/var/run/sdp
Ubuntu(まだBluez 4を使用している14.04)と比較すると、権限が異なることを確認し、次のように設定します。
# chmod 777 /var/run/sdp
(主張せず)ついに成功しましたsdptool
。