Android のアプリ管理による自動化

アプリ管理の自動化は、パートナー アプリが Automation API を使用してプログラムで構築する自動化です。

このような自動化は、Google Home app (GHA) 自動化リストに表示されません。

アプリ管理の自動化がトリガーされたときに Home APIs のアクティビティ フィードに書き込まれる情報は、カスタマイズすることも、完全に抑制することもできます。たとえば、パートナーがアプリ管理の自動化を使用して実装された「Arctic」というブランド サービスを提供している場合、アプリ管理の自動化が実行されると、実際の自動化名の代わりに Arctic サービスがアクティビティ フィードで参照されるように指定できます。

アプリで管理される自動化を作成する

アプリ管理の自動化を作成する手順は次のとおりです。

  1. 自動化のロジックグラフを作成します。

  2. 省略可 自動化のアクティビティをアクティビティ フィードに表示する場合は、AppManagedAutomationConfig インスタンスに、自動化名の代わりにフィードに表示するローカライズされたメッセージを入力します。これは、アプリやサービスのローカライズされた名前や、任意のメッセージにすることができます。ローカライズされた文字列を指定しない場合、自動化の実行は他の自動化と同様にログに記録されます。最適なユーザー エクスペリエンスを実現するために、これらのローカライズされた文字列を設定することをおすすめします。

    val myAutomationConfig = AppManagedAutomationConfig(
        managingAppDisplayNames = listOf(
            LocalizedText(text = "My custom SmartApp", locale = "en-US"),
            LocalizedText(text = "Mi aplicación personalizada", locale = "es-MX")
        )
    )
    
  3. Automation.Builder を使用して自動化インスタンスを作成します。

    1. 自動化の name を設定します。
    2. GHA の [アクティビティ] タブに自動化の実行履歴を表示する場合は、client_feature_group を "APP_MANAGED_EXECUTION_REPORTED" に設定します。自動化の実行履歴を表示しない場合は、"APP_MANAGED_EXECUTION_UNREPORTED" に設定します。
    3. automationGraph を設定します。
    4. 省略可: 自動化の appManagedAutomationConfig を設定します(ステップ 2 を参照)。
  4. 最後に、build() を呼び出して Automation インスタンスをビルドします。

この例では、手順全体を示します。

import com.google.home.automation.Automation
import com.google.home.automation.SequentialNode
import com.google.home.automation.StarterNode
import com.google.home.automation.ActionNode
import com.google.home.HomeDevice
import com.google.home.matter.standard.OnOff
import com.google.home.matter.standard.OnOffLightDevice
import com.google.home.matter.standard.MotionDetection
import com.google.home.matter.standard.OccupancySensorDevice

 HomeDevice mySensor = home.devices().list().first { device -> device.has(OccupancySensorDevice) }
 HomeDevice myLight = home.devices().list().first { device -> device.has(OnOffLightDevice) }

// 1. Create logic graph
val starterNode = StarterNode(
    device = mySensor,
    trait = OccupancySensing
)

val actionNode = ActionNode(
    device = myLight,
    command = OnOff.on()
)

// Bundle nodes into a sequential graph
val automationGraph = SequentialNode(
    nodes = listOf(starterNode, actionNode)
)

 // 2. Build the AppManagedAutomationConfig with the localized app names
val AppManagedAutomationConfig myAutomationConfig = AppManagedAutomationConfig(
        managingAppDisplayNames: [
          LocalizedText(text: "My Custom SmartApp", locale: "en-US"),
          LocalizedText(text: "Mi aplicación personalizada", locale: "es-MX")
        ]
    )

// 3. Build the Automation with both configuration and the graph
val myAutomation = Automation.Builder()
    .setName("Motion Activated Light")                         // a. Set the name
    .setClientFeatureGroup("APP_MANAGED_EXECUTION_UNREPORTED") // b. set the clientFeatureGroup
    .setAutomationGraph(automationGraph)                       // c. Attach the logic graph
    .setAppManagedAutomationConfig(myCustomConfig)             // d. Set the automationConfig
    .build() // 4. build the automation