Android カスタム・インテント

Androidカスタムインテント機能を使用して、設定を事前に構成し、カスタムワークフローを作成して、KioskモードのAndroidデバイスで設定アプリの特定の部分のみを開きます。

Android デバイスでのキオスク・モードの使用が増加しています。 キオスク・モードのこれらのデバイスは、日常業務に必要なバイオメトリクス、パスワード、NFC などの設定にユーザーがアクセスできないロックダウン状態にあります。 Android カスタム・インテント機能を使用すると、ユーザーに公開される設定を柔軟に制御できます。 例えば、COSU キオスク・モード・ポリシーの許可リストに設定アプリを追加せずに、デバイスから「生体認証登録」画面を開きます。

Android カスタム・インテントの構成

  1. IBM® MaaS360® ポータル ホーム ページから、セキュリティ > ポリシー をクリックします。
  2. 「Android MDM Polciy」 ポリシーを選択します。
  3. 「設定の構成」 > 「Android Enterprise 設定」 > 「COSU (キオスク・モード)」 に移動し、 「キオスク・モードの有効化」をクリックします。
  4. 「キオスク・デバイス設定 (Kiosk Device Settings)」 セクションを展開し、以下を構成します。
    ポリシー設定 説明 サポートされるデバイス
    カスタム起動項目の追加

    この設定をオンにすると、Android カスタム・インテント機能を使用してカスタム起動を追加できます。 キオスク・モードの Android デバイスで JSON コードを使用して、設定またはアプリケーションを追加できます。 JSON コード・フォーマットについて詳しくは、 JSON コード・フォーマットを参照してください。

    重要:
    • この設定を有効にすると、ユーザーはデバイスのこの設定に関連する他のセクションに移動しやすくなる。
    • この機能は、Android アプリのバージョンが 8.60 以降のデバイスに適用されます。

    以下の設定を含む複数のカスタム起動項目を追加できます。

    • デバイス上の項目の位置: 選択した項目の位置に基づいて、カスタム起動項目が、デバイス上のメニュー・リストの 「デバイス設定」 または 「その他のショートカット」 セクションの下に表示されます。
    • 項目名: 複数のロケールでカスタム起動項目名を追加できます。 アイテム名は、キオスク・アプリに設定された関連ロケールとともにデバイスに表示されます。

      キーと値のペアを入力できます。ここで、キーはアイテム名表示のロケールを表し、値はアイテム名を表します。

    • アイテムの説明: カスタム起動アイテムに関連する説明を複数のロケールで追加できます。

      キーと値のペアを入力できます。ここで、キーはアイテムの説明表示のロケールを表し、値はアイテムの説明を表します。

    • カスタム・インテント: Android カスタム・インテントを定義するには、必要なポリシー値を指定する JSON コードを指定する必要があります。 詳しくは、 Android カスタム・インテントの定義の例を参照してください。
    アンドロイド 8.60 + DO

JSON コード形式

以下の表に、最上位フィールドおよび追加フィールドのサンプル JSON コード・フォーマットを示します。

最上位フィールド
フィールド名 タイプ 説明

アクション

ストリング

"action": "android.intent.action.VIEW"
"action": "android.intent.action.EDIT"

実行される一般アクション。 例えば、 ACTION_VIEWACTION_EDITACTION_MAINなどとなります。

データ

ストリング

"data": "https://www.company.com#data"

操作対象のデータ。 例えば、連絡先データベース内の個人のレコードは、 Uriとして表されます。

packageName

ストリング

"packageName": "com.mycompany.myapp"

特定のパッケージのみを開くようにアクションを制限します。

カテゴリー

ストリング

アレイ

"categories": [
    "android.intent.category.LAUNCHER",
    "android.intent.category.BROWSABLE"
]
実行するアクションに関する追加情報。 例:
  • CATEGORY_LAUNCHER は、デバイス上のキオスク・ランチャー・アプリに最上位アプリケーションとして表示される必要があるアクティビティーを示します。
  • CATEGORY_ALTERNATIVE は、ユーザーがデータに対して実行できる代替アクションのリストに含める必要があるアクティビティーを示します。

