如何使用命令/终端通过蓝牙发送/接收文件?

Aks*_*lke 13 command-line bluetooth phone transfer

我已经安装了蓝牙软件狗,并在命令的帮助下(使用终端),我想从智能手机发送和接收文件。

如何使用终端配对我的设备并通过蓝牙发送文件?

Noo*_*rep 12

发送文件

bluetooth-sendto --device=12:34:56:78:9A:BC filename
Run Code Online (Sandbox Code Playgroud)

要知道您的设备名称 (12:34:56:78:9A:BC),您可以发出以下命令:

hcitool scan
Run Code Online (Sandbox Code Playgroud)

接收文件:

还没有找到,但会告诉你是否可以使用终端完成

编辑

看起来它不能通过终端完成。Blueman似乎可以解决问题,但它在 GUI 中


pte*_*227 6

我使用 Ubuntu Bionic Beaver (18.04) 和 Android Lollipop 对此进行了测试。

  1. Ubuntu。安装所需的软件包

    sudo apt install bluez bluez-tools
    
    Run Code Online (Sandbox Code Playgroud)

    bluez-tools 附带以下工具: bt-adapter bt-agent bt-device bt-network

  2. 乌班图。打开可见性

    bt-adapter --set Discoverable 1
    
    Run Code Online (Sandbox Code Playgroud)
  3. 手机。扫描远程设备以识别您的 Ubuntu 机器。

  4. 乌班图。准备以交互方式管理传入请求

    bt-agent
    
    Run Code Online (Sandbox Code Playgroud)
  5. 配对设备:

    1. 手机。发起配对请求;

    2. 乌班图。接受来自 bt-agent 屏幕的请求。

  6. 乌班图。 通过以下方式将文件发送到智能手机:

    bt-obex -p [remote_mac] [file]
    
    Run Code Online (Sandbox Code Playgroud)

    其中 [remote_mac] 是智能手机的 mac 地址。例如:

    bt-obex -p F0:6B:CA:A2:C4:69 ~/book.pdf
    
    Run Code Online (Sandbox Code Playgroud)
  7. 从您的智能手机接收文件

    1. Ubuntu首先创建一个蓝牙文件(obex)服务器:

      bt-obex -s [path]
      
      Run Code Online (Sandbox Code Playgroud)

      [路径] 是下载文件的位置。例如:

      bt-obex -s ~/Downloads
      
      Run Code Online (Sandbox Code Playgroud)
    2. 手机。发送文件;

    3. 乌班图。接受来自 bt-agent 屏幕的请求。

  • 尽管如此,bt-obex 命令是非交互式的,要求为每个要接受的文件键入“y”,这可能很烦人。然而,由于它是一个命令行工具,你可以创建一个长文件 `yyy.txt`,只包含带有 y 字母的行,然后运行: `cat yyy.txt | bt-obex -s ~/下载`。您的计算机将通过蓝牙接受所有文件而无需询问! (2认同)
  • 或者,您可以使用 `yes` 命令 (2认同)