# APP控制指令
注意
该指令只适用于技能协议v2.1,只可用于iFLYOS的技能。
# 指令说明
该指令用于让技能控制安卓系统上的APP。技能中下发的字段,最终会以Android Intent的方式传输给对应的APP,APP进行对应的操作。
在使用该指令时,设备端组装Android Intent的方式是一致的,请保证你传输的字段取值,是最终APP可以相应的Android Intent字段取值。
# 指令协议
"directives": [
  {
    "type": "AppAction.Execute",
    "executionId": "xxx",
    "actions": [//一次技能返回可以返回多个action(一类,如【用高德地图导航到万达广场】和【用百度地图导航到万达广场】)
      {
        "token": "xxx",
        "data": {
          "type": "activity",
          "uri": "URI_SAMPLE",               
          "packageName": "PACKAGE_NAME_SAMPLE", 
          "categoryName": "CATEGORY_NAME_SAMPLE",               
          "friendlyName": "FRIENDLY_NAME_SAMPLE",               
          "className": "CLASS_NAME_SAMPLE",               
          "actionName": "ACTION_NAME_SAMPLE",               
          "extras": {                 
            "EXTRA_KEY_SAMPLE_1": "EXTRA_VALUE_SAMPLE_1", 
            "EXTRA_KEY_SAMPLE_2": "EXTRA_VALUE_SAMPLE_2", 
            // 其他的 extra              
          }                         
        }
      },
      {//第二个action,设备会顺序执行,只要执行成功一个action,就当做这个execute执行成功
        "token": "xxx",
        "data": {
          "type": "activity",
          "uri": "URI_SAMPLE",               
          "packageName": "PACKAGE_NAME_SAMPLE", 
          "categoryName": "CATEGORY_NAME_SAMPLE",               
          "friendlyName": "FRIENDLY_NAME_SAMPLE",               
          "className": "CLASS_NAME_SAMPLE",               
          "actionName": "ACTION_NAME_SAMPLE",               
          "extras": {                 
            "EXTRA_KEY_SAMPLE_1": "EXTRA_VALUE_SAMPLE_1", 
            "EXTRA_KEY_SAMPLE_2": "EXTRA_VALUE_SAMPLE_2", 
            // 其他的 extra              
          }                         
        }
      }
    ] 
  },
]
| 参数 | 类型 | 说明 | 必有 | 
|---|---|---|---|
| type | String | 这里取值:AppAction.Execute | |
| execution_id | String | 代表这一组执行的 id,技能自行指定 | 是 | 
| actions | List | action 列表,按顺序执行。执行成功一个 action 后,其他的 action 无需执行。 | 是 | 
| actions.[i].token | String | 代表这个 action 的唯一标识,技能自行指定 | 是 | 
| actions.[i].data | Object | 执行 app_action 时需要的 data。 | 是 | 
| actions.[i].data.type | String | 这个action的类型,可取值:activity,service,broadcast。当不出现的时候,默认取值 activity。只有 Android 设备的执行返回才会出现这个字段 | 否 | 
| actions.[i].data.uri | String | uri 数据,iOS 设备执行必填,Android 设备非必填。 | 否 | 
| actions.[i].data.packageName | String | 应用包名,,只有 Android 设备的执行返回才会出现这个字段 | 否 | 
| actions.[i].data.categoryName | String | category 数据,只有 Android 设备的执行返回才会出现这个字段 | 否 | 
| actions.[i].data.friendlyName | String | 应用显示的名称,一般为中文 | 否 | 
| actions.[i].data.className | String | class 数据,只有 Android 设备的执行返回才会出现这个字段 | 否 | 
| actions.[i].data.actionName | String | action 数据,只有 Android 设备的执行返回才会出现这个字段 | 否 | 
| actions.[i].data.extras | Object | 该 app_action 的附带信息,key和value可技能自定义。 | 否 |