API für Android
Die API für Android basiert auf Java. Dieser Artikel fasst die Citrix Endpoint Management™ APIs nach Funktionen zusammen und stellt die API-Definitionen bereit.
-
App-Verwaltung:
- isManaged
- isWrapped
MDX-Richtlinien:
- getPoliciesXML
- getPolicyValue
-
setPolicyChangeMessenger
-
Gemeinsamer Tresor:
- MDXDictionary
Benutzerdaten:
-
getUserName
-
Klasse com.citrix.worx.sdk.MDXApplication
Methoden
-
isManaged
public static boolean isManaged (Context context)
Prüft, ob die App derzeit von MDX verwaltet wird, was bedeutet, dass die Citrix Secure Hub™ App auf dem Gerät installiert ist und Citrix Endpoint Management-Richtlinien für Ihre App erzwungen werden. Die Endpoint Management-Backend-Infrastruktur (Schlüsseltresore) wird nach partiellen Datenverschlüsselungsschlüsseln (Secrets) abgefragt, die MDX zur Verschlüsselung von Anwendungsdateidaten verwenden wird. Gibt true zurück, wenn die App verwaltet wird.
Nicht verwaltete Premium-Apps verwenden die Endpoint Management-Richtliniendefinitionen, die unter Applications/Citrix/MDXToolkit/data/MDXSDK_Android/default_sdk_policies.xml angegeben sind. Richtlinien werden für nicht verwaltete allgemeine Apps nicht erzwungen.
Parameter
context – Der Android-Kontext, der diesen Aufruf tätigt.
-
Beispiel
boolean bIsManaged = MDXApplication.isManaged(context); -
isWrapped
public static boolean isWrapped (Context context)
Gibt true zurück, wenn die App mit dem MDX Toolkit gewrappt ist.
Parameter
context – Der Android-Kontext, der diesen Aufruf tätigt.
Beispiel
boolean bIsWrapped = MDXApplication.isWrapped(context); -
getUserName
public static String getUserName (Context context)
Gibt einen String zurück, der den Benutzernamen eines registrierten Benutzers enthält, der eine MDX-verwaltete App ausführt, unabhängig vom Anmeldestatus des Benutzers. Gibt nil zurück, wenn der Benutzer nicht registriert ist, die App nicht verwaltet wird oder die App nicht gewrappt ist.
Parameter
context – Der Android-Kontext, der diesen Aufruf tätigt.
-
Beispiel
String userName = MDXApplication.getUserName(context); -
Klasse com.citrix.worx.sdk.MDXPolicies
Methoden
-
getPoliciesXML
public static String getPoliciesXML (Context context)
Gibt den Inhalt von default_sdk_policies.xml zurück, als eine Zeile pro Richtlinie, präfixiert mit (match), um anzuzeigen, dass der Wert in der XML-Datei mit dem von MDXPolicies.getPolicyValue() zurückgegebenen Wert übereinstimmt. Gibt bei Fehler einen leeren String zurück.
Parameter
context – Der Android-Kontext, der diesen Aufruf tätigt.
Beispiel
String policiesXML = MDXPolicies.getPoliciesXML(context); -
getPolicyValue
public static String getPolicyValue (Context context, String policyName)
Gibt einen String zurück, der den aktuellen Wert der benannten Richtlinie enthält. Gibt null zurück, wenn kein Wert gefunden wird.
Parameter
context – Der Android-Kontext, der diesen Aufruf tätigt.
policyName – Der Name der zu suchenden Richtlinie. Ein Richtlinienname ist der Wert des Elements PolicyName in einer Richtlinien-XML-Datei.
Beispiel
String value = MDXPolicies.getPolicyValue(context"DisableCamera"); -
setPolicyChangeMessenger
-
public static String setPolicyChangeMessenger (Context context, String policyName. Messenger messenger)
Registriert einen Messenger, um eine Nachricht zu empfangen, wenn sich der Wert der angegebenen Richtlinie ändert. Wenn MDX erkennt, dass sich ein Richtlinienwert in der Citrix Endpoint Management-Konsole geändert hat, benachrichtigt MDX diesen Messenger. Sie können dann die anderen APIs verwenden, um die Richtlinienwerte erneut zu lesen und Ihre App zu ändern. Gibt null zurück.
Parameter
context – Der Android-Kontext, der diesen Aufruf tätigt.
policyName – Der zu überwachende Richtlinienname. Ein Richtlinienname ist der Wert des Elements PolicyName in einer Richtlinien-XML-Datei.
messenger – Der Messenger, der Nachrichten empfängt, wenn sich der Richtlinienwert ändert.
Beispiel
-
MDXPolicies.setPolicyChangeMessenger(context, "DisableCamera", messenger);
Klasse com.citrix.mdx.common.MDXDictionary
MDXDictionary ist ein Container zum Lesen und Speichern verschlüsselter Android-Bundles von Schlüssel-Wert-Paaren. Mobile Produktivitäts-Apps in derselben MDX-Sicherheitsgruppe teilen sich ein Wörterbuch. Verwenden Sie die Shared Vault API, um verwaltete Inhalte zwischen Apps zu teilen, die dasselbe MDX-Wörterbuch haben. Sie können beispielsweise Zertifikate und private Schlüssel über eine registrierte App teilen, sodass Apps ein Zertifikat aus dem sicheren Tresor anstelle von Secure Hub abrufen können.
Wörterbücher werden unabhängig von den Einstellungen der Richtlinien für die private Dateiverschlüsselung und die öffentliche Dateiverschlüsselung verschlüsselt gespeichert. Entwickler müssen den Tresor entsperren, bevor sie Wörterbücher abrufen.
Konstruktoren
-
public MDXDictionary( MDXDictionary source )
Konstruiert eine Kopie eines vorhandenen MDXDictionary.
Parameter
source – Das MDXDictionary, das kopiert werden soll.
-
public MDXDictionary( String name, Bundle bundle, long sequence )
Konstruiert ein MDXDictionary aus einem Namen, einem Bundle und einer Sequenznummer. Wenn Sie die Sequenznummer nicht kennen, verwenden Sie die create() factory-Methode.
Parameter
name – Der Name des Wörterbuchs.
bundle – Das Android-Bundle.
sequence – Eine Sequenznummer.
Methoden
-
public static MDXDictionary create( Context context, String name )
-
Erstellt ein Wörterbuch, indem zuerst geprüft wird, ob bereits ein Wörterbuch mit demselben Namen existiert. Wenn das Wörterbuch nicht existiert, wird ein neues Wörterbuch zurückgegeben. Andernfalls wird das vorhandene Wörterbuch zurückgegeben. Diese Methode gibt niemals null zurück.
Parameter
context – Der Android-Kontext, der diesen Aufruf tätigt.
name – Der Name des Wörterbuchs.
Beispiel
// Erstellt eine Instanz eines Wörterbuchs.
MDXDictionary dict = MDXDictionary.create(getContext(), "app-settings"); -
public static boolean delete( Context context, String name )
-
Löscht ein Wörterbuch anhand des Namens. Gibt true bei Erfolg zurück; gibt false bei Fehler zurück.
Parameter
context – Der Android-Kontext, der diesen Aufruf tätigt.
name – Der Name des Wörterbuchs.
Beispiel
// Erstellt eine Instanz eines Wörterbuchs.
MDXDictionary.delete(getContext(), "app-settings"); -
public static MDXDictionary find( Context context, String name )
Findet ein vorhandenes Wörterbuch. Gibt ein vorhandenes Wörterbuch zurück; gibt null zurück, wenn kein Wörterbuch gefunden wird.
Parameter
context – Der Android-Kontext, der diesen Aufruf tätigt.
name – Der Name des Wörterbuchs.
Beispiel
MDXDictionary dict = MDXDictionary.find(getContext(),"app-settings");if( dict != null ) { // Use dictionary } <!--NeedCopy--> -
public boolean isNew( )
Prüft, ob es sich um ein neues oder ein vorhandenes Wörterbuch handelt. Gibt true zurück, wenn ein Wörterbuch noch nicht existiert.
Beispiel
MDXDictionary dict = MDXDictionary.create(getContext(), "app-settings");if (dict.isNew()) { // Dictionary was not found. } else { // Existing dictionary was found. } <!--NeedCopy--> -
public boolean save( Context context )
Speichert ein verschlüsseltes Wörterbuch. Wenn ein Wörterbuch mit demselben Namen existiert, wird es überschrieben. Gibt true bei Erfolg zurück; gibt false bei Fehler zurück.
Parameter
context – Der Android-Kontext, der diesen Aufruf tätigt.
Beispiel
MDXDictionary dict = MDXDictionary.find(getContext(), "app-settings");if( dict != null ) { String certificate = getCertificate(); dict.bundle.putString( "secret-certificate", certificate ); // Update bundle by overwriting the existing bundle. dict.save( getContext() ); } <!--NeedCopy--> -
public boolean append( Context context )
Fügt ein verschlüsseltes Wörterbuch an ein vorhandenes Wörterbuch an. Wenn kein Wörterbuch existiert, wird das angegebene Wörterbuch gespeichert. Gibt true bei Erfolg zurück; gibt false bei Fehler zurück.
Parameter
context – Der Android-Kontext, der diesen Aufruf tätigt.
Beispiel
MDXDictionary dict = MDXDictionary.find(getContext(), ";app-settings");if( dict != null ) { String certificate = getCertificate(); Bundle bundle = new Bundle(); bundle.putString( "secret-certificate", certificate ); dict.bundle = bundle; dict.append( getContext() ); // Note that dict.bundle may not match the state of the // bundle that was stored. The stored bundle could be // larger. } <!--NeedCopy--> -
public boolean delete( Context context )
Löscht das Wörterbuch. Gibt true bei Erfolg zurück; gibt false bei Fehler zurück.
Parameter
context – Der Android-Kontext, der diesen Aufruf tätigt.
Beispiel
MDXDictionary dict = MDXDictionary.find(getContext(), "app-settings");if( dict != null ) { dict.delete( getContext() ); } <!--NeedCopy-->
Hinweise und Überlegungen
- Konstruktoren werfen eine IllegalArgumentException, wenn ungültige Parameter übergeben werden.
- Die Operation create() wird niemals null zurückgeben. Wenn die Verschlüsselungsrichtlinie aktiviert ist, ist der Benutzer dafür verantwortlich sicherzustellen, dass sie entsperrt ist, bevor create() aufgerufen wird.
- Die Operation append() kann fehlschlagen, wenn ein gespeichertes Objekt, das geparst oder serialisiert werden kann, kein bekannter Java- oder Android-Datentyp ist. Secure Hub kann das Dictionary nicht entmarshallen, da die Klasse Secure Hub intern nicht bekannt ist.
- Die Operation append() wird ihr Bundle an ein bestehendes Dictionary-Bundle anhängen. Wenn das gespeicherte Bundle sich von dem Bundle im Dictionary unterscheidet, wird das lokale Bundle den Zustand des gespeicherten Bundles nicht widerspiegeln. Eine find()-Operation oder eine create()-Operation ist notwendig, um den Zustand des zuvor gespeicherten Bundles abzufragen.