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( &quot;secret-certificate&quot;, 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( &quot;secret-certificate&quot;, 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.
API für Android