コマンドラインを使用して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.comKDEライブラリを必要とせず、コマンドラインから簡単にファイルを共有できるクライアントが付属しています。

 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、スクリプトで使用できます。

関連情報