خودکارسازی‌های مدیریت‌شده توسط برنامه برای Android

خودکارسازی‌های مدیریت‌شده توسط برنامه، خودکارسازی‌هایی هستند که به‌صورت برنامه‌ریزی‌شده توسط برنامه شریک بااستفاده از «میانای برنامه‌سازی کاربردی خودکارسازی» ساخته می‌شوند.

چنین خودکارسازی‌هایی از نمایش در فهرست خودکارسازی‌ها Google Home app (GHA) سرکوب می‌شوند.

اطلاعاتی که هنگام راه‌اندازی خودکارسازی مدیریت‌شده توسط برنامه در فید فعالیت‌های «میاناهای برنامه‌سازی کاربردی خانه» نوشته می‌شود می‌تواند سفارشی‌سازی شود یا به‌طور کامل سرکوب شود. برای مثال، اگر شریکی خدمات نمانام‌سازی‌شده‌ای به‌نام «آرکتیک» ارائه دهد که بااستفاده از خودکارسازی‌های مدیریت‌شده توسط برنامه پیاده‌سازی شده باشد، شریک می‌تواند مشخص کند که وقتی خودکارسازی‌های مدیریت‌شده توسط برنامه او اجرا می‌شود، به‌جای نام خودکارسازی واقعی، به خدمات «آرکتیک» در فید فعالیت ارجاع داده شود.

ایجاد خودکارسازی مدیریت‌شده توسط برنامه

برای ایجاد خودکارسازی مدیریت‌شده توسط برنامه، از روش زیر استفاده کنید.

  1. ساختن گراف منطقی خودکارسازی.

  2. اختیاری اگر می‌خواهید فعالیت خودکارسازی شما در فید فعالیت‌ها نشان داده شود، می‌توانید نمونه AppManagedAutomationConfig را با پیام بومی‌سازی‌شده‌ای که می‌خواهید به‌جای نام خودکارسازی در فید نشان داده شود تکمیل کنید. این می‌تواند نام‌های بومی‌سازی‌شده برنامه یا سرویس، یا هر پیام دیگری که می‌خواهید باشد. اگر هیچ رشته بومی‌سازی‌شده‌ای ارائه نکنید، اجراهای خودکارسازی مانند هر خودکارسازی دیگری ثبت می‌شوند. ‫Google توصیه می‌کند این رشته‌های بومی‌سازی‌شده را تنظیم کنید تا بهترین تجربه کاربری را تضمین کنید.

    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. client_feature_group را روی "APP_MANAGED_EXECUTION_REPORTED" تنظیم کنید اگر می‌خواهید سابقه اجرای خودکارسازی در برگه «فعالیت» در GHA نشان داده شود، یا "APP_MANAGED_EXECUTION_UNREPORTED" اگر نمی‌خواهید سابقه اجرای خودکارسازی نشان داده شود.
    3. ‫automationGraph را تنظیم کنید.
    4. اختیاری appManagedAutomationConfig را برای خودکارسازی تنظیم کنید (به «مرحله ۲» مراجعه کنید).
  4. درنهایت، برای ساختن نمونه Automation، با build() تماس بگیرید.

این مثال کل رویه را نشان می‌دهد:

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