银河麒麟系统手机传文件失败是因obex服务未启用或缺失,需安装bluez-obexd并启动bt-obexd服务,重启蓝牙后通过obexctl监听确认接收。

银河麒麟系统连接手机后能正常听音乐、打字,但手机端发送文件到电脑时提示“传输失败”,说明蓝牙基础连接已建立,但OBEX文件传输服务未启用或缺失,需针对性修复协议栈支持。
确认OBEX服务是否运行
麒麟OS默认安装的bluez不自带OBEX守护进程,手机传文件依赖bt-obexd服务,而该服务常被精简掉或未随bluetooth.service自动启动。
打开终端,执行命令检查OBEX服务状态:systemctl --user status bt-obexd。
若提示Unit bt-obexd.service not found,说明系统未安装OBEX组件;若显示inactive (dead),说明服务存在但未运行。
执行ps aux | grep obex,若无任何含bt-obexd或obexd的进程,【必须补装OBEX服务】,否则无法接收任何文件。
安装并启用bt-obexd服务
方法一:通过APT安装标准bluez-obexd包(推荐)
执行命令安装:sudo apt install bluez-obexd。
安装完成后,手动启动用户级OBEX服务:systemctl --user start bt-obexd。
设为开机自启:systemctl --user enable bt-obexd。
方法二:若APT源中无bluez-obexd(部分信创定制版),需手动编译安装
先安装构建依赖:sudo apt install build-essential autoconf automake libtool pkg-config libglib2.0-dev libdbus-1-dev bluez-dev。
下载bluez源码(版本需≥5.66):wget https://www.kernel.org/pub/linux/bluetooth/bluez-5.72.tar.xz && tar -xf bluez-5.72.tar.xz。
进入目录配置编译:cd bluez-5.72 && ./configure --enable-obex --prefix=/usr && make -j$(nproc)。
【关键步骤】安装前务必执行sudo make install,否则bin文件不会落进PATH。
验证并触发文件接收流程
第一步:重启蓝牙服务以加载新组件
执行:sudo systemctl restart bluetooth && systemctl --user restart bt-obexd。
第二步:确认OBEX监听端口已就绪
运行:dbus-send --session --dest=org.bluez.obex --print-reply /org/bluez/obex org.freedesktop.DBus.Introspectable.Introspect,若返回XML结构体,说明服务已注册DBus接口。
第三步:在手机端发起传输,同时在麒麟OS终端运行监听命令
执行:obexctl(注意不是bluetoothctl),等待输出类似[NEW] Transfer /org/bluez/obex/client/transfer/XXXX的日志,证明文件已进入接收队列。
此时桌面右下角会弹出文件接收提示框,点击“接受”即可保存到“下载”目录。











