AI চশমার অভিজ্ঞতা বিদ্যমান Android Activity ফ্রেমওয়ার্ক API-এর উপর তৈরি এবং AI চশমার অনন্য দিকগুলিকে সমর্থন করার জন্য অতিরিক্ত ধারণা অন্তর্ভুক্ত করে । XR হেডসেটগুলি ডিভাইসে একটি সম্পূর্ণ APK চালায় তার বিপরীতে, AI চশমাগুলি একটি ডেডিকেটেড অ্যাক্টিভিটি ব্যবহার করে যা আপনার ফোনের বিদ্যমান অ্যাপের মধ্যে চলে। এই অ্যাক্টিভিটি হোস্ট ডিভাইস থেকে AI চশমায় প্রজেক্ট করা হয়।
আপনার অ্যাপের AI চশমার অভিজ্ঞতা তৈরি করতে, আপনি AI চশমার জন্য একটি নতুন প্রজেক্টেড Activity তৈরি করে আপনার বিদ্যমান ফোন অ্যাপটি প্রসারিত করুন। এই অ্যাক্টিভিটি AI চশমার উপর আপনার অ্যাপের জন্য প্রধান লঞ্চ এন্ট্রি পয়েন্ট হিসেবে কাজ করে। এই পদ্ধতিটি ডেভেলপমেন্টকে সহজ করে তোলে কারণ আপনি আপনার ফোন এবং AI চশমার অভিজ্ঞতার মধ্যে ব্যবসায়িক যুক্তি ভাগ করে নিতে এবং পুনঃব্যবহার করতে পারেন।
সংস্করণের সামঞ্জস্য
Jetpack XR SDK-এর জন্য Android SDK সামঞ্জস্যের প্রয়োজনীয়তাগুলি পরীক্ষা করুন।
নির্ভরতা
এআই চশমার জন্য নিম্নলিখিত লাইব্রেরি নির্ভরতা যোগ করুন:
খাঁজকাটা
dependencies { implementation "androidx.xr.runtime:runtime:1.0.0-alpha10" implementation "androidx.xr.glimmer:glimmer:1.0.0-alpha06" implementation "androidx.xr.projected:projected:1.0.0-alpha04" implementation "androidx.xr.arcore:arcore:1.0.0-alpha10" }
কোটলিন
dependencies { implementation("androidx.xr.runtime:runtime:1.0.0-alpha10") implementation("androidx.xr.glimmer:glimmer:1.0.0-alpha06") implementation("androidx.xr.projected:projected:1.0.0-alpha04") implementation("androidx.xr.arcore:arcore:1.0.0-alpha10") }
আপনার অ্যাপের ম্যানিফেস্টে আপনার কার্যকলাপ ঘোষণা করুন
অন্যান্য ধরণের কার্যকলাপের মতোই, সিস্টেমটি এটি দেখতে এবং চালানোর জন্য আপনার অ্যাপের ম্যানিফেস্ট ফাইলে আপনার কার্যকলাপ ঘোষণা করতে হবে।
<application>
<activity
android:name="com.example.xr.projected.GlassesMainActivity"
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নির্দিষ্ট করে যা সিস্টেমকে বলে যে এই অ্যাক্টিভিটিটি একটি সংযুক্ত ডিভাইস থেকে হার্ডওয়্যার অ্যাক্সেস করার জন্য একটি প্রজেক্টেড প্রসঙ্গ ব্যবহার করবে।
আপনার কার্যকলাপ তৈরি করুন
এরপর, আপনি একটি ছোট অ্যাক্টিভিটি তৈরি করবেন যা ডিসপ্লে চালু হলেই AI চশমায় কিছু প্রদর্শন করতে পারে।
@OptIn(ExperimentalProjectedApi::class) class GlassesMainActivity : ComponentActivity() { private var displayController: ProjectedDisplayController? = null private var isVisualUiSupported by mutableStateOf(false) private var areVisualsOn by mutableStateOf(true) override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) lifecycle.addObserver(object : DefaultLifecycleObserver { override fun onDestroy(owner: LifecycleOwner) { displayController?.close() displayController = null } }) lifecycleScope.launch { // Check device capabilities val projectedDeviceController = ProjectedDeviceController.create(this@GlassesMainActivity) isVisualUiSupported = projectedDeviceController.capabilities.contains(CAPABILITY_VISUAL_UI) val controller = ProjectedDisplayController.create(this@GlassesMainActivity) displayController = controller val observer = GlassesLifecycleObserver( context = this@GlassesMainActivity, controller = controller, onVisualsChanged = { visualsOn -> areVisualsOn = visualsOn } ) lifecycle.addObserver(observer) } setContent { GlimmerTheme { HomeScreen( areVisualsOn = areVisualsOn, isVisualUiSupported = isVisualUiSupported, onClose = { finish() } ) } } } }
কোড সম্পর্কে গুরুত্বপূর্ণ বিষয়সমূহ
- Jetpack Projected লাইব্রেরি থেকে পরীক্ষামূলক API ব্যবহার করার জন্য নির্বাচন করে।
-
GlassesMainActivityComponentActivityপ্রসারিত করে, ঠিক যেমনটি আপনি মোবাইল ডেভেলপমেন্টে আশা করেন। - যেহেতু সব AI চশমায় ডিসপ্লে থাকে না, তাই
ProjectedDeviceControllerব্যবহার করে ডিভাইসটিতে ডিসপ্লে আছে কিনা তা পরীক্ষা করা হয়। -
onCreateফাংশনের মধ্যেsetContentব্লকটি কার্যকলাপের জন্য Composable UI গাছের মূল নির্ধারণ করে। আপনি Jetpack Compose Glimmer ব্যবহার করেHomeScreencomposable বাস্তবায়ন করবেন। - কার্যকলাপের
onCreateপদ্ধতির সময় UI আরম্ভ করে ( প্রক্ষেপিত কার্যকলাপের জীবনচক্র দেখুন)।
কম্পোজেবল বাস্তবায়ন করুন
আপনার তৈরি করা কার্যকলাপটি একটি HomeScreen কম্পোজেবল ফাংশনকে নির্দেশ করে যা আপনাকে বাস্তবায়ন করতে হবে। নিম্নলিখিত কোডটি Jetpack Compose Glimmer ব্যবহার করে একটি কম্পোজেবল সংজ্ঞায়িত করে যা AI চশমার ডিসপ্লেতে কিছু টেক্সট প্রদর্শন করতে পারে:
@Composable fun HomeScreen( areVisualsOn: Boolean, isVisualUiSupported: Boolean, onClose: () -> Unit, modifier: Modifier = Modifier ) { Box( modifier = modifier .surface(focusable = false) .fillMaxSize(), contentAlignment = Alignment.Center ) { if (isVisualUiSupported) { Card( title = { Text("Android XR") }, action = { Button(onClick = onClose) { Text("Close") } } ) { if (areVisualsOn) { Text("Hello, AI Glasses!") } else { Text("Display is off. Audio guidance active.") } } } else { Text("Audio Guidance Mode Active") } } }
কোড সম্পর্কে গুরুত্বপূর্ণ বিষয়সমূহ
- যেমনটি আপনি আগে আপনার কার্যকলাপে সংজ্ঞায়িত করেছেন,
HomeScreenফাংশনে কম্পোজেবল কন্টেন্ট অন্তর্ভুক্ত থাকে যা ব্যবহারকারী AI চশমার ডিসপ্লে চালু থাকাকালীন দেখতে পান। - জেটপ্যাক কম্পোজ গ্লিমার
Textকম্পোনেন্ট চশমার ডিসপ্লেতে "হ্যালো, এআই গ্লাসেস!" লেখাটি প্রদর্শন করে। - জেটপ্যাক কম্পোজ গ্লিমার
ButtonAI চশমা কার্যকলাপেfinish()থেকেonCloseকল করে কার্যকলাপটি বন্ধ করে।
AI চশমা সংযুক্ত আছে কিনা তা পরীক্ষা করুন
আপনার কার্যকলাপ শুরু করার আগে ব্যবহারকারীর AI চশমা তাদের ফোনের সাথে সংযুক্ত কিনা তা নির্ধারণ করতে, ProjectedContext.isProjectedDeviceConnected পদ্ধতিটি ব্যবহার করুন। এই পদ্ধতিটি একটি Flow<Boolean> প্রদান করে যা আপনার অ্যাপ সংযোগের স্থিতির রিয়েল-টাইম আপডেট পেতে পর্যবেক্ষণ করতে পারে।
আপনার কার্যকলাপ শুরু করুন
এখন যেহেতু আপনি একটি মৌলিক কার্যকলাপ তৈরি করেছেন, আপনি এটি আপনার চশমার উপর চালু করতে পারেন। চশমার হার্ডওয়্যার অ্যাক্সেস করার জন্য, আপনার অ্যাপটিকে নির্দিষ্ট বিকল্পগুলি দিয়ে আপনার কার্যকলাপ শুরু করতে হবে যা সিস্টেমকে একটি প্রজেক্টেড প্রসঙ্গ ব্যবহার করতে বলে, যেমনটি নিম্নলিখিত কোডে দেখানো হয়েছে:
val options = ProjectedContext.createProjectedActivityOptions(context) val intent = Intent(context, GlassesMainActivity::class.java) context.startActivity(intent, options.toBundle())
ProjectedContext এ createProjectedActivityOptions পদ্ধতিটি একটি প্রজেক্টেড প্রসঙ্গে আপনার কার্যকলাপ শুরু করার জন্য প্রয়োজনীয় বিকল্পগুলি তৈরি করে। context প্যারামিটারটি ফোন বা চশমা ডিভাইসের একটি প্রসঙ্গ হতে পারে।
পরবর্তী পদক্ষেপ
এখন যেহেতু আপনি AI চশমার জন্য আপনার প্রথম কার্যকলাপ তৈরি করেছেন, এর কার্যকারিতা বাড়ানোর অন্যান্য উপায়গুলি অন্বেষণ করুন:
- টেক্সট টু স্পিচ ব্যবহার করে অডিও আউটপুট পরিচালনা করুন
- স্বয়ংক্রিয় স্পিচ রিকগনিশন ব্যবহার করে অডিও ইনপুট পরিচালনা করুন
- জেটপ্যাক কম্পোজ গ্লিমার দিয়ে UI তৈরি করুন
- এআই চশমার হার্ডওয়্যার অ্যাক্সেস করুন