Bluetoothアダプタの接続が拒否されました。

Bluetoothアダプタの接続が拒否されました。

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を終了し、BluetoothLinuxコンピュータからUSB /ブルートゥースアダプタを取り外します(または内蔵アダプタがある場合はhcitool devnameをリセットにリセットします)。

Linuxでアダプタを接続/開きますbluetooth。アダプターが表示されていることを確認してください(gnome-bluetoothで設定できます - bluetoothシステムトレイアイコンを表示する必要があります)。

bluetoothAndroidデバイスを開きます。 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/sdpUbuntu(まだBluez 4を使用している14.04)と比較すると、権限が異なることを確認し、次のように設定します。

# chmod 777 /var/run/sdp

(主張せず)ついに成功しましたsdptool

源泉: https://bbs.archlinux.org/viewtopic.php?id=201672

おすすめ記事