如何使用命令行通过 KDEConnect 从 Android 设备访问共享

如何使用命令行通过 KDEConnect 从 Android 设备访问共享

当设备使用 KDEConnect 将计算机 <-> 手机配对时,是否可以直接从命令行访问手机的 SD 卡和内部存储?

用例:

当设备配对时,我想使用脚本自动从手机(内存、外部 SD 卡)复制文件。步骤:

  1. 将设备设置为已配对
  2. 运行脚本

kdeconnect-cli可以像这样获取设备 ID:

$ kdeconnect-cli --id-only -a 
166ec0250e88ff2b

但我无法在这里访问它:

$ ls /run/user/1000/166ec0250e88ff2b/
ls: cannot access '/run/user/1000/166ec0250e88ff2b/': Permission denied

权限:

[root@host]# ls  -la /run/user/1000/
ls: cannot access '/run/user/1000/166ec0250e88ff2b': Permission denied
...
drwx------ 9 user user 380 Nov 17 11:57 .
drwxr-xr-x 3 user user 60 Nov 17 08:07 ..
d????????? ? ?         ?           ?            ? 166ec0250e88ff2b

如何访问手机内部和外部存储的文件系统?

$ ls -la /run/user/1000/166ec0250e88ff2b/storage
total 0
dr-x------ 1 user user 0 Jan  1  1970 0000-0000/
d--x------ 1 user user 0 Feb  6  1970 emulated/
d--x------ 1 user user 0 Sep  2 20:10 self/

$ ls -la /run/user/1000/166ec0250e88ff2b/storage/0000-0000/
ls: reading directory '/run/user/1000/166ec0250e88ff2b/storage/0000-0000/': Operation not permitted
total 0

答案1

连接是使用 Vala/C 实现的 KDE Con​​nect 协议,可通过以下方式获得github.com。它不需要 KDE 库,并附带一个客户端,可让您轻松地从命令行共享文件,例如

 mconnectctl share-file /org/mconnect/device/0 /path/to/file

查看链接的 github 页面以了解更多。

您应该能够使用它mconnectctl来测试特定设备是否已配对,例如,对于Motorola Moto G Maciek已连接到的电话/org/mconnect/device/0

mconnectctl show-device /org/mconnect/device/0 | awk '/Motorola Moto G Maciek/{f=1}/Paired/{{if(f){g=1}}}f&&g{print $2;exit}'

如果配对则返回true并且可以在脚本中使用。

相关内容