Android向けAPI
Android向けAPIはJavaをベースとしています。この記事では、Citrix Endpoint Management™ APIを機能別に要約し、API定義を提供します。
-
アプリ管理:
- isManaged
- isWrapped
MDXポリシー:
- getPoliciesXML
- getPolicyValue
-
setPolicyChangeMessenger
-
共有ボールト:
- MDXDictionary
ユーザーデータ:
-
getUserName
-
クラス com.citrix.worx.sdk.MDXApplication
メソッド
-
isManaged
public static boolean isManaged (Context context)
アプリが現在MDXによって管理されているかどうかを確認します。これは、Citrix Secure Hub™アプリがデバイスにインストールされており、Citrix Endpoint Managementポリシーがアプリに適用されていることを意味します。Endpoint Managementのバックエンドインフラストラクチャ(キーボールト)は、MDXがアプリケーションファイルデータを暗号化するために使用するデータ暗号化部分キー(シークレット)について照会されます。アプリが管理されている場合はtrueを返します。
管理されていないPremiumアプリは、Applications/Citrix/MDXToolkit/data/MDXSDK_Android/default_sdk_policies.xmlで指定されたEndpoint Managementポリシーのデフォルトを使用します。管理されていないGeneralアプリにはポリシーは適用されません。
パラメーター
context – この呼び出しを行っているAndroidコンテキスト。
-
例
boolean bIsManaged = MDXApplication.isManaged(context); -
isWrapped
public static boolean isWrapped (Context context)
アプリがMDX Toolkitでラップされている場合はtrueを返します。
パラメーター
context – この呼び出しを行っているAndroidコンテキスト。
例
boolean bIsWrapped = MDXApplication.isWrapped(context); -
getUserName
public static String getUserName (Context context)
ユーザーのサインオン状態に関係なく、MDX管理アプリを実行している登録済みユーザーのユーザー名を含む文字列を返します。ユーザーが登録されていない場合、アプリが管理されていない場合、またはアプリがラップされていない場合はnilを返します。
パラメーター
context – この呼び出しを行っているAndroidコンテキスト。
-
例
String userName = MDXApplication.getUserName(context); -
クラス com.citrix.worx.sdk.MDXPolicies
メソッド
-
getPoliciesXML
public static String getPoliciesXML (Context context)
default_sdk_policies.xmlの内容を、ポリシーごとに1行で返します。(match)というプレフィックスは、XMLファイル内の値がMDXPolicies.getPolicyValue()によって返される値と一致することを示します。失敗した場合は空の文字列を返します。
パラメーター
context – この呼び出しを行っているAndroidコンテキスト。
例
String policiesXML = MDXPolicies.getPoliciesXML(context); -
getPolicyValue
public static String getPolicyValue (Context context, String policyName)
指定されたポリシーの現在の値を含むStringを返します。値が見つからない場合はnullを返します。
パラメーター
context – この呼び出しを行っているAndroidコンテキスト。
policyName – 検索するポリシーの名前。ポリシー名は、ポリシーXMLファイル内のPolicyName要素の値です。
例
String value = MDXPolicies.getPolicyValue(context"DisableCamera"); -
setPolicyChangeMessenger
-
public static String setPolicyChangeMessenger (Context context, String policyName. Messenger messenger)
指定されたポリシーの値が変更されたときにメッセージを受信するMessengerを登録します。MDXは、Citrix Endpoint Managementコンソールでポリシー値が変更されたことを検出すると、このメッセンジャーに通知します。その後、他のAPIを使用してポリシー値を再読み込みし、アプリを変更できます。nullを返します。
パラメーター
context – この呼び出しを行っているAndroidコンテキスト。
policyName – 監視するポリシーの名前。ポリシー名は、ポリシーXMLファイル内のPolicyName要素の値です。
messenger – ポリシー値が変更されたときにメッセージを受信するメッセンジャー。
例
-
MDXPolicies.setPolicyChangeMessenger(context, "DisableCamera", messenger);
クラス com.citrix.mdx.common.MDXDictionary
MDXDictionaryは、暗号化されたAndroidバンドルのキーと値のペアを読み取り、保存するためのコンテナーです。同じMDXセキュリティグループ内のモバイル生産性アプリは、辞書を共有します。共有ボールトAPIを使用して、同じMDX辞書を持つアプリ間で管理コンテンツを共有します。たとえば、登録済みアプリを介して証明書と秘密鍵を共有し、アプリがSecure Hubからではなくセキュアボールトから証明書を取得できるようにすることができます。
辞書は、プライベートファイル暗号化ポリシーとパブリックファイル暗号化ポリシーの設定に関係なく、暗号化されて保存されます。開発者は、辞書を取得する前にボールトをロック解除する必要があります。
コンストラクター
-
public MDXDictionary( MDXDictionary source )
既存のMDXDictionaryのコピーを構築します。
パラメーター
source – コピーするMDXDictionary。
-
public MDXDictionary( String name, Bundle bundle, long sequence )
名前、バンドル、およびシーケンス番号からMDXDictionaryを構築します。シーケンス番号が不明な場合は、create()ファクトリメソッドを使用します。
パラメーター
name – 辞書の名前。
bundle – Androidバンドル。
sequence – シーケンス番号。
メソッド
-
public static MDXDictionary create( Context context, String name )
-
まず、同じ名前の辞書が既に存在するかどうかを確認して辞書を作成します。辞書が存在しない場合は、新しい辞書が返されます。それ以外の場合は、既存の辞書が返されます。このメソッドはnullを返しません。
パラメーター
context – この呼び出しを行っているAndroidコンテキスト。
name – 辞書の名前。
例
// 辞書のインスタンスを作成します。
MDXDictionary dict = MDXDictionary.create(getContext(), "app-settings"); -
public static boolean delete( Context context, String name )
-
名前で辞書を削除します。成功した場合はtrueを返し、失敗した場合はfalseを返します。
パラメーター
context – この呼び出しを行っているAndroidコンテキスト。
name – 辞書の名前。
例
// 辞書のインスタンスを作成します。
MDXDictionary.delete(getContext(), "app-settings"); -
public static MDXDictionary find( Context context, String name )
既存の辞書を検索します。既存の辞書を返します。辞書が見つからない場合はnullを返します。
パラメーター
context – この呼び出しを行っているAndroidコンテキスト。
name – 辞書の名前。
例
MDXDictionary dict = MDXDictionary.find(getContext(),"app-settings");if( dict != null ) { // Use dictionary } <!--NeedCopy--> -
public boolean isNew( )
これが新しい辞書であるか、既存の辞書であるかを確認します。辞書がまだ存在しない場合はtrueを返します。
例
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 )
暗号化された辞書を保存します。同じ名前の辞書が存在する場合、それは上書きされます。成功した場合はtrueを返し、失敗した場合はfalseを返します。
パラメーター
context – この呼び出しを行っているAndroidコンテキスト。
例
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 )
暗号化された辞書を既存の辞書に追加します。辞書が存在しない場合は、指定された辞書が保存されます。成功した場合はtrueを返し、失敗した場合はfalseを返します。
パラメーター
context – この呼び出しを行っているAndroidコンテキスト。
例
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 )
辞書を削除します。成功した場合はtrueを返し、失敗した場合はfalseを返します。
パラメーター
context – この呼び出しを行っているAndroidコンテキスト。
例
MDXDictionary dict = MDXDictionary.find(getContext(), "app-settings");if( dict != null ) { dict.delete( getContext() ); } <!--NeedCopy-->
留意事項
- 不適切なパラメーターが渡された場合、コンストラクターはIllegalArgumentExceptionをスローします。
- create() 操作は null を返すことはありません。暗号化ポリシーが有効になっている場合、create() が呼び出される前にロック解除されていることを確認するのはユーザーの責任です。
- 解析またはシリアル化できる保存されたオブジェクトが既知の Java または Android データ型ではない場合、append() 操作は失敗する可能性があります。Secure Hub は、そのクラスが Secure Hub の内部で認識されていないため、ディクショナリをアンマーシャルできません。
- append() 操作は、そのバンドルを既存のディクショナリバンドルに追加します。保存されたバンドルがディクショナリ内のバンドルと異なる場合、ローカルバンドルは保存されたバンドルの状態を反映しません。以前に保存されたバンドルの状態を照会するには、find() 操作または create() 操作が必要です。