43 votes

Comment utiliser AirDrop depuis le terminal ?

Existe-t-il un moyen de partager un fichier par AirDrop via Terminal sur Mountain Lion ? Comment ?

8voto

Tgr Points 293

Je n'ai pas (encore) trouvé le moyen de envoyer fichiers via Airdrop en utilisant le terminal, mais vous pouvez configurer votre ordinateur pour recevoir via Airdrop en utilisant le shell script suivant :

#!/usr/bin/osascript
tell application "Finder"
    activate
    tell application "System Events" to keystroke "R" using {command down, shift down}
end tell

8voto

Pierz Points 2729

Il existe désormais une version open-source d'AirDrop, connue sous le nom de OpenDrop qui fonctionnera sur MacOS et Linux - il permet d'envoyer et de recevoir des fichiers sur la ligne de commande avec d'autres appareils compatibles AirDrop/OpenDrop (par ex. OpenDrop peut fonctionner sur un Raspberry Pi ). Pour envoyer un message, vous devez d'abord découvrir les appareils disponibles, par ex.

opendrop find

Le récepteur choisi est sélectionné (par index , ID o name ) et un fichier est envoyé :

opendrop -r id -f /path/to/some/file

La réception des fichiers est plus simple - les fichiers seront téléchargés dans le répertoire courant :

opendrop receive

4voto

Potr Czachur Points 1556

Il existe un outil sur Github appelé partage de terminal qui prétend offrir cette fonctionnalité :

terminal-share -service airdrop -image path/to/image.jpg

Mais je ne vois pas bien comment on peut spécifier une destination

4voto

lnaef Points 31

Vous pouvez le faire en utilisant Cuillère à marteau . Ce n'est pas complètement automatique puisque vous devez encore sélectionner votre téléphone.

opendrop ne fonctionne pas sur l'iPhone malheureusement.

J'ai écrit un article de blog à ce sujet

Ajoutez les éléments suivants à votre init.lua

local hex_to_char = function(x)
  return string.char(tonumber(x, 16))
end

local unescape = function(url)
  return url:gsub("%%(%x%x)", hex_to_char)
end

hs.urlevent.bind("airdrop", function(eventName, params)
    local file = unescape(params["f"])
    print(file)
    local url = hs.sharing.fileURL(file)
    local ad = hs.sharing.builtinSharingServices.sendViaAirDrop
    local s = hs.sharing.newShare(ad)
    s:shareItems({url})
end)

Ceci construira un point final à l'URL personnalisée de hammerspoon qui peut recevoir des noms de fichiers en entrée.

Ensuite, vous pouvez créer un script comme ceci

#! /usr/bin/bash

rawurlencode() {
  local string="${1}"
  local strlen=${#string}
  local encoded=""
  local pos c o

  for (( pos=0 ; pos<strlen ; pos++ )); do
     c=${string:$pos:1}
     case "$c" in
        [-_.~a-zA-Z0-9] ) o="${c}" ;;
        * )               printf -v o '%%%02x' "'$c"
     esac
     encoded+="${o}"
  done
  REPLY="${encoded}" 
}

rawurlencode "$@"

/usr/bin/open -g "hammerspoon://airdrop?f=${REPLY}"

Cela permettra de coder l'URL et de l'envoyer à l'adresse suivante airdrop URL personnalisée que nous avons enregistrée avec hammerspoon.

Sauvegardez-le quelque part comme airdrop dans votre $PATH , chmod +x (rendre exécutable), et ensuite vous pouvez airdrop <myfile>

3voto

Oskar Points 1242

Non - la fonctionnalité est programmée dans le système d'exploitation de base et ne dispose pas de crochets officiels fournis par Apple via la ligne de commande.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X