বিভিন্ন ধরণের AI চশমার বিভিন্ন ক্ষমতা থাকে। উদাহরণস্বরূপ, যদিও সমস্ত AI চশমা ভয়েসের মাধ্যমে অডিও অভিজ্ঞতা প্রদান করে, কিছু AI চশমাতে একটি ডিসপ্লেও থাকে যেখানে আপনার অ্যাপ Jetpack Compose Glimmer দিয়ে তৈরি UI দেখাতে পারে।
বিভিন্ন ধরণের AI চশমা ডিভাইস জুড়ে একটি নির্বিঘ্ন ব্যবহারকারীর অভিজ্ঞতা তৈরি করতে, বিভিন্ন ডিভাইসের ক্ষমতা পরীক্ষা করার জন্য আপনার চশমার জন্য Activity পরিকল্পনা করুন। এই পদ্ধতিটি আপনাকে নির্দিষ্ট ডিভাইসগুলিকে লক্ষ্য করে একাধিক কার্যকলাপ তৈরি করার পরিবর্তে একটি কার্যকলাপ তৈরি করতে দেয় যা তার আচরণকে অভিযোজিত করে, বিকাশকে সহজ করে তোলে।
প্রজেক্টেড কার্যকলাপের জীবনচক্র বুঝুন
আপনি AI চশমার জন্য যে কার্যকলাপ তৈরি করেন তা সরাসরি ডিভাইসে চলে না, বরং একটি হোস্ট ডিভাইস (যেমন ব্যবহারকারীর ফোন) থেকে ডিভাইসে প্রজেক্ট করা হয়। এই উদ্দেশ্যে আপনি যে নিবেদিতপ্রাণ কার্যকলাপগুলি তৈরি করেন তা হল প্রজেক্টেড কার্যকলাপ । প্রজেক্টেড কার্যকলাপগুলির জীবনচক্র স্ট্যান্ডার্ড অ্যাক্টিভিটি জীবনচক্রের উপর ভিত্তি করে তৈরি করা হয়, তবে এতে বেশ কয়েকটি মূল পার্থক্যও রয়েছে যা বিভিন্ন ধরণের AI চশমার ক্ষমতাকে সমর্থন করে।

