Mit iSync kann man unter anderem Mobiltelefone, die über eine Bluetoothschnittstelle verfügen und von der Software unterstützt werden synchronisieren, d. h. dass die Adressen, Telefonnummern und Kalendereinträge mit iCal bzw. dem Adressbuch abgeglichen werden.
Normalerweise erfordert dies, dass der User das iSync Programm aufruft und diesen Vorgang manuell anstößt. Mit AppleScript und dem LaunchDaemon lässt sich dieser Vorgang automatisieren. Folgendes AppleScript startet die Anwendung iSync, führt die Synchronisierung durch, schreibt einen Eintrag in ein Logfile, der Auskunft über erfolgreiches bzw. nicht erfolgreiches Synchronisieren gibt und beendet iSync anschließend.
tell application "iSync" synchronize repeat while (syncing is true) delay 5 end repeat set syncStatus to sync status if syncStatus = 2 then set syncStatus to "completed successfully" else if syncStatus = 3 then set syncStatus to "completed with warnings" else if syncStatus = 4 then set syncStatus to "completed with errors" else if syncStatus = 5 then set syncStatus to "last sync cancelled" else if syncStatus = 6 then set syncStatus to "last sync failed to complete" else if syncStatus = 7 then set syncStatus to "never synced" end if set theDate to (current date) as string set logfile to (open for access file "Users:username:log:isync.log" with write permission) try write (theDate & " Sync status: " & syncStatus & {ASCII character 10}) to logfile starting at eof close access logfile on error close access logfile end try quit end tell
Damit dieses AppleScript nun regelmäßig ausgeführt wird, d. h. der Benutzer sich nicht mehr darum kümmern muss, ist ein plist file im der Library des Benutzers anzulegen, dass den Launchdaemon (Apples Ersatz für cron) veranlasst das Script auszuführen. Der Ablageort des files ist ~/Library/LaunchAgents/. Das plist file sieht folgendermaßen aus, wobei username den Kurznamen des Benutzers und 3600 das Startintervall in Sekunden, also stündlich in diesem Fall, angibt:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>local.username.bluetoothisync</string> <key>OnDemand</key> <true/> <key>ProgramArguments</key> <array> <string>osascript</string> <string>/Users/username/apple_script/iSync synchronize.scpt</string> </array> <key>StartInterval</key> <integer>3600</integer> </dict> </plist>
Attach:plist_bluetooth_sync.png Δ