この質問は以前に要求された可能性がありますが、どのように機能するかを見つけることができません。
これまで私が見つけたもの(失敗したもの)は次のとおりです。
- obexushを使用してください(対応するコマンドは存在せず、最も近い一致はobex_pushです)。
- obexftpdの使用に失敗し、「SDPサーバーの登録に失敗しました」接続を待っています。何も起こらず、ファイルを受け取ることができません。
- sdptool add --channel=12 OPUSHのためobex_pushも失敗しました(12はhcitoolで検索して見つけた私の携帯電話のOPUSHチャンネルです)。
これまではbluetoothctlを使って自分のデバイスをペアリングして接続し、「信頼」することができ、オーディオとインターネット接続を自分のコンピュータにストリーミングできますが、それはすべてです。携帯電話からコンピュータにファイルを送信する方法が見つからないようです。これを行う方法はありますか?それとも、少なくともこれらすべてがどのように機能するかについての参照はありますか?
答え1
さて、それでうまくいきました。それは単にbluez 5の問題であり、bluez 4との下位互換性が欠けているということです。私が知っている限り、まず次のようにSDPリスナー、サービスなどを追加する必要があります。sdptool add OPUSH
PCが着信電話を受信するには雄牛を押すメッセージ、バスsdptoolにはbluez 4 APIが必要なため、サービスを作成できません。私はsdptool browse local
これも失敗したのでこれに気づき、調査をしながらbluez 4/5について学びました。これがobex_push
失敗の理由でもあるobexftp
。最後に、解決策は--compat
実行可能ファイルに引数を追加するか、システムファイル(私の場合)に引数を追加することで互換モードでデーモンを起動することでした。
vi /usr/lib/systemd/system/bluetooth.service
[サービス]から:
ExecStart=/usr/libexec/bluetooth/bluetoothd
->ExecStart=/usr/libexec/bluetooth/bluetoothd --compat
実際には、デフォルト設定を含むbluetooth.serviceとcompatフラグを含むbluetooth-compat.serviceという2つの別々のサービスファイルを作成してデフォルトに設定しました。
]# systemctl disable bluetooth.service
]# systemctl enable bluetooth-compat.service
デーモンを再起動したところ、sdptoolが正常に動作し、いくつかの中間サイズファイル(5MB)を送信しました。途方もない。