สร้างกิจกรรมแรกสำหรับแว่นตา AI

อุปกรณ์ XR ที่ใช้ได้
คำแนะนำนี้จะช่วยให้คุณสร้างประสบการณ์การใช้งานสำหรับอุปกรณ์ XR ประเภทต่างๆ เหล่านี้ได้
แว่นตา AI

ประสบการณ์การใช้งานแว่นตา AI สร้างขึ้นบน API เฟรมเวิร์ก Activity ของ Android ที่มีอยู่ และรวมแนวคิดเพิ่มเติมเพื่อรองรับลักษณะเฉพาะของแว่นตา AI แว่นตา AI ต่างจากชุดหูฟัง XR ที่เรียกใช้ APK แบบเต็มบนอุปกรณ์ตรงที่ใช้กิจกรรมเฉพาะที่ทำงานภายในแอปที่มีอยู่ของโทรศัพท์ กิจกรรมนี้จะฉายจากอุปกรณ์โฮสต์ไปยังแว่นตา AI

หากต้องการสร้างประสบการณ์การใช้งานแว่นตา AI ของแอป คุณต้องขยายแอปโทรศัพท์ที่มีอยู่ โดยสร้าง Activity ใหม่ที่ฉายภาพสำหรับแว่นตา AI กิจกรรมนี้ทำหน้าที่เป็นจุดแรกเข้าหลักในการเปิดแอปของคุณบนแว่นตา AI แนวทางนี้ช่วยลดความซับซ้อนในการพัฒนาเนื่องจากคุณแชร์และนำตรรกะทางธุรกิจระหว่างประสบการณ์การใช้งานโทรศัพท์และแว่นตา AI มาใช้ซ้ำได้

ประกาศกิจกรรมในไฟล์ Manifest ของแอป

เช่นเดียวกับกิจกรรมประเภทอื่นๆ คุณต้องประกาศกิจกรรมในไฟล์ Manifest ของแอปเพื่อให้ระบบมองเห็นและเรียกใช้ได้

<application>
    <activity
        android:name=".AIGlassesActivity"
        android:exported="true"
        android:requiredDisplayCategory="xr_projected"
        android:label="Example AI Glasses activity">
      <intent-filter>
        <action android:name="android.intent.action.MAIN"/>
      </intent-filter>
    </activity>
</application>

ประเด็นสำคัญเกี่ยวกับโค้ด

  • ระบุ xr_projected สำหรับแอตทริบิวต์ android:requiredDisplayCategory เพื่อบอกระบบว่ากิจกรรมนี้ควรใช้บริบทที่คาดการณ์ไว้เพื่อ เข้าถึงฮาร์ดแวร์จากอุปกรณ์ที่เชื่อมต่อ

สร้างกิจกรรม

จากนั้นคุณจะสร้างกิจกรรมเล็กๆ ที่แสดงสิ่งต่างๆ บนแว่นตา AI ได้เมื่อใดก็ตามที่เปิดจอแสดงผล

/**
 *   When this activity launches, it stays in the started state.
 */
class AIGlassesActivity : ComponentActivity() {

  override fun onCreate(savedInstanceState: Bundle?) {
      super.onCreate(savedInstanceState)

      setContent {
          GlimmerTheme {
              HomeScreen(onClose = {
                  finish()
              })
          }
      }
  }

  override fun onStart() {
    // Do things to make the user aware that this activity is active (for
    // example, play audio frequently), when the display is off.
  }

  override fun onStop() {
    // Stop all the data source access.
  }

}

ประเด็นสำคัญเกี่ยวกับโค้ด

  • AIGlassesActivity ขยาย ComponentActivity เช่นเดียวกับที่คุณคาดหวังในการพัฒนาแอปบนมือถือ
  • บล็อก setContent ภายใน onCreate() จะกำหนดรูทของแผนผัง UI ของฟังก์ชันที่ประกอบกันได้สำหรับกิจกรรม
  • เริ่มต้น UI ในระหว่างเมธอด onCreate() ของกิจกรรม (ดูวงจรกิจกรรมที่คาดการณ์ไว้)

ใช้ฟังก์ชันที่ประกอบกันได้

กิจกรรมที่คุณสร้างจะอ้างอิงฟังก์ชันที่ประกอบกันได้ของ HomeScreen ซึ่งคุณต้องใช้ โค้ดต่อไปนี้ใช้ Jetpack Compose Glimmer เพื่อกำหนดฟังก์ชันที่ประกอบกันได้ ซึ่งแสดงข้อความบนจอแสดงผลของแว่นตา AI ได้

@Composable
fun HomeScreen(modifier: Modifier = Modifier, onClose: () -> Unit) {
    Box(
        modifier = modifier
            .surface(focusable = false).fillMaxSize(),
        contentAlignment = Alignment.Center
    ) {
        Card(
            title = { Text("Android XR") },
            action = {
                Button(onClick = {
                    onClose()
                }) {
                    Text("Close")
                }
            }
        ) {
            Text("Hello, AI Glasses!")
        }
    }
}

ประเด็นสำคัญเกี่ยวกับโค้ด

  • ตามที่คุณกำหนดไว้ในกิจกรรมก่อนหน้านี้ ฟังก์ชันที่ประกอบกันได้ของ HomeScreen ประกอบด้วยเนื้อหาที่ประกอบกันได้ซึ่งผู้ใช้เห็นเมื่อจอแสดงผลของแว่นตา AI เปิดอยู่
  • คอมโพเนนต์ Text ของ Jetpack Compose Glimmer จะแสดงข้อความ "Hello, AI Glasses!" ในจอแสดงผลของแว่นตา
  • Glimmer Button ของ Jetpack Compose จะปิดกิจกรรมของแว่นตาโดย เรียกใช้เมธอด finish() ในกิจกรรมของแว่นตา AI

เริ่มกิจกรรม

เมื่อสร้างกิจกรรมพื้นฐานแล้ว คุณก็เปิดใช้กิจกรรมในแว่นตาได้ หากต้องการเข้าถึงฮาร์ดแวร์ของแว่นตา แอปของคุณต้องเริ่มกิจกรรมด้วยตัวเลือกที่เฉพาะเจาะจงซึ่งบอกให้ระบบใช้บริบทที่คาดการณ์ไว้ ดังที่แสดงในโค้ดต่อไปนี้

val options = ProjectedContext.createProjectedActivityOptions(context)

val intent = Intent(context, AIGlassesActivity::class.java)

context.startActivity(intent, options.toBundle())

เมธอด createProjectedActivityOptions() ใน ProjectedContext สร้างตัวเลือกที่จำเป็นเพื่อเริ่มกิจกรรมในบริบทที่คาดการณ์ไว้ พารามิเตอร์ context อาจเป็นบริบทจากโทรศัพท์หรือแว่นตา

ตรวจสอบว่าแว่นตา AI เชื่อมต่ออยู่หรือไม่

หากต้องการตรวจสอบว่าแว่นตา AI ของผู้ใช้เชื่อมต่อกับโทรศัพท์หรือไม่ ก่อนเปิดกิจกรรม ให้ใช้เมธอด ProjectedContext.isProjectedDeviceConnected() เมธอดนี้จะส่งคืน Flow<Boolean> ที่แอปของคุณสามารถสังเกตเพื่อรับข้อมูลอัปเดตแบบเรียลไทม์เกี่ยวกับสถานะการเชื่อมต่อ

ขั้นตอนถัดไป

เมื่อสร้างกิจกรรมแรกสำหรับแว่นตา AI แล้ว ให้ลองดูวิธีอื่นๆ ที่คุณสามารถขยายฟังก์ชันการทำงานได้