タイプ

ストリング

"type": "text/xml"

インテント・データの明示的な MIME タイプを指定します。 タイプは、データ自体から推測されます。 この属性を設定すると、その評価が無効になり、明示的な型の使用が強制されます。

コンポーネント

オブジェクト

"component": {
    "packageName": "com.mycompany.myapp",
    "className": "com.mycompany.myapp.ui.MyActivity"
}

インテントに使用するコンポーネント・クラスの明示的な名前を指定します。 コンポーネントは、インテント内の他の情報 (アクション、データまたはタイプ、カテゴリーなど) から判別され、適切なコンポーネントと突き合わせられます。 この属性が設定されている場合、評価は実行されず、この指定されたコンポーネントが直接使用されます。 この属性を指定すると、他のすべてのフィールドはオプションになります。

  • packageName: コンポーネントのパッケージ名を示します。 タイプ: ストリング
  • className: コンポーネントのクラス名を示します。 タイプ: ストリング

フラグ

整数配列

"flags": [2, 4, 8, 32]

動作を変更する可能性がある追加フラグ。 フラグのリストについては、「 https://developer.android.com/reference/android/content/Intent」を参照してください。

エキストラ

オブジェクト配列

"extras": [
 {
   "type": "string",
   "name": "com.mycompany.myapp.SOME_STRING_EXTRA",
    "value": "Some Value Here"
 },
 {
   "type": "integerArray",
   "name": "com.mycompany.myapp.SOME_INT_ARRAY_EXTRA",
   "value": [2, 3, 4]
 },
 {
   "type": "bundle",
   "name": "com.mycompany.myapp.SOME_BUNDLE_EXTRA",
   "value": [
     {
        "type": "string", 
        "name": "SomeBundleString", 
        "value": "Some Value Here"
     },
     {
        "type": "byteArray", 
        "name": "SomeBundleByteArray", 
        "value": [5, 6, 7]
     }
   ]
 }
]

インテントで渡すことができる追加情報を追加します。 追加フィールドについて詳しくは、 追加フィールドを参照してください。

追加フィールド
フィールド名 タイプ 説明

タイプ

ストリング

"type": "string"
"type": "integerArray"
"type": "bundle"

追加情報のタイプは以下のとおりです。

  • 基本タイプ

    以下のデータ・タイプがサポートされています。

    • boolean: 追加情報の値は、true または false のいずれかのストリングでなければなりません。
    • char: 追加情報の値は、1 文字のみのストリングでなければなりません。
    • string: 追加情報の値はストリングでなければならず、任意の長さにすることができます。
    • byte: 追加情報の値は -128 から 127 までの整数でなければなりません。
    • 整数: 追加情報の値は、-2147483648 から 2147483647 までの整数でなければなりません。
    • short: 追加情報の値は -32768 から 32767 までの整数でなければなりません。
    • long: 追加情報の値は -9223372036854775808 から 9223372036854775807 までの整数でなければなりません。
    • float: 追加情報の値は 10 進数でなければなりません。
    • double: 追加情報の値は 10 進数でなければなりません。 この型は float よりも高い精度を持っています。
  • 配列型

    この型は、Base 型と同じ定義を持ちますが、大括弧で囲んだ配列構文を使用して追加されます。 サポートされるタイプは以下のとおりです。

    • booleanArray
    • stringArray
    • charArray
    • byteArray
    • integerArray
    • shortArray
    • longArray
    • floatArray
    • doubleArray
  • ArrayList タイプ

    一部のアプリは、 ArrayList タイプのデータの受信もサポートしています。 このタイプの定義と構文は、配列タイプと同じです。 以下のタイプがサポートされています。

    • integerArrayList
    • stringArrayList
  • バンドル・タイプ

    ネストされた追加情報を作成するには、バンドル・タイプを使用します。 この値は、追加情報の配列でなければなりません。

    例:

    {
       "type": "bundle",
       "name": "com.mycompany.myapp.SOME_BUNDLE_EXTRA",
       "value": [
         {
            "type": "string", 
            "name": "SomeBundleString", 
            "value": "Some Value Here"
         },
         {
            "type": "byteArray", 
            "name": "SomeBundleByteArray", 
            "value": [5, 6, 7]
         }
       ]
     }

