AI চশমার অভিজ্ঞতা বিদ্যমান Android Activity ফ্রেমওয়ার্ক API-এর উপর তৈরি এবং AI চশমার অনন্য দিকগুলিকে সমর্থন করার জন্য অতিরিক্ত ধারণা অন্তর্ভুক্ত করে । XR হেডসেটগুলি ডিভাইসে একটি সম্পূর্ণ APK চালায় তার বিপরীতে, AI চশমাগুলি একটি ডেডিকেটেড অ্যাক্টিভিটি ব্যবহার করে যা আপনার ফোনের বিদ্যমান অ্যাপের মধ্যে চলে। এই অ্যাক্টিভিটি হোস্ট ডিভাইস থেকে AI চশমায় প্রজেক্ট করা হয়।
আপনার অ্যাপের AI চশমার অভিজ্ঞতা তৈরি করতে, আপনি AI চশমার জন্য একটি নতুন প্রজেক্টেড Activity তৈরি করে আপনার বিদ্যমান ফোন অ্যাপটি প্রসারিত করুন। এই অ্যাক্টিভিটি AI চশমার উপর আপনার অ্যাপের জন্য প্রধান লঞ্চ এন্ট্রি পয়েন্ট হিসেবে কাজ করে। এই পদ্ধতিটি ডেভেলপমেন্টকে সহজ করে তোলে কারণ আপনি আপনার ফোন এবং AI চশমার অভিজ্ঞতার মধ্যে ব্যবসায়িক যুক্তি ভাগ করে নিতে এবং পুনঃব্যবহার করতে পারেন।
আপনার অ্যাপের ম্যানিফেস্টে আপনার কার্যকলাপ ঘোষণা করুন
অন্যান্য ধরণের কার্যকলাপের মতোই, সিস্টেমটি এটি দেখতে এবং চালানোর জন্য আপনার অ্যাপের ম্যানিফেস্ট ফাইলে আপনার কার্যকলাপ ঘোষণা করতে হবে।
<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নির্দিষ্ট করে যা সিস্টেমকে বলে যে এই অ্যাক্টিভিটিটি একটি সংযুক্ত ডিভাইস থেকে হার্ডওয়্যার অ্যাক্সেস করার জন্য একটি প্রজেক্টেড প্রসঙ্গ ব্যবহার করবে।
আপনার কার্যকলাপ তৈরি করুন
এরপর, আপনি একটি ছোট অ্যাক্টিভিটি তৈরি করবেন যা ডিসপ্লে চালু হলেই AI চশমায় কিছু প্রদর্শন করতে পারে।
/**
* 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.
}
}
কোড সম্পর্কে গুরুত্বপূর্ণ বিষয়সমূহ
-
AIGlassesActivityComponentActivityপ্রসারিত করে, ঠিক যেমনটি আপনি মোবাইল ডেভেলপমেন্টে আশা করেন। -
onCreate()এর মধ্যেsetContentব্লকটি কার্যকলাপের জন্য Composable UI গাছের মূল নির্ধারণ করে। - কার্যকলাপের
onCreate()পদ্ধতির সময় UI আরম্ভ করে ( প্রক্ষেপিত কার্যকলাপের জীবনচক্র দেখুন)। - Jetpack Compose Glimmer ব্যবহার করে UI এর জন্য কালো ব্যাকগ্রাউন্ড সহ একটি
TopBarScaffoldবেস লেআউট সেট আপ করে।
কম্পোজেবল বাস্তবায়ন করুন
আপনার তৈরি করা কার্যকলাপটি একটি DisplayUi কম্পোজেবল ফাংশনকে নির্দেশ করে যা আপনাকে বাস্তবায়ন করতে হবে। নিম্নলিখিত কোডটি Jetpack Compose Glimmer ব্যবহার করে একটি কম্পোজেবল সংজ্ঞায়িত করে যা AI চশমার ডিসপ্লেতে কিছু টেক্সট প্রদর্শন করতে পারে:
@Composable
fun DisplayUi() {
Box(
modifier = Modifier
.fillMaxSize(),
contentAlignment = Alignment.Center
) {
Text("Hello World!")
}
}
কোড সম্পর্কে গুরুত্বপূর্ণ বিষয়সমূহ
- যেমনটি আপনি আগে আপনার কার্যকলাপে সংজ্ঞায়িত করেছেন,
DisplayUiফাংশনে কম্পোজেবল কন্টেন্ট অন্তর্ভুক্ত থাকে যা ব্যবহারকারী AI চশমার ডিসপ্লে চালু থাকাকালীন দেখতে পান। - জেটপ্যাক কম্পোজ গ্লিমার
Textকম্পোনেন্ট চশমার ডিসপ্লেতে "হ্যালো ওয়ার্ল্ড!" লেখাটি প্রদর্শন করে।
আপনার কার্যকলাপ শুরু করুন
এখন যেহেতু আপনি একটি মৌলিক কার্যকলাপ তৈরি করেছেন, আপনি এটি আপনার চশমার উপর চালু করতে পারেন। চশমার হার্ডওয়্যার অ্যাক্সেস করার জন্য, আপনার অ্যাপটিকে নির্দিষ্ট বিকল্পগুলি দিয়ে আপনার কার্যকলাপ শুরু করতে হবে যা সিস্টেমকে একটি প্রজেক্টেড প্রসঙ্গ ব্যবহার করতে বলে, যেমনটি নিম্নলিখিত কোডে দেখানো হয়েছে:
val options = ProjectedContext.createProjectedActivityOptions(context)
val intent = Intent(context, AIGlassesActivity::class.java)
context.startActivity(intent, options.toBundle())
ProjectedContext এ createProjectedActivityOptions() পদ্ধতিটি একটি প্রজেক্টেড প্রসঙ্গে আপনার কার্যকলাপ শুরু করার জন্য প্রয়োজনীয় বিকল্পগুলি তৈরি করে। context প্যারামিটারটি ফোন বা চশমা ডিভাইসের একটি প্রসঙ্গ হতে পারে।
AI চশমা সংযুক্ত আছে কিনা তা পরীক্ষা করুন
আপনার কার্যকলাপ শুরু করার আগে যদি আপনি নির্ধারণ করতে চান যে কোনও ব্যবহারকারীর AI চশমা তাদের ফোনের সাথে সংযুক্ত কিনা, তাহলে ProjectedContext.isProjectedDeviceConnected() পদ্ধতিটি ব্যবহার করুন। এই পদ্ধতিটি একটি Flow<Boolean> প্রদান করে যা আপনার অ্যাপ সংযোগের স্থিতির রিয়েল-টাইম আপডেট পেতে পর্যবেক্ষণ করতে পারে।
পরবর্তী পদক্ষেপ
এখন যেহেতু আপনি AI চশমার জন্য আপনার প্রথম কার্যকলাপ তৈরি করেছেন, এর কার্যকারিতা বাড়ানোর অন্যান্য উপায়গুলি অন্বেষণ করুন:
- টেক্সট টু স্পিচ ব্যবহার করে অডিও আউটপুট পরিচালনা করুন
- স্বয়ংক্রিয় স্পিচ রিকগনিশন ব্যবহার করে অডিও ইনপুট পরিচালনা করুন
- জেটপ্যাক কম্পোজ গ্লিমার দিয়ে UI তৈরি করুন
- এআই চশমার হার্ডওয়্যার অ্যাক্সেস করুন