एआई चश्मे की सुविधा, मौजूदा Android Activity फ़्रेमवर्क
एपीआई पर आधारित है. साथ ही, इसमें कुछ और कॉन्सेप्ट शामिल हैं, ताकि एआई चश्मे की खास सुविधाओं को सपोर्ट किया जा सके. XR हेडसेट, डिवाइस पर पूरा APK चलाते हैं. हालांकि, एआई चश्मे में एक खास गतिविधि होती है, जो आपके फ़ोन के मौजूदा ऐप्लिकेशन में चलती है. यह गतिविधि, होस्ट डिवाइस से एआई चश्मे पर प्रोजेक्ट की जाती है.
अपने ऐप्लिकेशन के लिए, एआई चश्मे की सुविधा बनाने के लिए, आपको अपने मौजूदा फ़ोन ऐप्लिकेशन को बढ़ाना होगा. इसके लिए, एआई चश्मे के लिए नया प्रोजेक्टेड Activity बनाएं. यह गतिविधि, एआई चश्मे पर आपके ऐप्लिकेशन को लॉन्च करने के मुख्य एंट्री पॉइंट के तौर पर काम करती है. इस तरीके से डेवलपमेंट आसान हो जाता है, क्योंकि फ़ोन और एआई चश्मे के बीच कारोबार के लॉजिक को शेयर और फिर से इस्तेमाल किया जा सकता है.
अपने ऐप्लिकेशन की मेनिफ़ेस्ट फ़ाइल में, अपनी गतिविधि का एलान करें
अन्य गतिविधियों की तरह ही, आपको भी अपने ऐप्लिकेशन की मेनिफ़ेस्ट फ़ाइल में अपनी गतिविधि के बारे में बताना होगा, ताकि सिस्टम उसे देख सके और चला सके.
<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>
कोड के बारे में अहम जानकारी
- सिस्टम को यह बताने के लिए कि इस गतिविधि में अनुमानित कॉन्टेक्स्ट का इस्तेमाल किया जाना चाहिए,
android:requiredDisplayCategoryएट्रिब्यूट के लिएxr_projectedतय करता है. इससे कनेक्ट किए गए डिवाइस के हार्डवेयर को ऐक्सेस किया जा सकता है.
अपनी गतिविधि बनाना
इसके बाद, आपको एक छोटी गतिविधि बनानी होगी. इससे डिसप्ले चालू होने पर, एआई चश्मे पर कुछ दिखाया जा सकेगा.
/**
* When this activity launches, it stays in the started state.
*/
class AIGlassesActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val projectedWindowManager = ProjectedWindowManager.create(this)
setContent {
GlassesComposeContent {
GlimmerTheme {
TopBarScaffold(modifier = Modifier.background(color = Color.Black)) {
ProjectedDisplayController.create(activity)
.addPresentationModeChangedListener {
presentationModeFlags ->
// Check whether visuals are on or off
val areVisualsOff = !presentationModeFlags.hasPresentationMode(VISUALS_ON)
}
// Conditional UI based on presentation mode.
if (areVisualsOff) {
// Implementation for the when the display is off.
} else {
DisplayUi()
}
}
}
}
}
}
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को बढ़ाता है. यह मोबाइल डेवलपमेंट में आपकी उम्मीद के मुताबिक होता है.onCreate()में मौजूदsetContentब्लॉक, ऐक्टिविटी के लिए कंपोज़ेबल यूज़र इंटरफ़ेस (यूआई) ट्री का रूट तय करता है.- यह ऐक्टिविटी के
onCreate()मेथड के दौरान यूज़र इंटरफ़ेस (यूआई) को शुरू करता है. इसके बारे में जानने के लिए, प्रोजेक्ट की गई ऐक्टिविटी की लाइफ़साइकल देखें. - यह Jetpack Compose Glimmer का इस्तेमाल करके, यूज़र इंटरफ़ेस (यूआई) के लिए काले रंग के बैकग्राउंड वाला
TopBarScaffoldबेस लेआउट सेट अप करता है.
ऐप्लिकेशन बनाने की सुविधा लागू करना
आपने जो गतिविधि बनाई है वह DisplayUi कंपोज़ेबल फ़ंक्शन को रेफ़र करती है. आपको इसे लागू करना होगा. नीचे दिए गए कोड में, Jetpack Compose Glimmer का इस्तेमाल किया गया है. इससे एक ऐसा कंपोज़ेबल तय किया जा सकता है जो एआई चश्मे के डिसप्ले पर कुछ टेक्स्ट दिखा सके:
@Composable
fun DisplayUi() {
Box(
modifier = Modifier
.fillMaxSize(),
contentAlignment = Alignment.Center
) {
Text("Hello World!")
}
}
कोड के बारे में अहम जानकारी
- आपने अपनी गतिविधि में बताया था कि
DisplayUiफ़ंक्शन में, कंपोज़ेबल कॉन्टेंट शामिल होता है. यह कॉन्टेंट, एआई चश्मे का डिसप्ले चालू होने पर उपयोगकर्ता को दिखता है. - Jetpack Compose Glimmer
Textकॉम्पोनेंट, चश्मे के डिसप्ले पर "Hello World!" टेक्स्ट दिखाता है.
अपनी गतिविधि शुरू करना
आपने बुनियादी गतिविधि बना ली है. अब इसे अपने चश्मे पर लॉन्च किया जा सकता है. चश्मे के हार्डवेयर को ऐक्सेस करने के लिए, आपके ऐप्लिकेशन को अपनी गतिविधि शुरू करनी होगी. इसके लिए, उसे कुछ खास विकल्पों का इस्तेमाल करना होगा. इन विकल्पों से सिस्टम को प्रोजेक्ट किए गए कॉन्टेक्स्ट का इस्तेमाल करने के बारे में पता चलता है. इसे यहां दिए गए कोड में दिखाया गया है:
val options = ProjectedContext.createProjectedActivityOptions(context)
val intent = Intent(context, AIGlassesActivity::class.java)
context.startActivity(intent, options.toBundle())
ProjectedContext में मौजूद createProjectedActivityOptions() तरीके से, अनुमानित कॉन्टेक्स्ट में अपनी गतिविधि शुरू करने के लिए ज़रूरी विकल्प जनरेट किए जाते हैं.
context पैरामीटर, फ़ोन या चश्मे के डिवाइस से मिला कोई कॉन्टेक्स्ट हो सकता है.
देखें कि एआई चश्मा कनेक्ट है या नहीं
अगर आपको अपनी गतिविधि शुरू करने से पहले यह पता लगाना है कि उपयोगकर्ता के एआई चश्मे, उसके फ़ोन से कनेक्ट हैं या नहीं, तो ProjectedContext.isProjectedDeviceConnected() तरीके का इस्तेमाल करें. यह तरीका, Flow<Boolean> दिखाता है. आपका ऐप्लिकेशन इसे देखकर, कनेक्शन की स्थिति के बारे में रीयल-टाइम अपडेट पा सकता है.
अगले चरण
आपने एआई चश्मे के लिए पहली गतिविधि बना ली है. अब इसकी सुविधाओं को बढ़ाने के अन्य तरीके जानें:
- लिखे गए शब्दों को सुनने की सुविधा का इस्तेमाल करके ऑडियो आउटपुट को मैनेज करना
- अपने-आप बोली पहचानने की सुविधा का इस्तेमाल करके ऑडियो इनपुट को मैनेज करना
- Jetpack Compose Glimmer की मदद से यूज़र इंटरफ़ेस (यूआई) बनाना
- एआई चश्मे के हार्डवेयर को ऐक्सेस करना