私がやろうとしていることの概念は簡単です。 Linuxコンピュータは、(携帯電話の)接続を自動的に受け入れるBluetoothスレーブデバイスにすることです。全体的な目標は、モバイルアプリのデータをLinuxコンピュータのPythonに自動的に接続して転送することです。私が考えるステップは次のとおりです。
まず、hciconfigを使用してBluetoothアダプタを設定しました。
sudo hciconfig hci0 noauth
sudo hciconfig hci0 name thisdevice
sudo hciconfig hci0 lm SLAVE
sudo hciconfig hci0 lm ACCEPT
sudo hciconfig hci0 sspmode 1
sudo hciconfig hci0 reset
sudo hciconfig hci0 piscan
その後、認証にBluetoothctlを使用するBluetoothプロキシが必要です。
bluetoothctl
discoverable on
pairable on
agent NoInputNoOutput
その後、携帯電話を使用して接続する必要があります。ただし、接続するには、bluetoothctlの端末にYESと入力する必要があります。 (正しいピンであるかどうかを確認します。)これは問題であり、NoInputNoOutput設定の全体的な目的を無効にします。
その後、Pybluezおよびdiscover_service関数を使用してPythonプログラムを実行できます。その後、モバイルアプリからサービスに接続できます。
これが正しいイベントの順序ですか? Bluetoothを自動的に認証する方法は? (bluezでプロキシコードを修正しますか?)
ありがとう
答え1
私は決してこのトピックの専門家ではありません。私は3日間同じことを試しましたが、ほとんど生き残れなかったと言いたいです。私は今放棄し、私のRaspberry Piを他のすべての未完成のプロジェクトの山に捨てました。
それでも私はこの地獄を通過した私の旅があなたに価値があると思いました。agent off
新しいエージェントを登録する前に、次のように入力してください。
bluetoothctl
agent off
agent NoInputNoOutput
discoverable on
pairable on
これらのコマンドを入力している間に2番目の端末で実行すると、登録しているbtmon
新しいNoInputNoOutputエージェントが表示されます。
答え2
この試み:
bt-agent -c NoInputNoOutput -d