
Quando os dispositivos foram emparelhados com o computador <-> telefone usando o KDEConnect, é possível acessar o cartão SD e o armazenamento interno do telefone diretamente da linha de comando?
Caso de uso:
Quando os dispositivos foram emparelhados, quero copiar automaticamente os arquivos do telefone (memória interna, cartão SD externo) com um script. Passos:
- Definir dispositivos como emparelhados
- Executar script
Com kdeconnect-cli
eu posso obter o ID do dispositivo assim:
$ kdeconnect-cli --id-only -a
166ec0250e88ff2b
Mas não consigo acessar aqui:
$ ls /run/user/1000/166ec0250e88ff2b/
ls: cannot access '/run/user/1000/166ec0250e88ff2b/': Permission denied
Permissões:
[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
Como faço para acessar o sistema de arquivos de armazenamento interno e externo do telefone?
$ 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
Responder1
Mconectaré uma implementação do protocolo KDE Connect em Vala/C disponível viagithub.com. Ele não precisa de bibliotecas do KDE e vem com um cliente que permite compartilhar facilmente arquivos a partir da linha de comando, por exemplo
mconnectctl share-file /org/mconnect/device/0 /path/to/file
Veja a página vinculada do github para mais informações.
Você deve poder usar mconnectctl
para testar se um dispositivo específico está emparelhado, por exemplo, para um telefone chamado 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}'
Isso retornará true
se estiver emparelhado e pode ser usado em um script.