名前

ストリング

"name": "com.mycompany.myapp.SOME_STRING_EXTRA"
"name": "com.mycompany.myapp.SOME_INT_ARRAY_EXTRA"

追加の情報の名前。

タイプに依存

"value": "Some Value Here"
"value": [5, 6, 7]
"value": 3.534
"value": null

追加の情報の値。 タイプに基づいて値を追加できます。

注: いずれの場合も、値は NULL として指定できます。 この場合、NULL 値がターゲット・アプリケーションに渡されます。
JSON コードを定義する例
{
  "action": "android.intent.action.VIEW",
  "data": "https://www.company.com#data",
  "packageName": "com.mycompany.myapp",
  "categories": [
    "android.intent.category.LAUNCHER",
    "android.intent.category.BROWSABLE"
  ],
  "type": "text/xml",
  "component": {
    "packageName": "com.mycompany.myapp",
    "className": "com.mycompany.myapp.ui.MyActivity"
  },
  "flags": [2, 4, 8, 32],
  "extras": [
    {
      "type": "string",
      "name": "com.mycompany.myapp.SOME_STRING_EXTRA",
      "value": "Some Value Here"
    },
    {
      "type": "integerArray",
      "name": "com.mycompany.myapp.SOME_INT_ARRAY_EXTRA",
      "value": [2, 3, 4]
    },
    {
      "type": "bundle",
      "name": "com.mycompany.myapp.SOME_BUNDLE_EXTRA",
      "value": [
        {
           "type": "string", 
           "name": "SomeBundleString", 
           "value": "Some Value Here"
        },
        {
           "type": "byteArray", 
           "name": "SomeBundleByteArray", 
           "value": [5, 6, 7]
        }
      ]
    }
  ]
}

Android カスタム・インテントの定義の例

以下の表に、さまざまな一般的なシナリオで Android カスタム・インテントを作成するために構成できるポリシー値の例を示します。

Google Android で提供されているインテント・アクション設定について詳しくは、 https://developer.android.com/reference/android/provider/Settingsを参照してください。

一般的なシナリオ デバイス上の部品の位置 アイテム名 品目の説明 カスタム・インテント (JSON)

デバイスで「サウンド設定 (Sound Settings)」画面を開きます。 詳しくは、 共通シナリオ 1を参照してください。

設定

サウンド設定

デバイスのサウンド設定を表示するには、ここをクリックします。

{
"action": "android.settings.SOUND_SETTINGS"
}

デバイスで設定画面を開きます。 例えば、「データ使用設定 (Data Usage Settings)」画面などです。

設定

データ使用設定

デバイスのデータ使用設定を表示するには、ここをクリックします。

{
"action": "android.settings.DATA_USAGE_SETTINGS"
}

デバイスでアプリを開きます。 例えば、 Google Chromeなどです。

デバイスのホーム画面でアプリのアイコンをタップするのと同様に、パッケージ名で指定されたアプリが開きます。

その他のショートカット

Google Chrome を開きます。

ここをクリックして Google Chrome アプリを開きます。

{
  "action": "android.intent.action.MAIN",
  "packageName": "com.android.chrome",
  "categories": [
     "android.intent.category.LAUNCHER"
   ]
}

デバイス画面で Web サイトを表示します。 例えば、Wikipedia などです。

URL を起動するためにウェブブラウザを開きます。 開いている Web ブラウザーのみが考慮されるように、カテゴリーが追加されます。

その他のショートカット

Wikipedia を開く