এখানে মূল ইভেন্টগুলির একটি বিশদ বিবরণ দেওয়া হল, যেখানে AI চশমায় প্রজেক্ট করা কার্যকলাপের সাথে সম্পর্কিত ইন্টারঅ্যাকশনগুলির জন্য কলআউটগুলি অন্তর্ভুক্ত রয়েছে:
-
onCreate()- প্রজেক্টেড অ্যাক্টিভিটি তৈরি হলে কল করা হয়।
- আপনার অ্যাপের Jetpack Compose Glimmer UI এবং অন্যান্য উপাদানগুলি এখানে চালু করুন।
-
onStart()- যখন প্রজেক্টেড অ্যাক্টিভিটি শুরু হচ্ছে এবং ব্যবহারকারী অ্যাপটি সম্পর্কে অবগত আছেন তখন কল করা হয়।
-
onResume()- যখন প্রজেক্টেড অ্যাক্টিভিটি ফোকাসে ফিরে আসে তখন কল করা হয়। অ্যাক্টিভিটি ফোকাসে থাকাকালীন, এটি ইন্টারঅ্যাক্টেবল থাকে এবং টাচপ্যাড বা বোতাম ইনপুট ব্যবহার করতে পারে।
- চশমাটি মাথা থেকে খুলে ফেলার পর (খোলা) আবার লাগানো হলে (পরাজিত) ডাকা হয়।
-
onPause()- যখন প্রজেক্টেড অ্যাক্টিভিটি ফোকাস হারিয়ে ফেলে, কিন্তু ব্যবহারকারী এখনও আপনার অ্যাপ সম্পর্কে সচেতন থাকে, তখন কল করা হয়। অ্যাক্টিভিটি ফোকাসের বাইরে থাকলেও, এটি ইন্টারঅ্যাক্টেবল নয়, ইনপুট গ্রহণ বন্ধ করে দেয়।
-
onStop()- যখন সিস্টেম মনে করে যে ব্যবহারকারী আপনার অ্যাপ সম্পর্কে আর অবগত নন, তখন কল করা হয়।
- মাথা থেকে চশমা খুলে ফেলা হলে (খোলা) ডাকা হয়।
-
onDestroy()- যখন প্রজেক্টেড অ্যাক্টিভিটি ধ্বংস হতে চলেছে তখন কল করা হয়। যখন এটি কল করা হয়, তখন সিস্টেমটি অ্যাক্টিভিটির সাথে সম্পর্কিত সমস্ত রিসোর্স ছেড়ে দেয়।
ডিসপ্লের অবস্থা কীভাবে প্রজেক্টেড অ্যাক্টিভিটি লাইফসাইকেলকে প্রভাবিত করে তা বুঝুন
একটি স্ট্যান্ডার্ড Activity তে, ডিভাইসের স্ক্রিন বন্ধ হয়ে গেলে লাইফসাইকেলের অবস্থা পরিবর্তিত হয়, সাধারণত onPause() অথবা onStop() তে স্থানান্তরিত হয়। বিপরীতে, AI চশমার ডিসপ্লে চালু বা বন্ধ করলে প্রজেক্টেড অ্যাক্টিভিটি লাইফসাইকেল পরিবর্তন হয় না। এই আচরণের অর্থ হল আপনার প্রজেক্টেড অ্যাক্টিভিটি ডিসপ্লে বন্ধ থাকা সত্ত্বেও Started বা Resumed অবস্থায় চলতে থাকে, যা আপনার অ্যাপের অডিও অভিজ্ঞতাগুলিকে কোনও বাধা ছাড়াই চালিয়ে যেতে দেয়।
বিভিন্ন সিস্টেম এবং ব্যবহারকারীর ইভেন্টের ফলে সৃষ্ট অন্যান্য কার্যকলাপের অবস্থার পরিবর্তনগুলি স্বাভাবিকভাবেই আচরণ করে।
ব্যবহারকারীর সচেতনতা আপনার প্রজেক্টেড কার্যকলাপকে কীভাবে প্রভাবিত করে তা বুঝুন
একজন ব্যবহারকারী আপনার প্রজেক্টেড অ্যাক্টিভিটি সম্পর্কে সচেতন হতে পারেন, এমনকি যদি তা দৃশ্যমান নাও হয়। সচেতনতা বলতে ব্যবহারকারী আপনার অ্যাপের অভিজ্ঞতা কীভাবে অনুভব করতে এবং তার সাথে ইন্টারঅ্যাক্ট করতে পারে তার সমস্ত উপায়কে বোঝায়, যার মধ্যে নিম্নলিখিতগুলি অন্তর্ভুক্ত রয়েছে:
- অডিও, শ্রবণযোগ্য প্রতিক্রিয়া, বা অন্যান্য শব্দ সংকেত শোনা।
- অ্যাপের এমন অ্যাকশন যা ব্যবহারকারী-মুখী LED ট্রিগার করে, যেমন যদি আপনার অ্যাপ ক্যামেরা বা মাইক্রোফোন অ্যাক্সেস করে তবে গোপনীয়তা নির্দেশক।
এই পরিস্থিতিতে, ব্যবহারকারী জানেন যে AI চশমাগুলি সক্রিয় এবং সাড়া দিচ্ছে, এমনকি যদি তারা কোনও ডিসপ্লের দিকে নাও তাকায়:
- প্রজেক্টেড অ্যাক্টিভিটির জন্য
onStart()অবস্থা মানে অ্যাক্টিভিটি সক্রিয়। -
onResume()অবস্থা বলতে বোঝায় অ্যাক্টিভিটিটি ইন্টারঅ্যাক্টেবল এবং টাচপ্যাড ইনপুট গ্রহণ করতে পারে, অথবা প্রাথমিক ইনপুট প্রেরণ গ্রহণ করছে।
যতক্ষণ ব্যবহারকারী আপনার অ্যাপ সম্পর্কে অবগত থাকে, ততক্ষণ আপনার কার্যকলাপ সক্রিয় এবং সম্মুখভাগে থাকে। যদি সিস্টেম অল্প সময়ের জন্য সচেতনতার কোনও সংকেত সনাক্ত না করে, তাহলে সিস্টেম সম্মুখভাগ থেকে কার্যকলাপটি সরিয়ে দেয় এবং অবশেষে onStop() ট্রিগার করে।
প্রজেক্টেড কার্যকলাপ এবং প্রজেক্টেড প্রেক্ষাপট বুঝুন
AI চশমাকে একটি সংযুক্ত ডিভাইস হিসেবে বিবেচনা করা হয় যা ব্যবহারকারীর ফোনের ক্ষমতা বৃদ্ধি করে। একটি প্রজেক্টেড কনটেক্সট হল একটি ডিভাইস-সচেতন Context যা অ্যাপগুলিকে ফোনের হার্ডওয়্যারের পরিবর্তে সংযুক্ত চশমা ডিভাইসের হার্ডওয়্যারের সাথে ইন্টারঅ্যাক্ট করতে দেয়—যেমন এর সেন্সর, ক্যামেরা বা মাইক্রোফোন। আপনি যখন AI চশমার জন্য অভিজ্ঞতা তৈরি করেন, তখন আপনার অ্যাপকে চশমার হার্ডওয়্যার অ্যাক্সেস করার জন্য একটি প্রজেক্টেড কনটেক্সট ব্যবহার করতে হবে।
কলিং অ্যাক্টিভিটির প্রেক্ষাপটের উপর নির্ভর করে আপনার অ্যাপে একটি প্রজেক্টেড প্রেক্ষাপট স্বয়ংক্রিয়ভাবে মঞ্জুর করা যেতে পারে:
প্রজেক্টেড অ্যাক্টিভিটির জন্য : যদি আপনার অ্যাপের কোড আপনার প্রজেক্টেড অ্যাক্টিভিটির ভেতর থেকে চলমান থাকে, তাহলে এর নিজস্ব অ্যাক্টিভিটি কনটেক্সট ইতিমধ্যেই একটি প্রজেক্টেড কনটেক্সট। এই পরিস্থিতিতে, সেই অ্যাক্টিভিটির ভেতর করা কলগুলি ইতিমধ্যেই চশমার হার্ডওয়্যার অ্যাক্সেস করতে পারে।
ফোন অ্যাপ বা পরিষেবার জন্য : যদি আপনার প্রজেক্টেড অ্যাক্টিভিটির বাইরের কোনও অ্যাপের (যেমন কোনও ফোন অ্যাক্টিভিটি বা কোনও পরিষেবা) চশমার হার্ডওয়্যার অ্যাক্সেস করার প্রয়োজন হয়, তাহলে এটিকে স্পষ্টভাবে একটি প্রজেক্টেড কনটেক্সট পেতে হবে। এটি করার জন্য,
createProjectedDeviceContext()পদ্ধতিটি ব্যবহার করুন।
আরও তথ্যের জন্য, AI চশমার হার্ডওয়্যার অ্যাক্সেস করতে একটি প্রজেক্টেড প্রসঙ্গ ব্যবহার করুন দেখুন।
ডিভাইস-সচেতন API গুলি বুঝুন
কিছু স্ট্যান্ডার্ড অ্যান্ড্রয়েড এপিআই কলিং অ্যাক্টিভিটির Context এর উপর নির্ভর করে কোন ডিভাইসের হার্ডওয়্যার অ্যাক্সেস করবে তা পরিবর্তন করে। যখন এই এপিআইগুলি একটি প্রজেক্টেড কনটেক্সট পায়, তখন তারা হোস্ট ফোন ডিভাইসের হার্ডওয়্যারের পরিবর্তে এআই চশমার হার্ডওয়্যার অ্যাক্সেস করে:
-
CameraManager: চশমার ক্যামেরা অ্যাক্সেস করে। -
SensorManager: চশমা থেকে সেন্সর ডেটা (উদাহরণস্বরূপ, জাইরোস্কোপ বা অ্যাক্সিলোমিটার ডেটা) পুনরুদ্ধার করে। -
AudioManager: চশমার অডিও স্ট্রিম, ভলিউম এবং রাউটিং পরিচালনা করে। -
AudioRecord: চশমার মাইক্রোফোন ব্যবহার করে অডিও ক্যাপচার করে।