![]() |
AW: Datenaustausch mit Mobilgeräten
Zitat:
|
AW: Datenaustausch mit Mobilgeräten
Warum nimmst Du nicht die iCloud ?
|
AW: Datenaustausch mit Mobilgeräten
Wie mache ich das konkret?
|
AW: Datenaustausch mit Mobilgeräten
So, ich habe nun herausgefunden wie das mit der iCloud geht. Basis ist
![]() Abweichend von den push-Notifications muß die entitlements wie folgt aussehen, wobei die XXXXXXXXXX mit der Developer-Program-ID und das com.domain.appname durch den CFBundleIdentifier ersetzt werden müssen:
Code:
Die Cloud stellt sich dann als Verzeichnis dar, dessen Namen man so ermittelt:
<?xml version="1.0" encoding="UTF-8"?>
<plist version="1.0"> <dict> <key>application-identifier</key> <string>XXXXXXXXXX.com.domain.appname</string> <key>com.apple.developer.ubiquity-container-identifiers</key> <array> <string>XXXXXXXXXX.com.domain.appname</string> </array> <key>get-task-allow</key> <true/> </dict> </plist>
Delphi-Quellcode:
Man kann Dateien in diesen Pfad einfach hineinkopieren:
function GetiCloudPath : string;
var nsFile: NSFileManager; URL: NSURL; begin nsFile := TNSFileManager.Wrap(TNSFileManager.OCClass.defaultManager); URL := nsFile.URLForUbiquityContainerIdentifier(nil); if (URL <> nil) then Result := UTF8ToString(URL.path.UTF8String) else Result := ''; end;
Delphi-Quellcode:
Der Beweis, dass es funktioniert, kann man auf dem Mac in den iCloud-Einstellungen erbringen. Wenn man dort auf "Verwalten" geht, wird eine so kopierte Datei angezeigt. Auch in den iOS-Einstellungen auf dem Gerät zeigt sich das unter "Speicher & Backup > Speicher verwalten". Dort wird der vergebene app-name (aus dem Bundle-Identifier) angezeigt und der belegte Speicherplatz.
procedure SaveToICloud(AFileName);
var ACloudPath : string; begin ACloudPath := GetiCloudPath; if ACloudPath <> '' then begin TFile.Copy(AFileName, IncludeTrailingPathDelimiter(ACloudPath)+ExtractFileName(AFileName)); end; end; Nachteil, der das (jedenfalls zum Datenaustausch) ziemlich unbrauchbar macht: Ohne Tricks kann man auf diese Dateien nicht zugreifen, da sie app-spezifisch verwaltet werden. Der Trick ist, eine app auf dem Mac zu starten, die iCloud-Zugriff hat. Dadurch wird ein Dienst gestartet, der den iCloud Ordner in der User-Library einbindet. Die Daten findet man dann unter
Code:
wobei wieder die gleichen Ersetzungen gemacht werden müssen wie bei den Entitlements.
~/Library/Mobile Documents/XXXXXXXXXX~com~domain~appname
Ziemlich unbrauchbar das Ganze, vor allem für Nicht-Programmierer und Mac-Nutzer. |
AW: Datenaustausch mit Mobilgeräten
Zitat:
Wie sieht es denn unter Windows aus? Die Fotos stehen ja in einem Windowsordner bereit. Wie ist das mit den "eigenen" Ordnern? Mavarik |
AW: Datenaustausch mit Mobilgeräten
Keine Ahnung, ich habe keine iCloud-Systemsteuerung. Das SkyDrive arbeitet genauso blöd. Aber da kann man wenigstens über ein Webinterface an alle Dateien ran.
|
AW: Datenaustausch mit Mobilgeräten
Zitat:
![]() |
AW: Datenaustausch mit Mobilgeräten
Wenn ich aus einer app was in Skydrive schicke, zeigt sich das nicht auf meinen PC's die das selbe SkyDrive-Konto haben. Nur über das Webinterface. Egal ob ich die Public mach oder share. Damit ist die Bequemlichkeit dahin.
|
AW: Datenaustausch mit Mobilgeräten
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:11 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz