
Cuando los dispositivos se emparejaron computadora <-> teléfono usando KDEConnect, ¿es posible acceder a la tarjeta SD y al almacenamiento interno del teléfono directamente desde la línea de comando?
Caso de uso:
Cuando se emparejaron los dispositivos, quiero copiar automáticamente archivos desde el teléfono (memoria interna, tarjeta SD externa) con un script. Pasos:
- Configurar dispositivos como emparejados
- Ejecutar guión
Con kdeconnect-cli
puedo obtener la ID del dispositivo así:
$ kdeconnect-cli --id-only -a
166ec0250e88ff2b
Pero no puedo acceder a él aquí:
$ ls /run/user/1000/166ec0250e88ff2b/
ls: cannot access '/run/user/1000/166ec0250e88ff2b/': Permission denied
Permisos:
[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
¿Cómo accedo al sistema de archivos de almacenamiento interno y externo del teléfono?
$ 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
Respuesta1
mconectares una implementación del protocolo KDE Connect en Vala/C disponible a través degithub.com. No necesita bibliotecas KDE y viene con un cliente que le permite compartir archivos fácilmente desde la línea de comandos, por ejemplo
mconnectctl share-file /org/mconnect/device/0 /path/to/file
Consulte la página de github vinculada para obtener más información.
Debería poder utilizarlo mconnectctl
para probar si un dispositivo específico está emparejado, por ejemplo, para un teléfono llamado Motorola Moto G Maciek
conectado a /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}'
Esto volverá true
si está emparejado y se puede usar en un script.