デフォルトのブラウザでウィキペディアのウェブサイトを開くには、ここをクリックします。

{
  "action": "android.intent.action.VIEW",
  "data": "https://www.wikipedia.org",
  "categories": [
     "android.intent.category.BROWSABLE"
  ]
}

特定のブラウザーを使用して、デバイス画面で Web サイトを表示します。 例えば、 Google を Mozilla Firefoxで表示します。

URL を表示するために Firefox を開きます。

その他のショートカット

Firefox で Web サイトを開きます。

ここをクリックして、指定した Web サイトを Firefox ブラウザーで開きます。

{
  "action": "android.intent.action.VIEW",
  "data": "https://www.google.com",
  "packageName": "org.mozilla.firefox"
}

デバイス画面で番号をダイヤルします。 例えば、入力した番号が 911 のデバイス画面でハンドセット・ダイヤラーを開き、ユーザーがダイヤル・ボタンを押します。

その他のショートカット

緊急連絡先

緊急電話番号に電話するには、ここをクリックします。

{
  "action": "android.intent.action.DIAL",
  "data": "tel:911"
}

MaaS360 メールでメールを送信する。 例えば、件名と本文がすでに完成している MaaS360 Mail composer を開きます。

その他のショートカット

IBM MaaS360 メール

IBM MaaS360 Mailを使用してメールを作成するには、こちらをクリックしてください。

{
  "action": "android.intent.action.SENDTO",
  "packageName": "com.fiberlink.maas360.android.pim",
  "data": "mailto:abc@company.com",
  "extras": [
     {
        "type": "string",
        "name": "android.intent.extra.SUBJECT",
        "value": "Email Subject Goes Here"
     },
     {
        "type": "string",
        "name": "android.intent.extra.TEXT",
        "value": "Email Body Goes Here"
     }
  ]
}

Gmail を使用して E メールを送信します。 例えば、件名とメール本文が既に入力されている Gmail コンポーザーを開きます。

その他のショートカット

Gmail を使用したメールの作成

Gmail アプリでメールを作成するには、ここをクリックします。

{
  "action": "android.intent.action.SENDTO",
  "packageName": "com.google.android.gm",
  "data": "mailto:abc@company.com?subject=The%20subject%20of%20the%20mail&body=The%20body%20of%20the%20email"
}

デバイス画面に連絡先リストを表示します。 例えば、デバイス連絡先のリストを表示します。 通常、デバイスの連絡先アプリを開きます。

その他のショートカット

連絡先を開く

連絡先アプリを開くには、ここをクリックします。

{
  "action": "android.intent.action.VIEW",
  "data": "content://contacts/people/"
}
共通シナリオ 1:

MaaS360 ポータルでの音声設定用のカスタム・インテントの作成

IBM MaaS360 ポータルで、以下のポリシー値を設定し、デバイス画面のサウンド設定画面を開きます。

ポリシー設定 説明
カスタム起動項目の追加
  • デバイス上のアイテムの位置: 設定
  • 項目名: サウンド設定
  • アイテムの説明: デバイスのサウンド設定を表示するには、ここをクリックします
  • カスタム・インテント:
    {
    "action": "android.settings.SOUND_SETTINGS"
    }
デバイスで「サウンド設定 (Sound Settings)」画面を開きます。

Android デバイスでサウンド設定をキオスク・モードで開く

  1. Android デバイスで 「設定」 アイコンをクリックします。
  2. 「メニュー」 リストで 「デバイス設定」 をクリックします。
    キオスク・モードの Android デバイスの設定メニュー

    構成済みのカスタム・インテントに従って、メニュー・リストの 「デバイス設定 (Device Settings)」 セクションの下に 「サウンド設定 (Sound Settings)」 カスタム起動項目が表示されます。

    キオスク・モードの Android デバイスでの音の設定
  3. 「サウンド設定」をクリックします。

    Androidデバイスのサウンド設定セクションにリダイレクトされます。