
অ্যান্ড্রয়েড টিভি ইনপুট ফ্রেমওয়ার্ক (টিআইএফ) অ্যান্ড্রয়েড টিভিতে লাইভ কন্টেন্ট ডেলিভারি সহজ করে। অ্যান্ড্রয়েড টিআইএফ অ্যান্ড্রয়েড টিভি নিয়ন্ত্রণের জন্য ইনপুট মডিউল তৈরি করার জন্য নির্মাতাদের একটি আদর্শ API প্রদান করে এবং টিভি ইনপুট দ্বারা প্রকাশিত মেটাডেটার মাধ্যমে লাইভ টিভি অনুসন্ধান এবং সুপারিশগুলি সক্ষম করে।
ফ্রেমওয়ার্কটি টিভি মান বা আঞ্চলিক প্রয়োজনীয়তা বাস্তবায়নের চেষ্টা করে না, তবে ডিভাইস নির্মাতাদের পুনরায় বাস্তবায়ন ছাড়াই আঞ্চলিক ডিজিটাল টিভি সম্প্রচারের মান পূরণ করা সহজ করে তোলে। এই বিভাগে ডকুমেন্টেশন তৃতীয় পক্ষের অ্যাপ ডেভেলপারদের জন্যও উপযোগী হতে পারে যারা কাস্টম টিভি ইনপুট তৈরি করতে চান।
উপাদান
অ্যান্ড্রয়েড টিভি ইনপুট ফ্রেমওয়ার্ক বাস্তবায়নে একটি টিভি ইনপুট ম্যানেজার অন্তর্ভুক্ত রয়েছে। বিল্ট-ইন এবং আইপি টিউনার চ্যানেল অ্যাক্সেস করতে TIF টিভি অ্যাপের সাথে কাজ করে, একটি সিস্টেম অ্যাপ যা তৃতীয় পক্ষের অ্যাপ দ্বারা প্রতিস্থাপন করা যায় না। টিভি অ্যাপটি টিভি ইনপুট ম্যানেজারের মাধ্যমে ডিভাইস নির্মাতা বা অন্যান্য পক্ষের দ্বারা সরবরাহ করা টিভি ইনপুট মডিউলগুলির সাথে যোগাযোগ করে।
টিভি ইনপুট ফ্রেমওয়ার্কের মধ্যে রয়েছে:
- টিভি প্রদানকারী (
com.android.providers.tv.TvProvider
): চ্যানেল, প্রোগ্রাম এবং সংশ্লিষ্ট অনুমতিগুলির একটি ডাটাবেস - টিভি অ্যাপ (
com.android.tv.TvActivity
): অ্যাপ যা ব্যবহারকারীর ইন্টারঅ্যাকশন পরিচালনা করে - টিভি ইনপুট ম্যানেজার (
android.media.tv.TvInputManager
): টিভি ইনপুটগুলিকে টিভি অ্যাপের সাথে যোগাযোগ করতে দেয় - টিভি ইনপুট: একটি অ্যাপ যা ফিজিক্যাল বা ভার্চুয়াল টিউনার এবং ইনপুট পোর্ট উপস্থাপন করে
- টিভি ইনপুট HAL (
tv_input
মডিউল): একটি হার্ডওয়্যার সংজ্ঞা যা বাস্তবায়িত হলে সিস্টেম টিভি ইনপুটগুলিকে টিভি-নির্দিষ্ট হার্ডওয়্যার অ্যাক্সেস করতে দেয় - অভিভাবকীয় নিয়ন্ত্রণ: চ্যানেল এবং প্রোগ্রামগুলিকে ব্লক করার অনুমতি দেওয়ার প্রযুক্তি
- HDMI-CEC: HDMI এর মাধ্যমে বিভিন্ন ডিভাইসের রিমোট কন্ট্রোলের অনুমতি দেওয়ার প্রযুক্তি
- টিউনার ফ্রেমওয়ার্ক: বিল্ট-ইন-টিউনার টিভি ইনপুটের জন্য একটি কাঠামো
- MediaCas: শর্তাধীন অ্যাক্সেসের জন্য একটি কাঠামো
- টিউনার রিসোর্স ম্যানেজার: টিভি ইনপুট, মিডিয়াক্যাস এবং বিল্ট-ইন-টিউনার ইনপুটের জন্য হার্ডওয়্যার সংস্থান পরিচালনা করার জন্য একটি পরিষেবা
এই উপাদানগুলি নীচে বিস্তারিতভাবে আচ্ছাদিত করা হয়েছে। অ্যান্ড্রয়েড টিভি ইনপুট ফ্রেমওয়ার্ক আর্কিটেকচারের বিশদ দৃশ্যের জন্য নিম্নলিখিত চিত্রটি দেখুন।

প্রবাহ
এখানে স্থাপত্য কিভাবে ব্যবহার করা হয়:
- ব্যবহারকারী টিভি অ্যাপ দেখেন এবং তার সাথে ইন্টারঅ্যাক্ট করেন, একটি সিস্টেম অ্যাপ যা তৃতীয় পক্ষের অ্যাপ দ্বারা প্রতিস্থাপন করা যায় না।
- টিভি অ্যাপ টিভি ইনপুট থেকে AV বিষয়বস্তু প্রদর্শন করে।
- টিভি অ্যাপ টিভি ইনপুটগুলির সাথে সরাসরি কথা বলতে পারে না। টিভি ইনপুট ম্যানেজার টিভি অ্যাপের জন্য টিভি ইনপুটগুলির অবস্থা চিহ্নিত করে৷ এই সীমাবদ্ধতা সম্পর্কে আরো বিস্তারিত জানার জন্য নীচের টিভি ইনপুট ম্যানেজার দেখুন।
অনুমতি
- শুধুমাত্র
signatureOrSystem
টিভি ইনপুট এবং টিভি অ্যাপের টিভি প্রোভাইডার ডাটাবেসে সম্পূর্ণ অ্যাক্সেস রয়েছে এবং তারা কী ইভেন্টগুলি গ্রহণ করতে সক্ষম। - শুধুমাত্র সিস্টেম টিভি ইনপুট টিভি ইনপুট ম্যানেজার পরিষেবার মাধ্যমে টিভি ইনপুট HAL অ্যাক্সেস করতে পারে। টিভি ইনপুট টিভি ইনপুট ম্যানেজার সেশনের মাধ্যমে এক থেকে এক অ্যাক্সেস করা হয়।
- থার্ড-পার্টি টিভি ইনপুটগুলির টিভি প্রোভাইডার ডাটাবেসে প্যাকেজ-লক করা অ্যাক্সেস রয়েছে এবং শুধুমাত্র প্যাকেজ সারিগুলির সাথে মিলে যাওয়া পড়তে/লিখতে পারে।
- থার্ড-পার্টি টিভি ইনপুটগুলি হয় তাদের নিজস্ব সামগ্রী বা কোনও ডিভাইস প্রস্তুতকারকের পাসথ্রু টিভি ইনপুট, যেমন HDMI1 থেকে সামগ্রী প্রদর্শন করতে পারে। তারা বিল্ট-ইন বা IPTV টিউনারের মতো নন-পাসথ্রু টিভি ইনপুট থেকে সামগ্রী প্রদর্শন করতে পারে না।
- একটি হার্ডওয়্যার টিভি ইনপুট অ্যাপের জন্য
TV_INPUT_HARDWARE
অনুমতি, টিভি ইনপুট ম্যানেজার পরিষেবাকে টিভি ইনপুট ম্যানেজার পরিষেবাকে কল করতে এবং এর টিভি ইনপুটগুলি যোগ করার জন্য বুট করার সময় টিভি ইনপুট পরিষেবাকে অবহিত করার জন্য সংকেত দেয়৷ এই অনুমতিটি একটি হার্ডওয়্যার টিভি ইনপুট অ্যাপকে টিভি ইনপুট পরিষেবা প্রতি একাধিক টিভি ইনপুট সমর্থন করার অনুমতি দেয়, সেইসাথে এটির সমর্থিত টিভি ইনপুটগুলিকে গতিশীলভাবে যুক্ত করতে এবং সরাতে সক্ষম হয়৷
টিভি প্রদানকারী
টিভি প্রদানকারী ডাটাবেস টিভি ইনপুট থেকে চ্যানেল এবং প্রোগ্রাম সঞ্চয় করে। টিভি প্রদানকারী সংশ্লিষ্ট অনুমতিগুলিও প্রকাশ করে এবং পরিচালনা করে যাতে টিভি ইনপুটগুলি শুধুমাত্র তাদের নিজস্ব রেকর্ড দেখতে পারে৷ উদাহরণস্বরূপ, একটি নির্দিষ্ট টিভি ইনপুট শুধুমাত্র চ্যানেল এবং প্রোগ্রামগুলি দেখতে পারে যা এটি সরবরাহ করেছে এবং অন্য কোন টিভি ইনপুটগুলির চ্যানেল এবং প্রোগ্রামগুলি অ্যাক্সেস করা নিষিদ্ধ৷
টিভি প্রদানকারী অভ্যন্তরীণভাবে "সম্প্রচার জেনার" থেকে "ক্যাননিকাল জেনার" এর মানচিত্র করে। টিভি ইনপুট অন্তর্নিহিত সম্প্রচার মানের মান সহ "সম্প্রচার জেনার" পপুলেট করার জন্য দায়ী, এবং "ক্যাননিকাল জেনার" ফিল্ডটি স্বয়ংক্রিয়ভাবে android.provider.TvContract.Genres
থেকে সঠিক যুক্ত জেনার দিয়ে পপুলেট করা হবে। উদাহরণস্বরূপ, ব্রডকাস্ট স্ট্যান্ডার্ড ATSC A/65 এবং 0x25 (অর্থাৎ "খেলাধুলা") জেনার সহ প্রোগ্রামের সাথে, টিভি ইনপুট "সম্প্রচার জেনার" স্ট্রিং "স্পোর্টস" দিয়ে তৈরি করবে এবং টিভি প্রদানকারী ম্যাপ করা মান android.provider.TvContract.Genres.SPORTS
.
টিভি প্রদানকারীর বিশদ দৃশ্যের জন্য নীচের চিত্রটি দেখুন।

শুধুমাত্র সুবিধাপ্রাপ্ত সিস্টেম পার্টিশনে থাকা অ্যাপগুলি সম্পূর্ণ টিভি প্রদানকারী ডাটাবেস পড়তে পারে।
পাসথ্রু টিভি ইনপুট চ্যানেল এবং প্রোগ্রাম সংরক্ষণ করে না।
চ্যানেল এবং প্রোগ্রামগুলির জন্য স্ট্যান্ডার্ড ক্ষেত্রগুলি ছাড়াও, টিভি প্রদানকারী ডাটাবেস একটি BLOB টাইপ ক্ষেত্র, COLUMN_INTERNAL_PROVIDER_DATA
, প্রতিটি টেবিলে অফার করে যা টিভি ইনপুটগুলি নির্বিচারে ডেটা সঞ্চয় করতে ব্যবহার করতে পারে৷ সেই BLOB ডেটাতে কাস্টম তথ্য অন্তর্ভুক্ত থাকতে পারে, যেমন সংশ্লিষ্ট টিউনার ফ্রিকোয়েন্সি, এবং একটি প্রোটোকল বাফার বা অন্য ফর্মে প্রদান করা হতে পারে। অনুসন্ধানে কিছু চ্যানেল অনুপলব্ধ করার জন্য একটি অনুসন্ধানযোগ্য ক্ষেত্র উপলব্ধ (যেমন বিষয়বস্তু সুরক্ষার জন্য দেশ-নির্দিষ্ট প্রয়োজনীয়তা পূরণ করা)।
ডাটাবেস ক্ষেত্রের উদাহরণ
টিভি প্রদানকারী চ্যানেল ( android.provider.TvContract.Channels
) এবং প্রোগ্রাম ( android.provider.TvContract.Programs
) টেবিলে স্ট্রাকচার্ড ডেটা সমর্থন করে। এই টেবিলগুলি টিভি ইনপুট এবং টিভি অ্যাপের মতো সিস্টেম অ্যাপ দ্বারা জনবহুল এবং অ্যাক্সেস করা হয়। এই টেবিলে চার ধরনের ক্ষেত্র রয়েছে:
- ডিসপ্লে: ডিসপ্লে ফিল্ডগুলিতে এমন তথ্য থাকে যা অ্যাপগুলি ব্যবহারকারীর কাছে দৃশ্যমান করতে চায়, যেমন চ্যানেলের নাম (
COLUMN_DISPLAY_NAME
) বা নম্বর (COLUMN_DISPLAY_NUMBER
), বা দেখা হচ্ছে প্রোগ্রামের শিরোনাম৷ - মেটাডেটা: চ্যানেলের পরিবহন স্ট্রিম আইডি (
COLUMN_TRANSPORT_STREAM_ID
), আসল নেটওয়ার্ক আইডি (COLUMN_ORIGINAL_NETWORK_ID
) এবং পরিষেবা আইডি (COLUMN_SERVICE_ID
) এর মতো প্রাসঙ্গিক মান অনুযায়ী সামগ্রী সনাক্ত করার জন্য তিনটি ক্ষেত্র রয়েছে৷ - অভ্যন্তরীণ ডেটা : যে ক্ষেত্রগুলি টিভি ইনপুটগুলির কাস্টম ব্যবহারের জন্য৷
কিছু ক্ষেত্র, যেমনCOLUMN_INTERNAL_PROVIDER_DATA
, কাস্টমাইজযোগ্য BLOB ক্ষেত্র যেখানে একটি টিভি ইনপুট তাদের চ্যানেল বা প্রোগ্রাম সম্পর্কে নির্বিচারে মেটাডেটা সংরক্ষণ করতে পারে। - পতাকা: পতাকা ক্ষেত্রগুলি একটি চ্যানেল অনুসন্ধান, ব্রাউজ বা দেখার থেকে সীমাবদ্ধ করা উচিত কিনা তা প্রতিনিধিত্ব করে। এটি শুধুমাত্র চ্যানেল স্তরে সেট করা যেতে পারে। সমস্ত প্রোগ্রাম চ্যানেলের সেটিং থেকে বিরত থাকে।
-
COLUMN_SEARCHABLE
: কিছু চ্যানেল থেকে অনুসন্ধান সীমাবদ্ধ করা নির্দিষ্ট অঞ্চলে প্রয়োজন হতে পারে।COLUMN_SEARCHABLE = 0
মানে চ্যানেলটি অনুসন্ধান ফলাফলে প্রকাশ করা উচিত নয়৷ -
COLUMN_BROWSABLE
: শুধুমাত্র সিস্টেম অ্যাপ্লিকেশনের জন্য দৃশ্যমান। অ্যাপ্লিকেশন দ্বারা ব্রাউজ করা থেকে চ্যানেল সীমাবদ্ধ করা হচ্ছে.COLUMN_BROWSABLE = 0
মানে চ্যানেলটি চ্যানেল তালিকায় অন্তর্ভুক্ত করা উচিত নয়৷ -
COLUMN_LOCKED
: শুধুমাত্র সিস্টেম অ্যাপ্লিকেশনের জন্য দৃশ্যমান। পিন কোড না দিয়ে চ্যানেলটি অবৈধ অ্যাকাউন্ট দ্বারা দেখা থেকে সীমাবদ্ধ করা।COLUMN_LOCKED = 1
মানে চ্যানেলটি অভিভাবকীয় নিয়ন্ত্রণ দ্বারা সুরক্ষিত হওয়া উচিত।
ক্ষেত্রগুলির আরও বিস্তৃত তালিকার জন্য, android/frameworks/base/media/java/android/media/tv/TvContract.java
দেখুন
অনুমতি এবং অ্যাক্সেস নিয়ন্ত্রণ
সমস্ত ক্ষেত্র সংশ্লিষ্ট সারিতে অ্যাক্সেস সহ সকলের কাছে দৃশ্যমান। কোন ক্ষেত্র ব্যবহারকারীদের সরাসরি অ্যাক্সেসযোগ্য নয়; তারা শুধুমাত্র টিভি অ্যাপ, সিস্টেম অ্যাপস বা টিভি ইনপুট সারফেস যা দেখে।
- প্রতিটি সারিতে রয়েছে
PACKAGE_NAME
, প্যাকেজ (অ্যাপ) যা সেই সারির মালিক, TvProvider.java এর মাধ্যমে Query, Insert, Update-এ চেক করা হয়েছে৷ একটি টিভি ইনপুট শুধুমাত্র এটির লেখা তথ্য অ্যাক্সেস করতে পারে এবং অন্যান্য টিভি ইনপুট দ্বারা প্রদত্ত তথ্য থেকে বন্ধ করা হয়। - উপলব্ধ চ্যানেলগুলি নির্ধারণ করতে AndroidManifest.xml এর মাধ্যমে READ, WRITE অনুমতি (ব্যবহারকারীর সম্মতি প্রয়োজন)।
- শুধুমাত্র
signatureOrSystem
অ্যাপগুলি সম্পূর্ণ ডাটাবেস অ্যাক্সেস করার জন্যACCESS_ALL_EPG_DATA
অনুমতি পেতে পারে।
টিভি ইনপুট ম্যানেজার
টিভি ইনপুট ম্যানেজার সামগ্রিক Android TV ইনপুট ফ্রেমওয়ার্কের জন্য একটি কেন্দ্রীয় সিস্টেম API প্রদান করে। এটি অ্যাপ এবং টিভি ইনপুটগুলির মধ্যে মিথস্ক্রিয়া সালিশ করে এবং পিতামাতার নিয়ন্ত্রণ কার্যকারিতা প্রদান করে। টিভি ইনপুট ম্যানেজার সেশনগুলি অবশ্যই টিভি ইনপুটগুলির সাথে এক-একটি তৈরি করতে হবে৷ টিভি ইনপুট ম্যানেজার ইনস্টল করা টিভি ইনপুটগুলিতে অ্যাক্সেসের অনুমতি দেয় যাতে অ্যাপ্লিকেশনগুলি করতে পারে:
- টিভি ইনপুট তালিকাভুক্ত করুন এবং তাদের স্থিতি পরীক্ষা করুন
- সেশন তৈরি করুন এবং শ্রোতাদের পরিচালনা করুন
সেশনের জন্য, একটি টিভি ইনপুট টিভি অ্যাপ দ্বারা শুধুমাত্র URI-তে টিউন করা যেতে পারে যা এটি টিভি প্রদানকারী ডাটাবেসে যোগ করেছে, পাসথ্রু টিভি ইনপুটগুলি ছাড়া যা TvContract.buildChannelUriForPassthroughInput()
ব্যবহার করে টিউন করা যেতে পারে। একটি টিভি ইনপুট এর ভলিউম সেটও থাকতে পারে। ডিভাইস প্রস্তুতকারক (স্বাক্ষর অ্যাপস) বা সিস্টেম পার্টিশনে ইনস্টল করা অন্যান্য অ্যাপ দ্বারা প্রদত্ত এবং স্বাক্ষরিত টিভি ইনপুটগুলি সম্পূর্ণ টিভি প্রদানকারী ডাটাবেসে অ্যাক্সেস পাবে। এই অ্যাক্সেসটি সমস্ত উপলব্ধ টিভি চ্যানেল এবং প্রোগ্রামগুলিতে ব্রাউজ এবং অনুসন্ধান করার জন্য অ্যাপ তৈরি করতে ব্যবহার করা যেতে পারে।
একটি অ্যাপ android.media.tv.TvInputManager
এর সাথে একটি TvInputCallback
তৈরি এবং নিবন্ধন করতে পারে যাতে একটি টিভি ইনপুটের অবস্থার পরিবর্তন বা একটি টিভি ইনপুট সংযোজন বা অপসারণে আবার কল করা যায়। উদাহরণস্বরূপ, একটি টিভি ইনপুট সংযোগ বিচ্ছিন্ন হলে একটি টিভি অ্যাপ এটিকে সংযোগ বিচ্ছিন্ন হিসাবে প্রদর্শন করে এবং এটির নির্বাচন প্রতিরোধ করে প্রতিক্রিয়া জানাতে পারে।
টিভি ইনপুট ম্যানেজার টিভি অ্যাপ এবং টিভি ইনপুটগুলির মধ্যে যোগাযোগ বিমূর্ত করে। টিভি ইনপুট ম্যানেজার এবং টিভি ইনপুটের স্ট্যান্ডার্ড ইন্টারফেস একাধিক ডিভাইস নির্মাতাকে তাদের নিজস্ব টিভি অ্যাপ তৈরি করতে দেয় এবং সমস্ত তৃতীয় পক্ষের টিভি ইনপুটগুলিকে সমস্ত টিভি অ্যাপে কাজ করতে সহায়তা করে।
টিভি ইনপুট
টিভি ইনপুট হল Android অ্যাপ এই অর্থে যে তাদের একটি AndroidManifest.xml আছে এবং ইনস্টল করা হয়েছে (Play এর মাধ্যমে, আগে থেকে ইনস্টল করা বা সাইডলোড করা হয়েছে)। অ্যান্ড্রয়েড টিভি আগে থেকে ইনস্টল করা সিস্টেম অ্যাপ, ডিভাইস প্রস্তুতকারকের স্বাক্ষরিত অ্যাপ এবং তৃতীয় পক্ষের টিভি ইনপুট সমর্থন করে।
কিছু ইনপুট, যেমন HDMI ইনপুট বা অন্তর্নির্মিত টিউনার ইনপুট, শুধুমাত্র প্রস্তুতকারকের দ্বারা প্রদান করা যেতে পারে কারণ তারা অন্তর্নিহিত হার্ডওয়্যারের সাথে সরাসরি কথা বলে। অন্যান্য, যেমন IPTV, স্থান পরিবর্তন, এবং বহিরাগত STB, Google Play Store-এ APK হিসাবে তৃতীয় পক্ষের দ্বারা সরবরাহ করা যেতে পারে। একবার ডাউনলোড এবং ইনস্টল হয়ে গেলে, টিভি অ্যাপের মধ্যে নতুন ইনপুট নির্বাচন করা যেতে পারে।
পাসথ্রু ইনপুট উদাহরণ

এই উদাহরণে, ডিভাইস প্রস্তুতকারকের দেওয়া টিভি ইনপুট বিশ্বস্ত এবং টিভি প্রদানকারীর সম্পূর্ণ অ্যাক্সেস রয়েছে। একটি পাসথ্রু টিভি ইনপুট হিসাবে, এটি টিভি প্রদানকারীর সাথে কোনো চ্যানেল বা প্রোগ্রাম নিবন্ধন করে না। পাসথ্রু ইনপুট রেফারেন্স করতে ব্যবহৃত URI পেতে, android.media.tv.TvContract
ইউটিলিটি পদ্ধতি buildChannelUriForPassthroughInput(String inputId)
ব্যবহার করুন। টিভি অ্যাপটি HDMI টিভি ইনপুটে পৌঁছানোর জন্য টিভি ইনপুট ম্যানেজারের সাথে যোগাযোগ করে।
অন্তর্নির্মিত টিউনার উদাহরণ

এই উদাহরণে, ডিভাইস প্রস্তুতকারকের দ্বারা প্রদত্ত অন্তর্নির্মিত টিউনার টিভি ইনপুট বিশ্বস্ত এবং টিভি প্রদানকারীর সম্পূর্ণ অ্যাক্সেস রয়েছে৷
তৃতীয় পক্ষের ইনপুট উদাহরণ

এই উদাহরণে, বাহ্যিক STB টিভি ইনপুট একটি তৃতীয় পক্ষ দ্বারা প্রদান করা হয়৷ যেহেতু সেই টিভি ইনপুট সরাসরি আসা HDMI ভিডিও ফিড অ্যাক্সেস করতে পারে না, এটি অবশ্যই টিভি ইনপুট ম্যানেজারের মাধ্যমে যেতে হবে এবং ডিভাইস প্রস্তুতকারক দ্বারা প্রদত্ত HDMI টিভি ইনপুট ব্যবহার করতে হবে৷
টিভি ইনপুট ম্যানেজারের মাধ্যমে, বাহ্যিক STB টিভি ইনপুট HDMI টিভি ইনপুটের সাথে কথা বলতে পারে এবং HDMI1-এ ভিডিও দেখাতে বলতে পারে। তাই STB টিভি ইনপুট টিভি নিয়ন্ত্রণ করতে পারে যখন নির্মাতার দেওয়া HDMI টিভি ইনপুট ভিডিওটি রেন্ডার করে।
পিকচার ইন পিকচার (পিআইপি) উদাহরণ

উপরের চিত্রটি দেখায় যে কীভাবে একটি রিমোট কন্ট্রোলের বোতামগুলি একটি নির্দিষ্ট টিভি ইনপুটে ছবির জন্য (পিআইপি) ডিসপ্লেতে প্রেরণ করা হয়। এই বোতাম টিপগুলি ডিভাইস প্রস্তুতকারকের দ্বারা সরবরাহ করা হার্ডওয়্যার ড্রাইভার দ্বারা ব্যাখ্যা করা হয়, হার্ডওয়্যার স্ক্যানকোডগুলিকে অ্যান্ড্রয়েড কীকোডে রূপান্তর করে এবং সেগুলিকে কী ইভেন্ট হিসাবে স্ট্যান্ডার্ড অ্যান্ড্রয়েড ইনপুট পাইপলাইন InputReader
এবং InputDispatcher
ফাংশনে প্রেরণ করে৷ টিভি অ্যাপটি ফোকাসে থাকলে এগুলি ঘুরে ইভেন্টগুলিকে ট্রিগার করে৷
শুধুমাত্র সিস্টেম টিভি ইনপুটগুলি InputEvents
পাওয়ার যোগ্য, এবং শুধুমাত্র যদি তাদের RECEIVE_INPUT_EVENT
সিস্টেমের অনুমতি থাকে৷ টিভি ইনপুট কোন ইনপুট ইভেন্টগুলি ব্যবহার করবে তা নির্ধারণ করার জন্য দায়ী এবং টিভি অ্যাপকে এটি ব্যবহার করার প্রয়োজন নেই এমন কীগুলি পরিচালনা করার অনুমতি দেওয়া উচিত৷
টিভি অ্যাপটি জানার জন্য দায়ী যে কোন সিস্টেমটি টিভি ইনপুট সক্রিয়, যার অর্থ ব্যবহারকারী দ্বারা নির্বাচিত, এবং ইনকামিং KeyEvents
দ্ব্যর্থিত করতে এবং তাদের সঠিক টিভি ইনপুট ম্যানেজার সেশনে রুট করার জন্য, dispatchInputEvent()
ইভেন্টটি সংশ্লিষ্ট টিভি ইনপুটে পাঠানোর জন্য কল করে৷
MHEG-5 ইনপুট উদাহরণ
নিম্নলিখিত চিত্রটি Android TIF-এর মাধ্যমে KeyEvents
কীভাবে রুট করা হয় তার আরও বিশদ দৃশ্য দেখায়।

এটি একটি লাল বোতাম অ্যাপের প্রবাহকে চিত্রিত করে, যা ইউরোপে সাধারণ ব্যবহারকারীদের তাদের টেলিভিশনে ইন্টারেক্টিভ অ্যাপ অ্যাক্সেস করার অনুমতি দেয়। এই পরিবহন স্রোতে একটি অ্যাপ সরবরাহ করা যেতে পারে। বোতামটি ক্লিক করা হলে, এটি ব্যবহারকারীদের এই সম্প্রচার অ্যাপগুলির সাথে ইন্টারঅ্যাক্ট করতে দেয়। উদাহরণস্বরূপ, আপনি সম্পর্কিত ওয়েব পৃষ্ঠাগুলি বা ক্রীড়া স্কোর অ্যাক্সেস করতে এই সম্প্রচার অ্যাপ্লিকেশনগুলি ব্যবহার করতে পারেন৷
সম্প্রচার অ্যাপ্লিকেশনগুলি কীভাবে টিভি অ্যাপের সাথে ইন্টারঅ্যাক্ট করে তা জানতে সম্প্রচার অ্যাপ্লিকেশন বিভাগটি দেখুন৷
এই উদাহরণে:
- টিভি অ্যাপটি ফোকাসে রয়েছে এবং সমস্ত কী গ্রহণ করে।
-
KeyEvents
(যেমন লাল বোতাম) সক্রিয় টিভি ইনপুটেInputEvents.
- সিস্টেম টিভি ইনপুট MHEG-5 স্ট্যাকের সাথে একীভূত হয় এবং
RECEIVE_INPUT_EVENT
সিস্টেমের অনুমতি রয়েছে৷ - অ্যাক্টিভেশন কীকোড (যেমন লাল বোতাম) পাওয়ার পরে, টিভি ইনপুট সম্প্রচার অ্যাপ সক্রিয় করে।
- টিভি ইনপুট
KeyEvents
InputEvents
হিসাবে গ্রহণ করে এবং সম্প্রচার অ্যাপটি ফোকাস এবং খারিজ না হওয়া পর্যন্তInputEvents
পরিচালনা করে৷
দ্রষ্টব্য : তৃতীয় পক্ষের টিভি ইনপুট কখনই কী পায় না।
টিভি ইনপুট HAL
টিভি ইনপুট HAL টিভি-নির্দিষ্ট হার্ডওয়্যার অ্যাক্সেস করতে টিভি ইনপুটগুলির বিকাশে সহায়তা করে। অন্যান্য অ্যান্ড্রয়েড এইচএএল-এর মতোই, টিভি ইনপুট HAL ( tv_input
) AOSP সোর্স ট্রি-তে উপলব্ধ এবং বিক্রেতা এটির বাস্তবায়ন বিকাশ করে।
দ্রষ্টব্য : Android 14 দিয়ে শুরু করে, টিভি ইনপুট HAL ইন্টারফেস AIDL ব্যবহার করে সংজ্ঞায়িত করা হয়েছে।
টিভি অ্যাপ
সিস্টেম টিভি অ্যাপ ব্যবহারকারীর কাছে লাইভ টিভি সামগ্রী উপস্থাপন করে। অ্যান্ড্রয়েড প্ল্যাটফর্মের পাশাপাশি একটি রেফারেন্স টিভি অ্যাপ (লাইভ টিভি) সরবরাহ করা হয়েছে, যা ডিভাইস প্রস্তুতকারকদের দ্বারা কাস্টমাইজ করা, প্রসারিত বা প্রতিস্থাপন করা যেতে পারে। সোর্স কোডটি অ্যান্ড্রয়েড ওপেন সোর্স প্রজেক্টে উপলব্ধ, এবং আপনি রেফারেন্স টিভি অ্যাপ নিবন্ধে এটি দিয়ে শুরু করতে পারেন।
ডিভাইস নির্মাতারা তাদের টিভি অ্যাপগুলিকে ডিভাইস প্রস্তুতকারক বা দেশ-নির্দিষ্ট বৈশিষ্ট্যগুলি প্রয়োগ করতে প্রসারিত করতে পারে, তবে এটি টিআইএফ বা রেফারেন্স টিভি অ্যাপের সুযোগে নয়।
ন্যূনতম, সিস্টেম টিভি অ্যাপকে নিম্নলিখিত কাজগুলি পরিচালনা করতে হবে:
সেটআপ এবং কনফিগারেশন
- টিভি ইনপুটগুলি স্বয়ংক্রিয়ভাবে সনাক্ত করুন৷
- টিভি ইনপুটগুলিকে চ্যানেল সেটআপ শুরু করতে দিন৷
- অভিভাবকীয় সেটিংস নিয়ন্ত্রণ করুন
- চ্যানেলগুলি সম্পাদনা করুন
দেখা হচ্ছে
- সমস্ত টিভি চ্যানেল অ্যাক্সেস এবং নেভিগেট করুন
- অ্যাক্সেস টিভি প্রোগ্রাম তথ্য বার
- ইলেকট্রনিক প্রোগ্রামিং গাইড (EPG) ডেটা প্রদর্শন করুন
- একাধিক অডিও এবং সাবটাইটেল ট্র্যাক সমর্থন করে
- অভিভাবকীয় নিয়ন্ত্রণ পিন চ্যালেঞ্জ সরবরাহ করুন
- টিভি স্ট্যান্ডার্ডের জন্য টিভি ইনপুট UI ওভারলেকে অনুমতি দিন (HbbTV, ইত্যাদি)
- টিভি চ্যানেল এবং প্রোগ্রামগুলির জন্য অনুসন্ধানের ফলাফলগুলি পূরণ করুন৷
- অ্যাপ লিঙ্কিং কার্ড প্রদর্শন করুন
- টাইমশিফটিং এপিআই সমর্থন করে
- ডিভিআর কার্যকারিতা পরিচালনা করুন এবং টিভি রেকর্ডিং এপিআই সমর্থন করুন
এই বৈশিষ্ট্য সেটটি নতুন অ্যান্ড্রয়েড সংস্করণগুলির সাথে সঙ্গতিপূর্ণ হবে যেখানে প্ল্যাটফর্ম টিআইএফ এপিআইগুলি প্রসারিত হয়৷ CTS যাচাইকারী সামঞ্জস্য পরীক্ষার কভারেজ প্রদান করে।
তৃতীয় পক্ষের টিভি ইনপুটগুলির জন্য সমর্থন
অ্যান্ড্রয়েড টিভি তৃতীয় পক্ষের টিভি ইনপুটগুলির জন্য বিকাশকারী API সরবরাহ করে, সফ্টওয়্যার চ্যানেলগুলিকে লাইভ টিভি অভিজ্ঞতায় সরবরাহ করতে ইনস্টল করা অ্যাপগুলিকে সক্ষম করে৷ একটি সামঞ্জস্যপূর্ণ অ্যান্ড্রয়েড ডিভাইস বাস্তবায়ন নিশ্চিত করতে, সিস্টেম টিভি অ্যাপ ব্যবহারকারীর কাছে তৃতীয় পক্ষের টিভি ইনপুট এবং চ্যানেল সারফেস করার বিষয়ে কিছু দায়িত্ব রয়েছে। রেফারেন্স লাইভ টিভি অ্যাপ একটি সামঞ্জস্যপূর্ণ বাস্তবায়ন প্রদান করে; সিস্টেম টিভি অ্যাপ প্রতিস্থাপন করলে, ডিভাইস নির্মাতাদের অবশ্যই নিশ্চিত করতে হবে যে তাদের নিজস্ব অ্যাপগুলি একই রকম সামঞ্জস্যপূর্ণতা প্রদান করে, যাতে সমস্ত Android TV ডিভাইসে ডেভেলপারের প্রত্যাশা পূরণ হয়।
সিস্টেম টিভি অ্যাপটিকে অবশ্যই ডিভাইসের ডিফল্ট লাইভ টিভি পরিষেবার পাশাপাশি তৃতীয় পক্ষের ইনপুটগুলি দেখাতে হবে। বিকাশকারী API-এর প্রতিশ্রুতি হল যে ব্যবহারকারীরা তাদের মানক টিভি অভিজ্ঞতার মধ্যে চ্যানেলগুলি (একবার ইনস্টল করা) খুঁজে পেতে সক্ষম হবে।
Android CDD-এর TV অ্যাপ বিভাগে সংজ্ঞায়িত হিসাবে বিল্ট-ইন চ্যানেল এবং তৃতীয় পক্ষের চ্যানেলগুলির মধ্যে ভিজ্যুয়াল পার্থক্য অনুমোদিত।
নিম্নলিখিত বিভাগগুলি দেখায় কিভাবে লাইভ টিভি অ্যাপ্লিকেশন CDD প্রয়োজনীয়তা পূরণ করে।
নতুন চ্যানেল সেটআপ
নতুন থার্ড-পার্টি ইনপুট/চ্যানেলের সংযোজন শুরু হয় ব্যবহারকারী একটি অ্যাপ্লিকেশন স্টোর থেকে একটি টিভি ইনপুট খোঁজার এবং ইনস্টল করার মাধ্যমে, যেমন Google Play।
কিছু তৃতীয় পক্ষের টিভি ইনপুট স্বয়ংক্রিয়ভাবে টিভিপ্রোভাইডার ডাটাবেসে চ্যানেল যোগ করে। তবে বেশিরভাগ ব্যবহারকারীকে তাদের চ্যানেল সেট আপ করতে, লগইন বিশদ প্রদান করতে এবং অন্যান্য ক্রিয়াকলাপগুলিকে সক্ষম করতে একটি সেটআপ কার্যকলাপ সরবরাহ করবে। সিস্টেম টিভি অ্যাপটিকে নিশ্চিত করতে হবে যে ব্যবহারকারী এই সেটআপ কার্যকলাপটি সক্রিয় করতে পারেন, এই কারণেই CDD-এর জন্য তৃতীয় পক্ষের ইনপুটগুলি প্রধান টিভি অ্যাপ থেকে ন্যূনতম নেভিগেশন অ্যাকশনের প্রয়োজন হয়৷
রেফারেন্স লাইভ টিভি অ্যাপ ইনপুট অ্যাক্সেস করার জন্য চ্যানেল সোর্স মেনু প্রদান করে।




এছাড়াও ব্যবহারকারীকে সরাসরি সেটআপে নিয়ে যাওয়ার জন্য একটি নতুন TvInput ইনস্টল করার পরে টিভি অ্যাপ মেনুর শীর্ষে একটি বিজ্ঞপ্তি কার্ড দেখানো হয়:

ব্যবহারকারী যদি বিজ্ঞপ্তির মাধ্যমে পদক্ষেপ নেয়, তাহলে তারা চিত্র 10-এ দেখানো হিসাবে তাদের উত্স সেট আপ করতে নির্বাচন করতে পারে।
এই এলাকায় বিকাশকারীর প্রত্যাশার জন্য আপনার টিভি ইনপুট পরিষেবা সংজ্ঞায়িত করুন দেখুন।
চ্যানেল তালিকা কাস্টমাইজ করুন
ডিভাইস নির্মাতারা নির্দিষ্ট চ্যানেল লুকানোর জন্য একটি UI প্রদান করতে পারে এবং ব্যবহারকারীদের তাদের নিজস্ব EPG পরিচালনা করতে সক্ষম করে। লাইভ টিভি এই সুবিধা অন্তর্ভুক্ত.


ইপিজি
থার্ড-পার্টি ইনপুট ডেভেলপারদের আস্থা থাকা দরকার যে ব্যবহারকারীরা সাধারণ ব্যবহারের সময়, সমস্ত সামঞ্জস্যপূর্ণ Android TV ডিভাইস জুড়ে সহজেই তাদের চ্যানেলগুলিতে নেভিগেট করতে পারে।
থার্ড-পার্টি ইনপুট থেকে চ্যানেলগুলি অবশ্যই ডিভাইসের স্ট্যান্ডার্ড লাইভ টিভি এক্সপেরিয়েন্স EPG এর অংশ হিসেবে উপস্থাপন করতে হবে। ভিজ্যুয়াল সেপারেশন বা থার্ড-পার্টি চ্যানেলের জন্য আলাদা ক্যাটাগরি ব্যবহার করা যেতে পারে (Android CDD-এর TV অ্যাপ বিভাগটি দেখুন) — কী হল ব্যবহারকারীরা তাদের ইনস্টল করা চ্যানেলগুলি খুঁজে পেতে সক্ষম।
অনুসন্ধান করুন
সর্বোত্তম ব্যবহারকারীর অভিজ্ঞতা নিশ্চিত করার জন্য বিশ্বব্যাপী অনুসন্ধানের অনুরোধের জন্য অনুসন্ধান ফলাফল অন্তর্ভুক্ত করতে নির্মাতাদের অবশ্যই টিভি অ্যাপ প্রয়োগ করতে হবে। লাইভ টিভি একটি বাস্তবায়ন প্রদান করে (দেখুন যা তৃতীয় পক্ষের ইনপুট (প্ল্যাটফর্ম সামঞ্জস্যের জন্য প্রয়োজনীয়) এবং সেইসাথে অন্তর্নির্মিত ইনপুট থেকে ফলাফল প্রদান করে।
সময় পরিবর্তন
Android 6.0 এবং তার উপরের ডিভাইসগুলির জন্য, TV অ্যাপটিকে অবশ্যই Android ফ্রেমওয়ার্ক টাইম শিফটিং API সমর্থন করতে হবে। অতিরিক্তভাবে, নির্মাতাদের অবশ্যই টিভি অ্যাপে প্লেব্যাক নিয়ন্ত্রণগুলি প্রয়োগ করতে হবে, যা ব্যবহারকারীদের প্লেব্যাককে বিরতি, পুনরায় শুরু, রিওয়াইন্ড এবং দ্রুত ফরোয়ার্ড করার অনুমতি দেয়।
টিভি ইনপুটগুলির জন্য যা সময় পরিবর্তনকে সমর্থন করে, টিভি অ্যাপটিকে প্লেব্যাক নিয়ন্ত্রণগুলি প্রদর্শন করতে হবে৷

ডিভিআর
Android 7.0 এবং তার উপরের ডিভাইসগুলির জন্য, টিভি অ্যাপটিকে অবশ্যই Android ফ্রেমওয়ার্ক টিভি রেকর্ডিং API সমর্থন করতে, রেকর্ড করা প্রোগ্রামগুলিকে সমর্থন করতে, তালিকাভুক্ত করতে এবং চালাতে হবে৷
এটি ডিভাইস নির্মাতাদের তাদের DVR সাবসিস্টেমগুলিকে TIF-তে প্লাগ করার অনুমতি দেয় এবং একটি টিভি ডিভাইসে DVR কার্যকারিতা সক্ষম বা সংহত করতে যে ইন্টিগ্রেশন প্রচেষ্টা লাগে তা নাটকীয়ভাবে হ্রাস করে৷ এটি তৃতীয় পক্ষকে আফটারমার্কেট ডিভিআর সিস্টেম সরবরাহ করতে সক্ষম করে যা একটি অ্যান্ড্রয়েড টিভি ডিভাইসে প্লাগ করা যেতে পারে।
লাইভ কন্টেন্ট রেকর্ড করার পাশাপাশি, টিভি অ্যাপ রিসোর্স দ্বন্দ্বও পরিচালনা করে। উদাহরণস্বরূপ, যদি ডিভাইসটিতে দুটি টিউনার থাকে তবে এটি একই সময়ে দুটি প্রোগ্রাম রেকর্ড করতে পারে। ব্যবহারকারী যদি তিনটি রেকর্ড করতে বলেন, তাহলে টিভি অ্যাপটিকে অবশ্যই দ্বন্দ্বটি পরিচালনা করতে হবে এবং হয় একটি বিজ্ঞপ্তি প্রকাশ করতে হবে বা অনুরোধ করা উচিত যে ব্যবহারকারী এই অনুরোধগুলির জন্য একটি অগ্রাধিকার নির্ধারণ করে।
টিভি অ্যাপগুলি আরও পরিশীলিত যুক্তি প্রয়োগ করতে পারে যেমন কোনও ব্যবহারকারীকে জিজ্ঞাসা করা যে তারা একটি পর্ব রেকর্ড করার অনুরোধ করার সময় একটি সিরিজে ভবিষ্যতের সমস্ত পর্ব রেকর্ড করতে চান কিনা।
অ্যান্ড্রয়েড টিভিতে একটি সম্ভাব্য DVR বাস্তবায়ন দেখার জন্য নিম্নলিখিত চিত্রটি দেখুন।

- টিভি ইনপুট পরিষেবা টিভি অ্যাপকে বলে যে কতগুলি টিউনার উপলব্ধ রয়েছে যাতে টিভি অ্যাপ সম্ভাব্য সম্পদ দ্বন্দ্ব পরিচালনা করতে পারে৷
- টিভি অ্যাপটি একটি টিভি প্রোগ্রাম রেকর্ড করার জন্য একটি ব্যবহারকারীর সূচিত অনুরোধ পায়৷
- টিভি অ্যাপ তার অভ্যন্তরীণ ডাটাবেসে রেকর্ডিং সময়সূচী সঞ্চয় করে।
- রেকর্ড করার সময় হলে, টিভি অ্যাপ রেকর্ডিংয়ের সাথে যুক্ত চ্যানেলে টিউন করার জন্য একটি অনুরোধ পাস করে।
- টিভি ইনপুট পরিষেবা এই অনুরোধটি গ্রহণ করে, উপযুক্ত সংস্থান আছে কি না তা নিয়ে প্রতিক্রিয়া জানায় এবং চ্যানেলে টিউন করে।
- তারপর টিভি অ্যাপ টিভি ইনপুট ম্যানেজারের কাছে রেকর্ডিং শুরু করার জন্য একটি অনুরোধ পাঠায়।
- টিভি ইনপুট পরিষেবা এই অনুরোধটি গ্রহণ করে এবং রেকর্ডিং শুরু করে৷
- টিভি ইনপুট সার্ভিস তার স্টোরেজে প্রকৃত ভিডিও ডেটা সঞ্চয় করে, যা এক্সটার্নাল স্টোরেজ বা ক্লাউড স্টোরেজ হতে পারে।
- রেকর্ডিং শেষ করার সময় হলে, টিভি অ্যাপটি টিভি ইনপুট ম্যানেজারের কাছে রেকর্ডিং বন্ধ করার অনুরোধটি পাস করে।
- একবার টিভি ইনপুট পরিষেবা অনুরোধটি গ্রহণ করলে, এটি রেকর্ডিং বন্ধ করে দেয় এবং টিভি প্রদানকারীর সাথে সম্পর্কিত মেটাডেটা যোগ করে যাতে অনুরোধ করা হলে টিভি অ্যাপ ব্যবহারকারীদের রেকর্ডিং দেখাতে পারে।
আপনার টিভি ইনপুট পরিষেবাতে রেকর্ডিং বৈশিষ্ট্যগুলি বাস্তবায়ন সম্পর্কে আরও তথ্যের জন্য, এই টিভি রেকর্ডিং নিবন্ধটি দেখুন৷
দরকারী সম্পদ
- অ্যান্ড্রয়েড সিডিডি এবং ডকুমেন্টেড ডেভেলপার এপিআই হল নির্দিষ্ট রেফারেন্স।
- CTS ভেরিফায়ার কম্প্যাটিবিলিটি টেস্টিং প্রোগ্রামের অংশ হিসেবে এপিআই ব্যবহার করে। লাইভ টিভির বিরুদ্ধে এটি চালানো ইপিজি, অনুসন্ধান, পিতামাতার নিয়ন্ত্রণ এবং তৃতীয় পক্ষের ইনপুটগুলির প্রসঙ্গে অন্যান্য প্রয়োজনীয়তাগুলি দেখার একটি কার্যকর উপায় হতে পারে৷
- এই এলাকায় বিকাশকারীর প্রত্যাশার জন্য আপনার টিভি ইনপুট পরিষেবা সংজ্ঞায়িত করুন দেখুন।
পিতামাতার নিয়ন্ত্রণ
অভিভাবকীয় নিয়ন্ত্রণ একজন ব্যবহারকারীকে অবাঞ্ছিত চ্যানেল এবং প্রোগ্রামগুলিকে ব্লক করতে দেয়, কিন্তু একটি পিন কোড প্রবেশ করে ব্লকটিকে বাইপাস করে।
অভিভাবকীয় নিয়ন্ত্রণ কার্যকারিতার দায়িত্ব টিভি অ্যাপ, টিভি ইনপুট ম্যানেজার পরিষেবা, টিভি প্রদানকারী এবং টিভি ইনপুটের মধ্যে ভাগ করা হয়।
অভিভাবকীয় নিয়ন্ত্রণ বাধ্যতামূলক, এবং এটি CTS যাচাইকারী দ্বারা আচ্ছাদিত৷
বেশ কয়েকটি দেশ রেটিং সিস্টেমকে সংজ্ঞায়িত করেছে যা টিভি ইনপুটগুলি TVContentRating API এর মাধ্যমে ব্যবহার করতে পারে৷ অতিরিক্তভাবে, টিভি ইনপুটগুলি তাদের নিজস্ব কাস্টম রেটিং সিস্টেম নিবন্ধন করতে পারে যেমন CTS যাচাইকারী পরীক্ষা দ্বারা প্রদর্শিত হয়, যা একটি 'ভুয়া' রেটিং প্রবর্তন করে। যেসব দেশে একটি স্ট্যান্ডার্ড রেটিং সিস্টেম বিদ্যমান সেখানে ডিভাইস নির্মাতারা তাদের অন্তর্ভুক্ত হতে পারে এমন অন্য কোনো প্রক্রিয়ার সাথে টিভি ইনপুট ফ্রেমওয়ার্ক প্যারেন্টাল কন্ট্রোলকে একত্রিত করতে উত্সাহিত করা হয়।
টিভি প্রদানকারী
প্রতিটি চ্যানেলের সারিতে একটি COLUMN_LOCKED
ক্ষেত্র রয়েছে যা নির্দিষ্ট চ্যানেলগুলিকে একটি PIN কোড না দিয়ে দেখা থেকে লক করতে ব্যবহৃত হয়৷ প্রোগ্রাম ক্ষেত্র COLUMN_CONTENT_RATING
প্রদর্শনের উদ্দেশ্যে এবং অভিভাবকীয় নিয়ন্ত্রণ প্রয়োগ করতে ব্যবহৃত হয় না৷
টিভি ইনপুট ম্যানেজার
টিভি ইনপুট ম্যানেজার প্রতিটি ব্লক করা TvContentRating
সঞ্চয় করে এবং প্রদত্ত রেটিং সহ সামগ্রী ব্লক করা উচিত কিনা তা পরামর্শ দেওয়ার জন্য isRatingBlocked()
এর প্রতিক্রিয়া জানায়।
টিভি ইনপুট
টিভি ইনপুট টিভি ইনপুট ম্যানেজারে isRatingBlocked()
কল করে বর্তমান সামগ্রীটি ব্লক করা উচিত কিনা তা পরীক্ষা করে যখন প্রদর্শিত সামগ্রীর রেটিং পরিবর্তিত হয় (প্রোগ্রাম বা চ্যানেল পরিবর্তনে), বা পিতামাতার নিয়ন্ত্রণ সেটিংস পরিবর্তিত হয় ( ACTION_BLOCKED_RATINGS_CHANGED
এবং ACTION_PARENTAL_CONTROLS_ENABLED_CHANGED
এ)৷ বিষয়বস্তু ব্লক করা উচিত হলে, টিভি ইনপুট অডিও এবং ভিডিও নিষ্ক্রিয় করে এবং টিভি অ্যাপকে অবহিত করে যে notifyContentBlocked(TvContentRating)
কল করে বর্তমান সামগ্রীটি ব্লক করা হয়েছে। যদি বিষয়বস্তু ব্লক করা উচিত নয়, তাহলে টিভি ইনপুট অডিও এবং ভিডিও সক্ষম করে এবং টিভি অ্যাপকে অবহিত করে যে notifyContentAllowed()
কল করে বর্তমান সামগ্রী অনুমোদিত।
টিভি অ্যাপ
প্যারেন্টাল কন্ট্রোল API-কে সম্মান জানাতে, এবং সেইজন্য একটি সামঞ্জস্যপূর্ণ প্ল্যাটফর্ম তৈরি করতে, সিস্টেম TV অ্যাপটিকে নির্দিষ্ট অ্যাপ দ্বারা নিবন্ধিত যেকোনো কাস্টম রেটিং সহ অভিভাবকীয় নিয়ন্ত্রণ পরিচালনা করার জন্য ব্যবহারকারীদের একটি উপায় প্রদান করতে হবে।
টিভি অ্যাপটি একটি পিন কোড UI দেখায় যখন এটি একটি টিভি ইনপুট দ্বারা সূচিত হয় যে বর্তমান সামগ্রীটি অবরুদ্ধ করা হয়েছে বা যখন ব্যবহারকারী একটি ব্লক করা চ্যানেল দেখার চেষ্টা করে।
টিভি অ্যাপ সরাসরি পিতামাতার নিয়ন্ত্রণ সেটিংস সংরক্ষণ করে না। ব্যবহারকারী যখন অভিভাবকীয় নিয়ন্ত্রণ সেটিংস পরিবর্তন করেন, তখন প্রতিটি অবরুদ্ধ TvContentRating
টিভি ইনপুট ম্যানেজার দ্বারা সংরক্ষণ করা হয় এবং ব্লক করা চ্যানেলগুলি টিভি প্রদানকারী দ্বারা সংরক্ষণ করা হয়৷
অভিভাবকীয় নিয়ন্ত্রণ সেটিংস পরিবর্তন করার জন্য TV অ্যাপটিকে android.permission.MODIFY_PARENTAL_CONTROLS
অনুমতি ঘোষণা করতে হবে।
ডিভাইস নির্মাতাদের উত্সাহিত করা হয়:
- সামঞ্জস্যের প্রয়োজনীয়তা প্রদর্শনের জন্য রেফারেন্স লাইভ টিভি অ্যাপ্লিকেশনের বিপরীতে CTS যাচাইকারী পিতামাতার নিয়ন্ত্রণ পরীক্ষাটি অনুশীলন করুন।
- তাদের নিজস্ব টিভি অ্যাপের জন্য রেফারেন্স হিসাবে লাইভ টিভি অ্যাপটি ব্যবহার করুন: বিশেষ করে দেখুন ContentRatingsManager এবং RatingSystemsFragment উৎস, এবং তারা কীভাবে কাস্টম রেটিং পরিচালনা করে।
এইচডিএমআই-সিইসি
HDMI-CEC একটি ডিভাইসকে অন্যটিকে নিয়ন্ত্রণ করতে দেয়, যার ফলে একটি হোম থিয়েটারে একাধিক যন্ত্রপাতি নিয়ন্ত্রণ করতে একটি একক রিমোট সক্ষম করে। এটি অ্যান্ড্রয়েড টিভি দ্বারা সেটআপের গতি বাড়াতে এবং কেন্দ্রীয় টিভি অ্যাপের মাধ্যমে বিভিন্ন টিভি ইনপুটগুলির উপর দূরবর্তী নিয়ন্ত্রণের অনুমতি দিতে ব্যবহৃত হয়। উদাহরণস্বরূপ, এটি ইনপুট, পাওয়ার আপ বা ডাউন ডিভাইস এবং আরও অনেক কিছু স্যুইচ করতে পারে।
অ্যান্ড্রয়েড টিআইএফ HDMI-CEC কে HDMI কন্ট্রোল সার্ভিস হিসাবে প্রয়োগ করে যাতে ডিভাইস নির্মাতাদের শুধুমাত্র নিম্ন-স্তরের ড্রাইভার তৈরি করতে হয় যা আরও জটিল ব্যবসায়িক যুক্তিকে এড়িয়ে গিয়ে হালকা ওজনের Android TV HAL এর সাথে ইন্টারঅ্যাক্ট করে। একটি স্ট্যান্ডার্ড বাস্তবায়ন প্রদানের ক্ষেত্রে, অ্যান্ড্রয়েড খণ্ডিত বাস্তবায়ন এবং নির্বাচনী বৈশিষ্ট্য সমর্থন হ্রাস করে সামঞ্জস্যের সমস্যাগুলি প্রশমিত করতে চায়। HDMI কন্ট্রোল সার্ভিস ইনপুট এবং পাওয়ার সহ বিদ্যমান অ্যান্ড্রয়েড পরিষেবাগুলি ব্যবহার করে৷
এর মানে বিদ্যমান HDMI-CEC বাস্তবায়নগুলিকে Android TIF-এর সাথে ইন্টারঅপারেটিং করার জন্য পুনরায় ডিজাইন করতে হবে। আমরা সুপারিশ করি যে হার্ডওয়্যার প্ল্যাটফর্মে সিইসি পাওয়ার চালু এবং অন্যান্য কমান্ড পাওয়ার জন্য একটি মাইক্রোপ্রসেসর থাকে।

- সিইসি বাসটি একটি ভিন্ন উত্সে স্যুইচ করার জন্য বর্তমানে সক্রিয় উত্স থেকে একটি আদেশ পায়৷
- ড্রাইভার HDMI-CEC HAL-কে কমান্ড দেয়।
- HAL সমস্ত
ActiveSourceChangeListeners
কে অবহিত করে। - HDMI কন্ট্রোল সার্ভিসকে
ActiveSourceChangeListener
এর মাধ্যমে সোর্স পরিবর্তন সম্পর্কে অবহিত করা হয়। - টিভি ইনপুট ম্যানেজার পরিষেবা টিভি অ্যাপের জন্য উৎস পরিবর্তন করার জন্য একটি অভিপ্রায় তৈরি করে।
- টিভি অ্যাপটি তারপর টিভি ইনপুটের জন্য একটি টিভি ইনপুট ম্যানেজার সেশন তৈরি করে এবং সেই সেশনে
setMain
কল করে। - টিভি ইনপুট ম্যানেজার সেশন এই তথ্যটি HDMI টিভি ইনপুটে পাঠায়।
- HDMI টিভি ইনপুট সাইডব্যান্ড পৃষ্ঠ সেট করার অনুরোধ করে।
- টিভি ইনপুট ম্যানেজার সার্ভিসটি সারফেস সেট করা হলে HDMI কন্ট্রোল সার্ভিসে একটি সংশ্লিষ্ট রাউটিং কন্ট্রোল কমান্ড জেনারেট করে।
টিভি ইন্টিগ্রেশন নির্দেশিকা
ব্রডকাস্ট অ্যাপ
যেহেতু প্রতিটি দেশের সম্প্রচার-নির্দিষ্ট প্রয়োজনীয়তা রয়েছে (MHEG, Teletext, HbbTV, এবং আরও অনেক), নির্মাতারা সম্প্রচার অ্যাপের জন্য তাদের নিজস্ব সমাধান সরবরাহ করবে বলে আশা করা হচ্ছে, উদাহরণস্বরূপ:
- MHEG: নেটিভ স্ট্যাক
- টেলিটেক্সট: নেটিভ স্ট্যাক
- HbbTV: Vewd সফ্টওয়্যার থেকে HbbTV সমাধান
অ্যান্ড্রয়েড এল রিলিজে, অ্যান্ড্রয়েড টিভি আশা করে যে ডিভাইস নির্মাতারা আঞ্চলিক টিভি স্ট্যাকের জন্য সিস্টেম ইন্টিগ্রেটর বা অ্যান্ড্রয়েড সলিউশন ব্যবহার করবে, টিভি সফ্টওয়্যার স্ট্যাকগুলিতে সারফেস পাস করবে বা লিগ্যাসি স্ট্যাকের সাথে ইন্টারঅ্যাক্ট করার জন্য প্রয়োজনীয় কী কোড পাস করবে।
সম্প্রচার অ্যাপ এবং টিভি অ্যাপ কীভাবে ইন্টারঅ্যাক্ট করে তা এখানে রয়েছে:
- টিভি অ্যাপটি ফোকাসে রয়েছে, সমস্ত কী পাচ্ছে।
- টিভি অ্যাপ টিভি ইনপুট ডিভাইসে কী (যেমন লাল বোতাম) পাস করে।
- টিভি ইনপুট ডিভাইসটি অভ্যন্তরীণভাবে লিগ্যাসি টিভি স্ট্যাকের সাথে একত্রিত হয়।
- একটি অ্যাক্টিভেশন কীকোড (যেমন লাল বোতাম) পাওয়ার পরে, টিভি ইনপুট ডিভাইসটি সম্প্রচার অ্যাপগুলিকে সক্রিয় করে।
- একটি সম্প্রচার অ্যাপ টিভি অ্যাপে ফোকাস নেয় এবং ব্যবহারকারীর ক্রিয়া পরিচালনা করে।
ভয়েস অনুসন্ধান/সুপারিশের জন্য, সম্প্রচার অ্যাপ ভয়েস অনুসন্ধানের জন্য অ্যাপ-মধ্যস্থ অনুসন্ধান সমর্থন করতে পারে।
,
অ্যান্ড্রয়েড টিভি ইনপুট ফ্রেমওয়ার্ক (টিআইএফ) অ্যান্ড্রয়েড টিভিতে লাইভ কন্টেন্ট ডেলিভারি সহজ করে। অ্যান্ড্রয়েড টিআইএফ অ্যান্ড্রয়েড টিভি নিয়ন্ত্রণের জন্য ইনপুট মডিউল তৈরি করার জন্য নির্মাতাদের একটি আদর্শ API প্রদান করে এবং টিভি ইনপুট দ্বারা প্রকাশিত মেটাডেটার মাধ্যমে লাইভ টিভি অনুসন্ধান এবং সুপারিশগুলি সক্ষম করে।
ফ্রেমওয়ার্কটি টিভি মান বা আঞ্চলিক প্রয়োজনীয়তা বাস্তবায়নের চেষ্টা করে না, তবে ডিভাইস নির্মাতাদের পুনরায় বাস্তবায়ন ছাড়াই আঞ্চলিক ডিজিটাল টিভি সম্প্রচারের মান পূরণ করা সহজ করে তোলে। এই বিভাগে ডকুমেন্টেশন তৃতীয় পক্ষের অ্যাপ ডেভেলপারদের জন্যও উপযোগী হতে পারে যারা কাস্টম টিভি ইনপুট তৈরি করতে চান।
উপাদান
অ্যান্ড্রয়েড টিভি ইনপুট ফ্রেমওয়ার্ক বাস্তবায়নে একটি টিভি ইনপুট ম্যানেজার অন্তর্ভুক্ত রয়েছে। বিল্ট-ইন এবং আইপি টিউনার চ্যানেল অ্যাক্সেস করতে TIF টিভি অ্যাপের সাথে কাজ করে, একটি সিস্টেম অ্যাপ যা তৃতীয় পক্ষের অ্যাপ দ্বারা প্রতিস্থাপন করা যায় না। টিভি অ্যাপটি টিভি ইনপুট ম্যানেজারের মাধ্যমে ডিভাইস নির্মাতা বা অন্যান্য পক্ষের দ্বারা সরবরাহ করা টিভি ইনপুট মডিউলগুলির সাথে যোগাযোগ করে।
টিভি ইনপুট ফ্রেমওয়ার্কের মধ্যে রয়েছে:
- টিভি প্রদানকারী (
com.android.providers.tv.TvProvider
): চ্যানেল, প্রোগ্রাম এবং সংশ্লিষ্ট অনুমতিগুলির একটি ডাটাবেস - টিভি অ্যাপ (
com.android.tv.TvActivity
): অ্যাপ যা ব্যবহারকারীর ইন্টারঅ্যাকশন পরিচালনা করে - টিভি ইনপুট ম্যানেজার (
android.media.tv.TvInputManager
): টিভি ইনপুটগুলিকে টিভি অ্যাপের সাথে যোগাযোগ করতে দেয় - টিভি ইনপুট: একটি অ্যাপ যা ফিজিক্যাল বা ভার্চুয়াল টিউনার এবং ইনপুট পোর্ট উপস্থাপন করে
- টিভি ইনপুট HAL (
tv_input
মডিউল): একটি হার্ডওয়্যার সংজ্ঞা যা বাস্তবায়িত হলে সিস্টেম টিভি ইনপুটগুলিকে টিভি-নির্দিষ্ট হার্ডওয়্যার অ্যাক্সেস করতে দেয় - অভিভাবকীয় নিয়ন্ত্রণ: চ্যানেল এবং প্রোগ্রামগুলিকে ব্লক করার অনুমতি দেওয়ার প্রযুক্তি
- HDMI-CEC: HDMI এর মাধ্যমে বিভিন্ন ডিভাইসের রিমোট কন্ট্রোলের অনুমতি দেওয়ার প্রযুক্তি
- টিউনার ফ্রেমওয়ার্ক: বিল্ট-ইন-টিউনার টিভি ইনপুটের জন্য একটি কাঠামো
- MediaCas: শর্তাধীন অ্যাক্সেসের জন্য একটি কাঠামো
- টিউনার রিসোর্স ম্যানেজার: টিভি ইনপুট, মিডিয়াক্যাস এবং বিল্ট-ইন-টিউনার ইনপুটের জন্য হার্ডওয়্যার সংস্থান পরিচালনা করার জন্য একটি পরিষেবা
এই উপাদানগুলি নীচে বিস্তারিতভাবে আচ্ছাদিত করা হয়েছে। অ্যান্ড্রয়েড টিভি ইনপুট ফ্রেমওয়ার্ক আর্কিটেকচারের বিশদ দৃশ্যের জন্য নিম্নলিখিত চিত্রটি দেখুন।

প্রবাহ
এখানে স্থাপত্য কিভাবে ব্যবহার করা হয়:
- ব্যবহারকারী টিভি অ্যাপ দেখেন এবং তার সাথে ইন্টারঅ্যাক্ট করেন, একটি সিস্টেম অ্যাপ যা তৃতীয় পক্ষের অ্যাপ দ্বারা প্রতিস্থাপন করা যায় না।
- টিভি অ্যাপ টিভি ইনপুট থেকে AV বিষয়বস্তু প্রদর্শন করে।
- টিভি অ্যাপ টিভি ইনপুটগুলির সাথে সরাসরি কথা বলতে পারে না। টিভি ইনপুট ম্যানেজার টিভি অ্যাপের জন্য টিভি ইনপুটগুলির অবস্থা চিহ্নিত করে৷ এই সীমাবদ্ধতা সম্পর্কে আরো বিস্তারিত জানার জন্য নীচের টিভি ইনপুট ম্যানেজার দেখুন।
অনুমতি
- শুধুমাত্র
signatureOrSystem
টিভি ইনপুট এবং টিভি অ্যাপের টিভি প্রোভাইডার ডাটাবেসে সম্পূর্ণ অ্যাক্সেস রয়েছে এবং তারা কী ইভেন্টগুলি গ্রহণ করতে সক্ষম। - শুধুমাত্র সিস্টেম টিভি ইনপুট টিভি ইনপুট ম্যানেজার পরিষেবার মাধ্যমে টিভি ইনপুট HAL অ্যাক্সেস করতে পারে। টিভি ইনপুট টিভি ইনপুট ম্যানেজার সেশনের মাধ্যমে এক থেকে এক অ্যাক্সেস করা হয়।
- থার্ড-পার্টি টিভি ইনপুটগুলির টিভি প্রোভাইডার ডাটাবেসে প্যাকেজ-লক করা অ্যাক্সেস রয়েছে এবং শুধুমাত্র প্যাকেজ সারিগুলির সাথে মিলে যাওয়া পড়তে/লিখতে পারে।
- থার্ড-পার্টি টিভি ইনপুটগুলি হয় তাদের নিজস্ব সামগ্রী বা কোনও ডিভাইস প্রস্তুতকারকের পাসথ্রু টিভি ইনপুট, যেমন HDMI1 থেকে সামগ্রী প্রদর্শন করতে পারে। তারা বিল্ট-ইন বা IPTV টিউনারের মতো নন-পাসথ্রু টিভি ইনপুট থেকে সামগ্রী প্রদর্শন করতে পারে না।
- একটি হার্ডওয়্যার টিভি ইনপুট অ্যাপের জন্য
TV_INPUT_HARDWARE
অনুমতি, টিভি ইনপুট ম্যানেজার পরিষেবাকে টিভি ইনপুট ম্যানেজার পরিষেবাকে কল করতে এবং এর টিভি ইনপুটগুলি যোগ করার জন্য বুট করার সময় টিভি ইনপুট পরিষেবাকে অবহিত করার জন্য সংকেত দেয়৷ এই অনুমতিটি একটি হার্ডওয়্যার টিভি ইনপুট অ্যাপকে টিভি ইনপুট পরিষেবা প্রতি একাধিক টিভি ইনপুট সমর্থন করার অনুমতি দেয়, সেইসাথে এটির সমর্থিত টিভি ইনপুটগুলিকে গতিশীলভাবে যুক্ত করতে এবং সরাতে সক্ষম হয়৷
টিভি প্রদানকারী
টিভি প্রদানকারী ডাটাবেস টিভি ইনপুট থেকে চ্যানেল এবং প্রোগ্রাম সঞ্চয় করে। টিভি সরবরাহকারী সম্পর্কিত অনুমতিগুলি প্রকাশ করে এবং পরিচালনা করে যাতে টিভি ইনপুটগুলি কেবল তাদের নিজস্ব রেকর্ড দেখতে পারে। উদাহরণস্বরূপ, একটি নির্দিষ্ট টিভি ইনপুট কেবলমাত্র চ্যানেল এবং প্রোগ্রামগুলি এটি সরবরাহ করেছে এবং অন্য কোনও টিভি ইনপুটগুলির চ্যানেল এবং প্রোগ্রামগুলি অ্যাক্সেস করতে নিষেধ করে।
টিভি সরবরাহকারী অভ্যন্তরীণভাবে "ক্যানোনিকাল জেনার" থেকে "ব্রডকাস্ট জেনার" মানচিত্র করে। টিভি ইনপুটগুলি অন্তর্নিহিত সম্প্রচার স্ট্যান্ডার্ডের মান সহ "সম্প্রচার জেনার" জনকে পপুলেশন করার জন্য দায়ী এবং "ক্যানোনিকাল জেনার" ক্ষেত্রটি স্বয়ংক্রিয়ভাবে android.provider.TvContract.Genres
থেকে সঠিক সম্পর্কিত জেনার দিয়ে পপুলেশন করা হবে। উদাহরণস্বরূপ, ব্রডকাস্ট স্ট্যান্ডার্ড এটিএসসি এ/65 এবং জেনার 0x25 (যার অর্থ "স্পোর্টস") এর সাথে প্রোগ্রামের সাথে টিভি ইনপুটটি "স্পোর্টস" স্ট্রিং সহ "সম্প্রচার জেনার" তৈরি করবে এবং টিভি সরবরাহকারী ম্যাপড মান android.provider.TvContract.Genres.SPORTS
সহ "ক্যানোনিকাল জেনার" ক্ষেত্রটি তৈরি করবে।
টিভি সরবরাহকারীর বিশদ ভিউয়ের জন্য নীচের চিত্রটি দেখুন।

কেবলমাত্র সুবিধাযুক্ত সিস্টেম পার্টিশনের অ্যাপ্লিকেশনগুলি পুরো টিভি সরবরাহকারী ডাটাবেস পড়তে পারে।
পাসথ্রু টিভি ইনপুটগুলি চ্যানেল এবং প্রোগ্রামগুলি সঞ্চয় করে না।
চ্যানেল এবং প্রোগ্রামগুলির জন্য স্ট্যান্ডার্ড ক্ষেত্রগুলি ছাড়াও, টিভি সরবরাহকারী ডাটাবেসটি প্রতিটি টেবিলে একটি ব্লব টাইপ ক্ষেত্র, COLUMN_INTERNAL_PROVIDER_DATA
সরবরাহ করে যা টিভি ইনপুটগুলি স্বেচ্ছাসেবী ডেটা সঞ্চয় করতে ব্যবহার করতে পারে। এই ব্লব ডেটাতে কাস্টম তথ্য যেমন সম্পর্কিত টিউনারের ফ্রিকোয়েন্সি অন্তর্ভুক্ত থাকতে পারে এবং প্রোটোকল বাফার বা অন্য কোনও আকারে সরবরাহ করা যেতে পারে। নির্দিষ্ট চ্যানেলগুলি অনুসন্ধানে অনুপলব্ধ করার জন্য একটি অনুসন্ধানযোগ্য ক্ষেত্র উপলব্ধ (যেমন সামগ্রী সুরক্ষার জন্য দেশ-নির্দিষ্ট প্রয়োজনীয়তা পূরণ করতে)।
ডাটাবেস ক্ষেত্রের উদাহরণ
টিভি সরবরাহকারী চ্যানেল ( android.provider.TvContract.Channels
) এবং প্রোগ্রাম ( android.provider.TvContract.Programs
) টেবিলগুলিতে কাঠামোগত ডেটা সমর্থন করে। এই টেবিলগুলি টিভি অ্যাপের মতো টিভি ইনপুট এবং সিস্টেম অ্যাপ্লিকেশন দ্বারা পপুলেটেড এবং অ্যাক্সেস করা হয়। এই টেবিলগুলিতে চার ধরণের ক্ষেত্র রয়েছে:
- প্রদর্শন: প্রদর্শন ক্ষেত্রগুলিতে এমন তথ্য রয়েছে যা অ্যাপ্লিকেশনগুলি ব্যবহারকারীর কাছে দৃশ্যমান করতে পারে, যেমন কোনও চ্যানেলের নাম (
COLUMN_DISPLAY_NAME
) বা নম্বর (COLUMN_DISPLAY_NUMBER
), বা প্রোগ্রামটির শিরোনাম দেখা হচ্ছে। - মেটাডেটা: চ্যানেলের পরিবহন স্ট্রিম আইডি (
COLUMN_TRANSPORT_STREAM_ID
), মূল নেটওয়ার্ক আইডি (COLUMN_ORIGINAL_NETWORK_ID
) এবং পরিষেবা আইডি (COLUMN_SERVICE_ID
) এর মতো প্রাসঙ্গিক মান অনুসারে সামগ্রী সনাক্তকরণের জন্য তিনটি ক্ষেত্র রয়েছে। - অভ্যন্তরীণ ডেটা : টিভি ইনপুটগুলির কাস্টম ব্যবহারের জন্য ক্ষেত্রগুলি।
কিছু ক্ষেত্র, যেমনCOLUMN_INTERNAL_PROVIDER_DATA
, কাস্টমাইজযোগ্য ব্লব ক্ষেত্রগুলি যেখানে একটি টিভি ইনপুট তাদের চ্যানেল বা প্রোগ্রাম সম্পর্কে স্বেচ্ছাসেবী মেটাডেটা সঞ্চয় করতে পারে। - পতাকা: পতাকা ক্ষেত্রগুলি কোনও চ্যানেল অনুসন্ধান, ব্রাউজ বা দেখার থেকে সীমাবদ্ধ করা উচিত কিনা তা উপস্থাপন করে। এটি কেবল চ্যানেল স্তরে সেট করা যেতে পারে। সমস্ত প্রোগ্রাম চ্যানেলে সেটিংয়ে পিছিয়ে দেয়।
-
COLUMN_SEARCHABLE
: কিছু চ্যানেল থেকে অনুসন্ধান সীমাবদ্ধ করা নির্দিষ্ট অঞ্চলে প্রয়োজনীয়তা হতে পারে।COLUMN_SEARCHABLE = 0
এর অর্থ চ্যানেলটি অনুসন্ধানের ফলাফলগুলিতে প্রকাশ করা উচিত নয়। -
COLUMN_BROWSABLE
: কেবল সিস্টেম অ্যাপ্লিকেশনগুলিতে দৃশ্যমান। অ্যাপ্লিকেশন দ্বারা ব্রাউজ করা থেকে চ্যানেলকে সীমাবদ্ধ করা।COLUMN_BROWSABLE = 0
এর অর্থ চ্যানেলটি চ্যানেল তালিকায় অন্তর্ভুক্ত করা উচিত নয়। -
COLUMN_LOCKED
: কেবল সিস্টেম অ্যাপ্লিকেশনগুলিতে দৃশ্যমান। পিন কোড প্রবেশ না করে অবৈধ অ্যাকাউন্ট দ্বারা চ্যানেলকে সীমাবদ্ধ করা।COLUMN_LOCKED = 1
এর অর্থ চ্যানেলটি পিতামাতার নিয়ন্ত্রণ দ্বারা সুরক্ষিত করা উচিত।
ক্ষেত্রগুলির আরও বিস্তৃত তালিকার জন্য, android/frameworks/base/media/java/android/media/tv/TvContract.java
দেখুন
অনুমতি এবং অ্যাক্সেস নিয়ন্ত্রণ
সমস্ত ক্ষেত্র সংশ্লিষ্ট সারিতে অ্যাক্সেস সহ যে কারও কাছে দৃশ্যমান। কোনও ক্ষেত্র সরাসরি ব্যবহারকারীদের কাছে অ্যাক্সেসযোগ্য নয়; তারা কেবল টিভি অ্যাপ্লিকেশন, সিস্টেম অ্যাপ্লিকেশন বা টিভি ইনপুট পৃষ্ঠগুলি কী তা দেখতে পায়।
- প্রতিটি সারিতে
PACKAGE_NAME
রয়েছে, প্যাকেজ (অ্যাপ্লিকেশন) যা সেই সারিটির মালিক, টিভিপ্রোভাইডার.জাভা এর মাধ্যমে ক্যোয়ারী, সন্নিবেশ, আপডেট পরীক্ষা করে। একটি টিভি ইনপুট কেবল এটি লিখিত তথ্য অ্যাক্সেস করতে পারে এবং অন্যান্য টিভি ইনপুট দ্বারা সরবরাহিত তথ্য থেকে বন্ধ করা হয়। - উপলব্ধ চ্যানেলগুলি নির্ধারণের জন্য অ্যান্ড্রয়েডম্যানিফেস্ট.এক্সএমএল (ব্যবহারকারীর সম্মতি প্রয়োজন) এর মাধ্যমে অনুমতিগুলি পড়ুন, লিখুন।
- কেবলমাত্র
signatureOrSystem
অ্যাপ্লিকেশনগুলি সম্পূর্ণ ডাটাবেস অ্যাক্সেস করার জন্যACCESS_ALL_EPG_DATA
অনুমতি অর্জন করতে পারে।
টিভি ইনপুট ম্যানেজার
টিভি ইনপুট ম্যানেজার সামগ্রিক অ্যান্ড্রয়েড টিভি ইনপুট কাঠামোর জন্য একটি কেন্দ্রীয় সিস্টেম এপিআই সরবরাহ করে। এটি অ্যাপ্লিকেশন এবং টিভি ইনপুটগুলির মধ্যে মিথস্ক্রিয়া সালিশ করে এবং পিতামাতার নিয়ন্ত্রণ কার্যকারিতা সরবরাহ করে। টিভি ইনপুট ম্যানেজার সেশনগুলি অবশ্যই টিভি ইনপুটগুলির সাথে এক থেকে এক তৈরি করতে হবে। টিভি ইনপুট ম্যানেজার ইনস্টল করা টিভি ইনপুটগুলিতে অ্যাক্সেসের অনুমতি দেয় যাতে অ্যাপ্লিকেশনগুলি হতে পারে:
- টিভি ইনপুটগুলি তালিকাভুক্ত করুন এবং তাদের স্থিতি পরীক্ষা করুন
- সেশন তৈরি করুন এবং শ্রোতাদের পরিচালনা করুন
সেশনের জন্য, টিভি অ্যাপ্লিকেশন দ্বারা কেবল টিভি অ্যাপ্লিকেশন দ্বারা টিভি ইনপুটটি টিভি সরবরাহকারী ডাটাবেসে যুক্ত হয়েছে, পাসথ্রু টিভি ইনপুটগুলি বাদে যা TvContract.buildChannelUriForPassthroughInput()
ব্যবহার করে সুর করা যেতে পারে। একটি টিভি ইনপুট এর ভলিউম সেটও থাকতে পারে। ডিভাইস প্রস্তুতকারক (স্বাক্ষর অ্যাপ্লিকেশন) বা সিস্টেম পার্টিশনে ইনস্টল করা অন্যান্য অ্যাপ্লিকেশন দ্বারা প্রদত্ত এবং স্বাক্ষরিত টিভি ইনপুটগুলি পুরো টিভি সরবরাহকারী ডাটাবেসে অ্যাক্সেস থাকবে। এই অ্যাক্সেসটি সমস্ত উপলভ্য টিভি চ্যানেল এবং প্রোগ্রামগুলি ব্রাউজ করতে এবং অনুসন্ধান করতে অ্যাপ্লিকেশনগুলি তৈরি করতে ব্যবহার করা যেতে পারে।
একটি অ্যাপ্লিকেশন android.media.tv.TvInputManager
ম্যানেজারের সাথে একটি টিভি ইনপুটটির রাষ্ট্রীয় পরিবর্তন বা টিভি ইনপুট সংযোজন বা অপসারণে ফিরে কল করতে একটি TvInputCallback
তৈরি এবং নিবন্ধন করতে পারে। উদাহরণস্বরূপ, কোনও টিভি অ্যাপ্লিকেশন যখন কোনও টিভি ইনপুট সংযোগ বিচ্ছিন্ন হিসাবে প্রদর্শন করে এবং এর নির্বাচন প্রতিরোধের মাধ্যমে সংযোগ বিচ্ছিন্ন করা হয় তখন প্রতিক্রিয়া জানাতে পারে।
টিভি ইনপুট ম্যানেজার টিভি অ্যাপ্লিকেশন এবং টিভি ইনপুটগুলির মধ্যে যোগাযোগ বিমূর্ত করে। টিভি ইনপুট ম্যানেজার এবং টিভি ইনপুটটির স্ট্যান্ডার্ড ইন্টারফেস একাধিক ডিভাইস নির্মাতাদের সমস্ত টিভি অ্যাপ্লিকেশনগুলিতে কাজ করতে সমস্ত তৃতীয় পক্ষের টিভি ইনপুটগুলিকে সহায়তা করার সময় তাদের নিজস্ব টিভি অ্যাপ্লিকেশন তৈরি করতে দেয়।
টিভি ইনপুট
টিভি ইনপুটগুলি হ'ল অ্যান্ড্রয়েড অ্যাপ্লিকেশনগুলি যে অর্থে তাদের একটি অ্যান্ড্রয়েডম্যানিফেস্ট.এক্সএমএল রয়েছে এবং এটি ইনস্টল করা হয় (প্লে, প্রাক-ইনস্টলড, বা সাইডেলডডের মাধ্যমে)। অ্যান্ড্রয়েড টিভি প্রাক-ইনস্টল করা সিস্টেম অ্যাপ্লিকেশনগুলি, ডিভাইস প্রস্তুতকারক দ্বারা স্বাক্ষরিত অ্যাপ্লিকেশন এবং তৃতীয় পক্ষের টিভি ইনপুটগুলিকে সমর্থন করে।
এইচডিএমআই ইনপুট বা অন্তর্নির্মিত টিউনার ইনপুটগুলির মতো কিছু ইনপুট কেবল নির্মাতার দ্বারা সরবরাহ করা যেতে পারে কারণ তারা অন্তর্নিহিত হার্ডওয়্যার দিয়ে সরাসরি কথা বলে। অন্যরা, যেমন আইপিটিভি, প্লেস-শিফটিং এবং বাহ্যিক এসটিবি, তৃতীয় পক্ষগুলি গুগল প্লে স্টোরের এপিকে হিসাবে সরবরাহ করা যেতে পারে। একবার ডাউনলোড এবং ইনস্টল হয়ে গেলে, নতুন ইনপুটটি টিভি অ্যাপের মধ্যে নির্বাচন করা যেতে পারে।
পাসথ্রু ইনপুট উদাহরণ

এই উদাহরণে, ডিভাইস প্রস্তুতকারকের দ্বারা সরবরাহিত টিভি ইনপুটটি বিশ্বস্ত এবং টিভি সরবরাহকারীর কাছে সম্পূর্ণ অ্যাক্সেস রয়েছে। পাসথ্রু টিভি ইনপুট হিসাবে, এটি টিভি সরবরাহকারীর সাথে কোনও চ্যানেল বা প্রোগ্রাম নিবন্ধন করে না। পাসথ্রু ইনপুটটি উল্লেখ করতে ব্যবহৃত ইউআরআই পেতে, android.media.tv.TvContract
ইউটিলিটি পদ্ধতি buildChannelUriForPassthroughInput(String inputId)
ব্যবহার করুন। টিভি অ্যাপ্লিকেশন এইচডিএমআই টিভি ইনপুটটিতে পৌঁছানোর জন্য টিভি ইনপুট ম্যানেজারের সাথে যোগাযোগ করে।
অন্তর্নির্মিত টিউনার উদাহরণ

এই উদাহরণে, ডিভাইস প্রস্তুতকারকের দ্বারা সরবরাহিত অন্তর্নির্মিত টিউনার টিভি ইনপুটটি বিশ্বস্ত এবং টিভি সরবরাহকারীর কাছে সম্পূর্ণ অ্যাক্সেস রয়েছে।
তৃতীয় পক্ষের ইনপুট উদাহরণ

এই উদাহরণে, বাহ্যিক এসটিবি টিভি ইনপুটটি তৃতীয় পক্ষ দ্বারা সরবরাহ করা হয়। যেহেতু সেই টিভি ইনপুটটি সরাসরি এইচডিএমআই ভিডিও ফিডটি অ্যাক্সেস করতে পারে না, এটি অবশ্যই টিভি ইনপুট ম্যানেজারের মাধ্যমে যেতে হবে এবং ডিভাইস উত্পাদন দ্বারা সরবরাহিত এইচডিএমআই টিভি ইনপুট ব্যবহার করতে হবে।
টিভি ইনপুট ম্যানেজারের মাধ্যমে, বাহ্যিক এসটিবি টিভি ইনপুট এইচডিএমআই টিভি ইনপুটটির সাথে কথা বলতে পারে এবং এটি এইচডিএমআই 1 এ ভিডিওটি দেখানোর জন্য জিজ্ঞাসা করতে পারে। সুতরাং এসটিবি টিভি ইনপুট টিভি নিয়ন্ত্রণ করতে পারে যখন প্রস্তুতকারক সরবরাহিত এইচডিএমআই টিভি ইনপুট ভিডিওটি রেন্ডার করে।
ছবিতে ছবি (পিআইপি) উদাহরণ

উপরের চিত্রটি দেখায় যে কীভাবে রিমোট কন্ট্রোলের বোতামগুলি চিত্রের (পিআইপি) ডিসপ্লেতে চিত্রের জন্য একটি নির্দিষ্ট টিভি ইনপুটটিতে প্রেরণ করা হয়। এই বোতাম প্রেসগুলি ডিভাইস প্রস্তুতকারকের দ্বারা সরবরাহিত হার্ডওয়্যার ড্রাইভার দ্বারা ব্যাখ্যা করা হয়, হার্ডওয়্যার স্ক্যানকোডগুলিকে অ্যান্ড্রয়েড কীকোডগুলিতে রূপান্তর করে এবং তাদের স্ট্যান্ডার্ড অ্যান্ড্রয়েড ইনপুট পাইপলাইন InputReader
এবং InputDispatcher
ফাংশনগুলিতে কীভেন্টস হিসাবে প্রেরণ করে। এগুলি ফোকাসে থাকলে টিভি অ্যাপে ট্রিগার ইভেন্টগুলি ট্রিগার করে।
কেবলমাত্র সিস্টেম টিভি ইনপুটগুলি InputEvents
গ্রহণের জন্য যোগ্য এবং কেবলমাত্র যদি তাদের কাছে RECEIVE_INPUT_EVENT
সিস্টেমের অনুমতি থাকে। টিভি ইনপুটটি কোন ইনপুটভেন্টগুলি গ্রাস করতে হবে তা নির্ধারণ করার জন্য দায়বদ্ধ এবং টিভি অ্যাপ্লিকেশনটিকে কী কী গ্রহণ করার প্রয়োজন নেই তা পরিচালনা করার অনুমতি দেওয়া উচিত।
টিভি অ্যাপটি কোন সিস্টেম টিভি ইনপুট সক্রিয়, অর্থাত্ ব্যবহারকারী দ্বারা নির্বাচিত অর্থ এবং আগত KeyEvents
বিচ্ছিন্ন করার জন্য এবং তাদের সঠিক টিভি ইনপুট ম্যানেজার সেশনে রুট করে, ইভেন্টটি সম্পর্কিত টিভি ইনপুটটিতে প্রেরণ করার জন্য ডেকে আনার জন্য দায়বদ্ধ dispatchInputEvent()
এমএইচইজি -5 ইনপুট উদাহরণ
নিম্নলিখিত চিত্রটি অ্যান্ড্রয়েড টিআইএফ -এর মাধ্যমে KeyEvents
কীভাবে চালিত হয় সে সম্পর্কে আরও বিশদ দৃষ্টিভঙ্গি দেখায়।

এটি ব্যবহারকারীদের তাদের টেলিভিশনগুলিতে ইন্টারেক্টিভ অ্যাপ্লিকেশনগুলি অ্যাক্সেস করতে দেওয়ার জন্য ইউরোপে সাধারণ একটি লাল বোতাম অ্যাপের প্রবাহকে চিত্রিত করে। এই পরিবহন প্রবাহের উপরে একটি অ্যাপ্লিকেশন সরবরাহ করা যেতে পারে। বোতামটি ক্লিক করা হলে, এটি ব্যবহারকারীদের এই সম্প্রচার অ্যাপ্লিকেশনগুলির সাথে ইন্টারঅ্যাক্ট করতে দেয়। উদাহরণস্বরূপ, আপনি সম্পর্কিত ওয়েব পৃষ্ঠাগুলি বা ক্রীড়া স্কোরগুলি অ্যাক্সেস করতে এই সম্প্রচার অ্যাপ্লিকেশনগুলি ব্যবহার করতে পারেন।
সম্প্রচার অ্যাপ্লিকেশনগুলি কীভাবে টিভি অ্যাপের সাথে ইন্টারঅ্যাক্ট করে তা জানতে সম্প্রচার অ্যাপ্লিকেশন বিভাগটি দেখুন।
এই উদাহরণে:
- টিভি অ্যাপটি ফোকাসে রয়েছে এবং সমস্ত কীগুলি গ্রহণ করে।
-
KeyEvents
(যেমন লাল বোতাম)InputEvents.
- সিস্টেম টিভি ইনপুট এমএইচইজি -5 স্ট্যাকের সাথে সংহত করে এবং
RECEIVE_INPUT_EVENT
সিস্টেমের অনুমতি রয়েছে। - অ্যাক্টিভেশন কীকোড (যেমন লাল বোতাম) গ্রহণের সময়, টিভি ইনপুট ব্রডকাস্ট অ্যাপটিকে সক্রিয় করে।
- টিভি ইনপুট
KeyEvents
InputEvents
হিসাবে গ্রাস করে এবং সম্প্রচার অ্যাপ্লিকেশনটি হ'ল ফোকাস এবং বরখাস্ত না হওয়া পর্যন্তInputEvents
পরিচালনা করে।
দ্রষ্টব্য : তৃতীয় পক্ষের টিভি ইনপুটগুলি কখনই কীগুলি গ্রহণ করে না।
টিভি ইনপুট হাল
টিভি ইনপুট এইচএল টিভি-নির্দিষ্ট হার্ডওয়্যার অ্যাক্সেস করতে টিভি ইনপুটগুলির বিকাশকে সহায়তা করে। অন্যান্য অ্যান্ড্রয়েড হালসের মতো, টিভি ইনপুট এইচএল ( tv_input
) এওএসপি উত্স গাছটিতে উপলব্ধ এবং বিক্রেতার বাস্তবায়ন বিকাশ করে।
দ্রষ্টব্য : অ্যান্ড্রয়েড 14 দিয়ে শুরু করে, টিভি ইনপুট এইচএল ইন্টারফেসটি এইডএল ব্যবহার করে সংজ্ঞায়িত করা হয়েছে।
টিভি অ্যাপ
সিস্টেম টিভি অ্যাপ্লিকেশনটি ব্যবহারকারীকে লাইভ টিভি সামগ্রী উপস্থাপন করে। অ্যান্ড্রয়েড প্ল্যাটফর্মের পাশাপাশি একটি রেফারেন্স টিভি অ্যাপ্লিকেশন (লাইভ টিভি) সরবরাহ করা হয়েছে, যা ডিভাইস প্রস্তুতকারকদের দ্বারা যেমন, কাস্টমাইজড, প্রসারিত বা প্রতিস্থাপন করা যেতে পারে। উত্স কোডটি অ্যান্ড্রয়েড ওপেন সোর্স প্রকল্পে উপলভ্য এবং আপনি এটি দিয়ে রেফারেন্স টিভি অ্যাপ নিবন্ধে শুরু করতে পারেন।
ডিভাইস নির্মাতারা ডিভাইস প্রস্তুতকারক বা দেশ-নির্দিষ্ট বৈশিষ্ট্যগুলি বাস্তবায়নের জন্য তাদের টিভি অ্যাপ্লিকেশনগুলি প্রসারিত করতে পারে তবে এটি টিআইএফ বা রেফারেন্স টিভি অ্যাপের সুযোগে নেই।
সর্বনিম্ন, সিস্টেম টিভি অ্যাপ্লিকেশনটির নিম্নলিখিত কাজগুলি পরিচালনা করা দরকার:
সেটআপ এবং কনফিগারেশন
- অটো-সনাক্তকারী টিভি ইনপুট
- টিভি ইনপুটগুলি চ্যানেল সেটআপ শুরু করতে দিন
- পিতামাতার সেটিংস নিয়ন্ত্রণ করুন
- চ্যানেলগুলি সম্পাদনা করুন
দেখা হচ্ছে
- সমস্ত টিভি চ্যানেল অ্যাক্সেস এবং নেভিগেট করুন
- অ্যাক্সেস টিভি প্রোগ্রাম তথ্য বার
- বৈদ্যুতিন প্রোগ্রামিং গাইড (ইপিজি) ডেটা প্রদর্শন করুন
- একাধিক অডিও এবং সাবটাইটেল ট্র্যাক সমর্থন করুন
- প্যারেন্টাল কন্ট্রোল পিন চ্যালেঞ্জ সরবরাহ করুন
- টিভি স্ট্যান্ডার্ডের জন্য টিভি ইনপুট ইউআই ওভারলে অনুমতি দিন (এইচবিবিটিভি ইত্যাদি)
- টিভি চ্যানেল এবং প্রোগ্রামগুলির জন্য অনুসন্ধানের ফলাফলগুলি পপুলেট করুন
- অ্যাপ্লিকেশন লিঙ্কিং কার্ড প্রদর্শন করুন
- সমর্থন টাইমশিফটিং এপিআই
- ডিভিআর কার্যকারিতা পরিচালনা করুন এবং টিভি রেকর্ডিং এপিআই সমর্থন করুন
এই বৈশিষ্ট্য সেটটি নতুন অ্যান্ড্রয়েড সংস্করণগুলির সাথে সামঞ্জস্য রেখে বাড়বে যেখানে প্ল্যাটফর্ম টিফ এপিআইগুলি প্রসারিত করা হয়েছে। সিটিএস যাচাইয়ের সামঞ্জস্যতা পরীক্ষার কভারেজ সরবরাহ করে।
তৃতীয় পক্ষের টিভি ইনপুটগুলির জন্য সমর্থন
অ্যান্ড্রয়েড টিভি তৃতীয় পক্ষের টিভি ইনপুটগুলির জন্য বিকাশকারী এপিআই সরবরাহ করে, লাইভ টিভি অভিজ্ঞতায় সফ্টওয়্যার চ্যানেলগুলি সরবরাহ করতে ইনস্টল করা অ্যাপ্লিকেশনগুলি সক্ষম করে। একটি সামঞ্জস্যপূর্ণ অ্যান্ড্রয়েড ডিভাইস বাস্তবায়ন নিশ্চিত করতে, সিস্টেম টিভি অ্যাপ্লিকেশনটিতে তৃতীয় পক্ষের টিভি ইনপুট এবং চ্যানেলগুলি ব্যবহারকারীর কাছে সার্ফেসিং সম্পর্কিত কিছু দায়িত্ব রয়েছে। রেফারেন্স লাইভ টিভি অ্যাপ্লিকেশন একটি সামঞ্জস্যপূর্ণ বাস্তবায়ন সরবরাহ করে; যদি সিস্টেম টিভি অ্যাপ্লিকেশনটি প্রতিস্থাপন করে, ডিভাইস নির্মাতাদের অবশ্যই তাদের নিজস্ব অ্যাপ্লিকেশনগুলি সমস্ত অ্যান্ড্রয়েড টিভি ডিভাইসগুলিতে বিকাশকারীদের প্রত্যাশা পূরণের জন্য তাদের নিজস্ব অ্যাপ্লিকেশনগুলি অনুরূপ সামঞ্জস্যতা সরবরাহ করতে হবে তা নিশ্চিত করতে হবে।
সিস্টেম টিভি অ্যাপ্লিকেশনটি অবশ্যই ডিভাইসের ডিফল্ট লাইভ টিভি পরিষেবার পাশাপাশি তৃতীয় পক্ষের ইনপুটগুলি পৃষ্ঠত্যাগ করতে হবে। বিকাশকারী এপিআইগুলির প্রতিশ্রুতি হ'ল ব্যবহারকারীরা তাদের স্ট্যান্ডার্ড টিভি অভিজ্ঞতার মধ্যে চ্যানেলগুলি (একবার ইনস্টল করা) সন্ধান করতে সক্ষম হবেন।
অ্যান্ড্রয়েড সিডিডির টিভি অ্যাপ্লিকেশন বিভাগে সংজ্ঞায়িত হিসাবে অন্তর্নির্মিত চ্যানেল এবং তৃতীয় পক্ষের চ্যানেলগুলির মধ্যে ভিজ্যুয়াল পার্থক্য অনুমোদিত।
নিম্নলিখিত বিভাগগুলি দেখায় যে কীভাবে লাইভ টিভি অ্যাপ্লিকেশন সিডিডি প্রয়োজনীয়তাগুলি পূরণ করে।
নতুন চ্যানেল সেটআপ
নতুন তৃতীয় পক্ষের ইনপুট/চ্যানেলগুলির সংযোজন ব্যবহারকারী গুগল প্লে এর মতো কোনও অ্যাপ্লিকেশন স্টোর থেকে একটি টিভি ইনপুট সন্ধান এবং ইনস্টল করার মাধ্যমে শুরু হয়।
কিছু তৃতীয় পক্ষের টিভি ইনপুটগুলি স্বয়ংক্রিয়ভাবে টিভিপ্রোভাইডার ডাটাবেসে চ্যানেল যুক্ত করে। তবে বেশিরভাগ ব্যবহারকারীকে তাদের চ্যানেলগুলি সেট আপ করতে, লগইন বিশদ সরবরাহ করতে এবং অন্যান্য ক্রিয়া সরবরাহ করতে সক্ষম করতে একটি সেটআপ ক্রিয়াকলাপ সরবরাহ করবে। সিস্টেম টিভি অ্যাপ্লিকেশনটিকে নিশ্চিত করা দরকার যে ব্যবহারকারী এই সেটআপ ক্রিয়াকলাপটি সক্রিয় করতে পারে, এ কারণেই সিডিডির তৃতীয় পক্ষের ইনপুটগুলি মূল টিভি অ্যাপ্লিকেশন থেকে দূরে ন্যূনতম নেভিগেশন ক্রিয়া হওয়া দরকার।
রেফারেন্স লাইভ টিভি অ্যাপ্লিকেশন ইনপুট অ্যাক্সেসের জন্য চ্যানেল উত্স মেনু সরবরাহ করে।




ব্যবহারকারীকে সরাসরি সেটআপে নিয়ে যাওয়ার জন্য একটি নতুন টিভি ইনপুট ইনস্টল হওয়ার পরে টিভি অ্যাপ্লিকেশন মেনুতে একটি বিজ্ঞপ্তি কার্ড দেখানো হয়েছে:

যদি ব্যবহারকারী বিজ্ঞপ্তির মাধ্যমে পদক্ষেপ নেয় তবে তারা চিত্র 10 -তে দেখা হিসাবে তাদের উত্সগুলি সেট আপ করতে নির্বাচন করতে পারেন।
এই অঞ্চলে বিকাশকারীদের প্রত্যাশার জন্য আপনার টিভি ইনপুট পরিষেবাটি সংজ্ঞায়িত দেখুন।
চ্যানেল তালিকা কাস্টমাইজ করুন
ডিভাইস নির্মাতারা নির্দিষ্ট চ্যানেলগুলি আড়াল করতে এবং ব্যবহারকারীদের তাদের নিজস্ব ইপিজি পরিচালনা করতে সক্ষম করতে একটি ইউআই সরবরাহ করতে পারে। লাইভ টিভিতে এই সুবিধা অন্তর্ভুক্ত রয়েছে।


ইপিজি
তৃতীয় পক্ষের ইনপুট বিকাশকারীদের আত্মবিশ্বাস থাকা দরকার যে ব্যবহারকারীরা সমস্ত সামঞ্জস্যপূর্ণ অ্যান্ড্রয়েড টিভি ডিভাইস জুড়ে সাধারণ ব্যবহারের সময় তাদের চ্যানেলগুলিতে সহজেই নেভিগেট করতে পারে।
তৃতীয় পক্ষের ইনপুটগুলির চ্যানেলগুলি অবশ্যই ডিভাইসের স্ট্যান্ডার্ড লাইভ টিভি অভিজ্ঞতা ইপিজির অংশ হিসাবে উপস্থাপন করতে হবে। তৃতীয় পক্ষের চ্যানেলগুলির জন্য ভিজ্যুয়াল বিচ্ছেদ বা পৃথক বিভাগগুলি ব্যবহার করা যেতে পারে (অ্যান্ড্রয়েড সিডিডির টিভি অ্যাপ বিভাগটি দেখুন)-কী কী তা ব্যবহারকারীরা তাদের ইনস্টল করা চ্যানেলগুলি সন্ধান করতে সক্ষম।
অনুসন্ধান করুন
সর্বোত্তম ব্যবহারকারীর অভিজ্ঞতা নিশ্চিত করতে বিশ্বব্যাপী অনুসন্ধান অনুরোধগুলির অনুসন্ধানের ফলাফলগুলি অন্তর্ভুক্ত করতে নির্মাতাদের অবশ্যই টিভি অ্যাপ্লিকেশনটি প্রয়োগ করতে হবে। লাইভ টিভি একটি বাস্তবায়ন সরবরাহ করে (দেখুন যা তৃতীয় পক্ষের ইনপুটগুলি (প্ল্যাটফর্মের সামঞ্জস্যের জন্য প্রয়োজনীয়) পাশাপাশি অন্তর্নির্মিত ইনপুটগুলির ফলাফল সরবরাহ করে।
সময় পরিবর্তন
অ্যান্ড্রয়েড 6.0 এবং তার উপরে ডিভাইসের জন্য, টিভি অ্যাপ্লিকেশনটিকে অবশ্যই অ্যান্ড্রয়েড ফ্রেমওয়ার্ক সময় স্থানান্তরিত এপিআইগুলিকে সমর্থন করতে হবে। অতিরিক্তভাবে, নির্মাতাদের অবশ্যই টিভি অ্যাপ্লিকেশনটিতে প্লেব্যাক নিয়ন্ত্রণগুলি প্রয়োগ করতে হবে, যা ব্যবহারকারীদের প্লেব্যাকটি বিরতি, পুনরায় শুরু, রিওয়াইন্ড এবং দ্রুত ফরোয়ার্ড করতে দেয়।
টিভি ইনপুটগুলির জন্য যা সময় স্থানান্তরকে সমর্থন করে, টিভি অ্যাপ্লিকেশনটির প্লেব্যাক নিয়ন্ত্রণগুলি প্রদর্শন করা দরকার।

ডিভিআর
অ্যান্ড্রয়েড .0.০ এবং তারও বেশি ডিভাইসগুলির জন্য, টিভি অ্যাপ্লিকেশনটিকে অবশ্যই অ্যান্ড্রয়েড ফ্রেমওয়ার্ক টিভি রেকর্ডিং এপিআইগুলিকে সমর্থন করতে হবে, রেকর্ড করা প্রোগ্রামগুলি সমর্থন, তালিকা এবং খেলতে হবে।
এটি ডিভাইস নির্মাতাদের তাদের ডিভিআর সাবসিস্টেমগুলিকে টিআইএফ -তে প্লাগ করতে এবং টিভি ডিভাইসে ডিভিআর কার্যকারিতা সক্ষম করতে বা সংহত করতে নাটকীয়ভাবে এটি নাটকীয়ভাবে হ্রাস করতে দেয়। এটি তৃতীয় পক্ষগুলিকেও আফটার মার্কেট ডিভিআর সিস্টেম সরবরাহ করতে সক্ষম করে যা একটি অ্যান্ড্রয়েড টিভি ডিভাইসে প্লাগ করা যেতে পারে।
লাইভ সামগ্রী রেকর্ডিংয়ের পাশাপাশি, টিভি অ্যাপ্লিকেশনটি রিসোর্স দ্বন্দ্বকেও পরিচালনা করে। উদাহরণস্বরূপ, যদি ডিভাইসের দুটি টিউনার থাকে তবে এটি একই সাথে দুটি প্রোগ্রাম রেকর্ড করতে পারে। যদি ব্যবহারকারী তিনটি রেকর্ড করতে বলে, টিভি অ্যাপ্লিকেশনটিকে অবশ্যই দ্বন্দ্বটি পরিচালনা করতে হবে এবং হয় একটি বিজ্ঞপ্তি পৃষ্ঠের উচিত বা অনুরোধ করা উচিত যে ব্যবহারকারী এই অনুরোধগুলির জন্য একটি অগ্রাধিকারের সময়সূচী নির্ধারণ করে।
টিভি অ্যাপ্লিকেশনগুলি কোনও ব্যবহারকারীকে জিজ্ঞাসা করার মতো আরও পরিশীলিত যুক্তি প্রয়োগ করতে পারে যখন তারা একটি পর্ব রেকর্ড করার জন্য অনুরোধ করার সময় তারা কোনও সিরিজে ভবিষ্যতের সমস্ত এপিসোড রেকর্ড করতে চায় কিনা।
অ্যান্ড্রয়েড টিভিতে সম্ভাব্য ডিভিআর বাস্তবায়নের জন্য একটি দেখার জন্য নিম্নলিখিত চিত্রটি দেখুন।

- টিভি ইনপুট পরিষেবাটি টিভি অ্যাপ্লিকেশনটিকে কতগুলি টিউনার উপলব্ধ তা বলে যাতে টিভি অ্যাপটি সম্ভাব্য সংস্থান সংঘাত পরিচালনা করতে পারে।
- টিভি অ্যাপটি একটি টিভি প্রোগ্রাম রেকর্ড করতে একটি ব্যবহারকারী-উদ্যোগী অনুরোধ গ্রহণ করে।
- টিভি অ্যাপটি তার অভ্যন্তরীণ ডাটাবেসে রেকর্ডিংয়ের সময়সূচী সঞ্চয় করে।
- রেকর্ড করার সময় হয়ে গেলে, টিভি অ্যাপটি রেকর্ডিংয়ের সাথে সম্পর্কিত চ্যানেলটিতে টিউন করার জন্য একটি অনুরোধ পাস করে।
- টিভি ইনপুট পরিষেবাটি এই অনুরোধটি গ্রহণ করে, উপযুক্ত সংস্থান আছে কি না তা চ্যানেলে সুরগুলি এবং টিউনগুলি নিয়ে সাড়া দেয়।
- তারপরে টিভি অ্যাপটি টিভি ইনপুট ম্যানেজারে রেকর্ডিং শুরু করার জন্য একটি অনুরোধ পাস করে।
- টিভি ইনপুট পরিষেবা এই অনুরোধটি গ্রহণ করে এবং রেকর্ডিং শুরু করে।
- টিভি ইনপুট পরিষেবা তার স্টোরেজে প্রকৃত ভিডিও ডেটা সঞ্চয় করে, যা বাহ্যিক স্টোরেজ বা ক্লাউড স্টোরেজ হতে পারে।
- রেকর্ডিং শেষ করার সময় যখন, টিভি অ্যাপটি টিভি ইনপুট ম্যানেজারের কাছে স্টপ রেকর্ডিং অনুরোধটি পাস করে।
- একবার টিভি ইনপুট পরিষেবাটি অনুরোধটি গ্রহণ করার পরে, এটি রেকর্ডিং বন্ধ করে দেয় এবং এর সম্পর্কিত মেটাডেটা টিভি সরবরাহকারীর সাথে যুক্ত করে যাতে টিভি অ্যাপ্লিকেশনটি অনুরোধ করা হলে ব্যবহারকারীদের কাছে রেকর্ডিং প্রদর্শন করতে পারে।
আপনার টিভি ইনপুট পরিষেবাতে রেকর্ডিং বৈশিষ্ট্যগুলি বাস্তবায়নের বিষয়ে আরও তথ্যের জন্য, এই টিভি রেকর্ডিং নিবন্ধটি দেখুন।
দরকারী সম্পদ
- অ্যান্ড্রয়েড সিডিডি এবং ডকুমেন্টেড ডেভেলপার এপিআইগুলি হ'ল নির্দিষ্ট রেফারেন্স।
- সিটিএস যাচাইকারী সামঞ্জস্যতা পরীক্ষার প্রোগ্রামের অংশ হিসাবে এপিআই অনুশীলন করে। লাইভ টিভির বিরুদ্ধে এটি চালানো তৃতীয় পক্ষের ইনপুটগুলির প্রসঙ্গে ইপিজি, অনুসন্ধান, পিতামাতার নিয়ন্ত্রণ এবং অন্যান্য প্রয়োজনীয়তাগুলি দেখার একটি কার্যকর উপায় হতে পারে।
- এই অঞ্চলে বিকাশকারীদের প্রত্যাশার জন্য আপনার টিভি ইনপুট পরিষেবাটি সংজ্ঞায়িত দেখুন।
পিতামাতার নিয়ন্ত্রণ
পিতামাতার নিয়ন্ত্রণ কোনও ব্যবহারকারীকে অনাকাঙ্ক্ষিত চ্যানেল এবং প্রোগ্রামগুলি ব্লক করতে দেয় তবে একটি পিন কোড প্রবেশ করে ব্লকটি বাইপাস করে।
পিতামাতার নিয়ন্ত্রণ কার্যকারিতার জন্য দায়িত্ব টিভি অ্যাপ্লিকেশন, টিভি ইনপুট ম্যানেজার পরিষেবা, টিভি সরবরাহকারী এবং টিভি ইনপুটগুলির মধ্যে ভাগ করা হয়।
পিতামাতার নিয়ন্ত্রণ বাধ্যতামূলক, এবং সিটিএস যাচাইকারী দ্বারা আচ্ছাদিত।
বেশ কয়েকটি দেশ টিভি ইনপুটগুলি টিভি কনটেন্ট্রেটিং এপিআইয়ের মাধ্যমে ব্যবহার করতে পারে এমন রেটিং সিস্টেমগুলি সংজ্ঞায়িত করেছে। অতিরিক্তভাবে, টিভি ইনপুটগুলি তাদের নিজস্ব কাস্টম রেটিং সিস্টেমগুলি সিটিএস ভেরিফায়ার পরীক্ষার দ্বারা প্রদর্শিত হিসাবে নিবন্ধিত করতে পারে, যা একটি 'জাল' রেটিং প্রবর্তন করে। যেসব দেশে একটি স্ট্যান্ডার্ড রেটিং সিস্টেম বিদ্যমান, ডিভাইস নির্মাতারা টিভি ইনপুট ফ্রেমওয়ার্ক প্যারেন্টাল কন্ট্রোলকে তাদের অন্তর্ভুক্ত করতে পারে এমন অন্য কোনও প্রক্রিয়াগুলির সাথে একত্রিত করতে উত্সাহিত করা হয়।
টিভি প্রদানকারী
প্রতিটি চ্যানেল সারিটিতে একটি COLUMN_LOCKED
ফিল্ড রয়েছে যা নির্দিষ্ট চ্যানেলগুলি কোনও পিন কোড প্রবেশ না করে দেখার থেকে লক করতে ব্যবহৃত হয়। প্রোগ্রাম ফিল্ড COLUMN_CONTENT_RATING
প্রদর্শনের উদ্দেশ্যে এবং এটি পিতামাতার নিয়ন্ত্রণ প্রয়োগ করতে ব্যবহৃত হয় না।
টিভি ইনপুট ম্যানেজার
টিভি ইনপুট ম্যানেজার প্রতিটি অবরুদ্ধ TvContentRating
সঞ্চয় করে এবং প্রদত্ত রেটিং সহ সামগ্রী অবরুদ্ধ করা উচিত কিনা তা পরামর্শ দেওয়ার জন্য isRatingBlocked()
এর প্রতিক্রিয়া জানায়।
টিভি ইনপুট
টিভি ইনপুটটি টিভি ইনপুট ম্যানেজারে isRatingBlocked()
কল করে বর্তমান বিষয়বস্তু অবরুদ্ধ করা উচিত কিনা তা যাচাই করে যখন প্রদর্শিত সামগ্রীর রেটিং পরিবর্তন হয়েছে (প্রোগ্রাম বা চ্যানেল পরিবর্তনে), বা পিতামাতার নিয়ন্ত্রণ সেটিংস পরিবর্তন হয়েছে ( ACTION_BLOCKED_RATINGS_CHANGED
এবং ACTION_PARENTAL_CONTROLS_ENABLED_CHANGED
)। যদি সামগ্রীটি অবরুদ্ধ করা উচিত, টিভি ইনপুটটি অডিও এবং ভিডিওকে অক্ষম করে এবং টিভি অ্যাপ্লিকেশনটিকে অবহিত করে যে বর্তমান সামগ্রীটি notifyContentBlocked(TvContentRating)
কল করে অবরুদ্ধ করা হয়েছে। যদি সামগ্রীটি অবরুদ্ধ না করা উচিত, তবে টিভি ইনপুট অডিও এবং ভিডিও সক্ষম করে এবং টিভি অ্যাপ্লিকেশনটিকে অবহিত করে বর্তমান সামগ্রীটি notifyContentAllowed()
কল করে অনুমোদিত বিষয়বস্তু অনুমোদিত।
টিভি অ্যাপ
প্যারেন্টাল কন্ট্রোল এপিআইগুলিকে সম্মান জানাতে এবং তাই একটি সামঞ্জস্যপূর্ণ প্ল্যাটফর্ম তৈরি করতে, সিস্টেম টিভি অ্যাপ্লিকেশনটিকে নির্দিষ্ট অ্যাপ্লিকেশন দ্বারা নিবন্ধিত কোনও কাস্টম রেটিং সহ পিতামাতার নিয়ন্ত্রণ পরিচালনা করার জন্য ব্যবহারকারীদের জন্য একটি উপায় সরবরাহ করা দরকার।
টিভি অ্যাপ্লিকেশনটি একটি পিন কোড ইউআই দেখায় যখন এটি কোনও টিভি ইনপুট দ্বারা অবহিত করা হয় যে বর্তমান সামগ্রীটি অবরুদ্ধ রয়েছে বা যখন ব্যবহারকারী কোনও অবরুদ্ধ চ্যানেল দেখার চেষ্টা করে।
টিভি অ্যাপটি সরাসরি পিতামাতার নিয়ন্ত্রণ সেটিংস সঞ্চয় করে না। যখন ব্যবহারকারী পিতামাতার নিয়ন্ত্রণ সেটিংস পরিবর্তন করে, প্রতিটি অবরুদ্ধ TvContentRating
টিভি ইনপুট ম্যানেজার দ্বারা সংরক্ষণ করা হয় এবং ব্লক করা চ্যানেলগুলি টিভি সরবরাহকারী দ্বারা সংরক্ষণ করা হয়।
পিতামাতার নিয়ন্ত্রণ সেটিংস পরিবর্তন করার জন্য টিভি অ্যাপটিকে android.permission.MODIFY_PARENTAL_CONTROLS
।
ডিভাইস নির্মাতারা উত্সাহিত করা হয়:
- সামঞ্জস্যতা প্রয়োজনীয়তার একটি প্রদর্শনের জন্য রেফারেন্স লাইভ টিভি অ্যাপ্লিকেশনটির বিপরীতে সিটিএস যাচাইকারী প্যারেন্টাল কন্ট্রোল টেস্টটি অনুশীলন করুন।
- তাদের নিজস্ব টিভি অ্যাপের জন্য রেফারেন্স হিসাবে লাইভ টিভি অ্যাপ্লিকেশনটি ব্যবহার করুন: বিশেষত কন্টেন্ট্রেটিংস ম্যানেজার এবং রেটিং সিস্টেমসফ্র্যাগমেন্ট উত্স এবং তারা কীভাবে কাস্টম রেটিংগুলি পরিচালনা করে তা দেখুন।
এইচডিএমআই-সিইসি
এইচডিএমআই-সিইসি একটি ডিভাইসকে অন্য ডিভাইসকে নিয়ন্ত্রণ করার অনুমতি দেয়, যার ফলে একটি হোম থিয়েটারে একাধিক সরঞ্জাম নিয়ন্ত্রণ করতে একক দূরবর্তী সক্ষম করে। এটি অ্যান্ড্রয়েড টিভি দ্বারা স্পিড সেটআপ করতে এবং কেন্দ্রীয় টিভি অ্যাপের মাধ্যমে বিভিন্ন টিভি ইনপুটগুলির উপর দূরবর্তী নিয়ন্ত্রণের অনুমতি দেওয়ার জন্য ব্যবহৃত হয়। উদাহরণস্বরূপ, এটি ইনপুটগুলি, পাওয়ার আপ বা ডাউন ডিভাইসগুলি এবং আরও অনেক কিছু স্যুইচ করতে পারে।
অ্যান্ড্রয়েড টিআইএফ এইচডিএমআই-সিইসিকে এইচডিএমআই নিয়ন্ত্রণ পরিষেবা হিসাবে প্রয়োগ করে যাতে ডিভাইস নির্মাতাদের কেবল নিম্ন-স্তরের ড্রাইভারগুলি বিকাশ করা প্রয়োজন যা লাইটওয়েট অ্যান্ড্রয়েড টিভি হালের সাথে যোগাযোগ করে, আরও জটিল ব্যবসায়িক যুক্তি এড়িয়ে যায়। একটি স্ট্যান্ডার্ড বাস্তবায়ন প্রদানের ক্ষেত্রে, অ্যান্ড্রয়েড খণ্ডিত বাস্তবায়ন এবং নির্বাচনী বৈশিষ্ট্য সমর্থন হ্রাস করে সামঞ্জস্যতা সমস্যাগুলি হ্রাস করার চেষ্টা করে। এইচডিএমআই নিয়ন্ত্রণ পরিষেবা ইনপুট এবং শক্তি সহ বিদ্যমান অ্যান্ড্রয়েড পরিষেবাগুলি ব্যবহার করে।
এর অর্থ বিদ্যমান এইচডিএমআই-সিইসি বাস্তবায়নগুলি অ্যান্ড্রয়েড টিআইএফের সাথে আন্তঃসংযোগের জন্য নতুন করে ডিজাইন করা দরকার। আমরা প্রস্তাব দিচ্ছি যে হার্ডওয়্যার প্ল্যাটফর্মটিতে সিইসি পাওয়ার অন এবং অন্যান্য কমান্ডগুলি পাওয়ার জন্য একটি মাইক্রোপ্রসেসর রয়েছে।

- সিইসি বাসটি অন্য কোনও উত্সে স্যুইচ করতে বর্তমানে সক্রিয় উত্স থেকে একটি কমান্ড গ্রহণ করে।
- ড্রাইভার এইচডিএমআই-সিইসি হালের কাছে কমান্ডটি পাস করে।
- এইচএএল সমস্ত
ActiveSourceChangeListeners
অবহিত করে। - এইচডিএমআই নিয়ন্ত্রণ পরিষেবাটিকে
ActiveSourceChangeListener
মাধ্যমে উত্স পরিবর্তনের বিষয়ে অবহিত করা হয়। - টিভি ইনপুট ম্যানেজার পরিষেবা উত্সটি স্যুইচ করার জন্য টিভি অ্যাপ্লিকেশনটির জন্য একটি উদ্দেশ্য তৈরি করে।
- টিভি অ্যাপ্লিকেশনটি তারপরে টিভি ইনপুটটিতে স্যুইচ করা হওয়ার জন্য একটি টিভি ইনপুট ম্যানেজার সেশন তৈরি করে এবং সেই সেশনে
setMain
কল করে। - টিভি ইনপুট ম্যানেজার সেশন এইচডিএমআই টিভি ইনপুটটিতে এই তথ্যটি পাস করে।
- এইচডিএমআই টিভি ইনপুট সাইডব্যান্ড পৃষ্ঠ সেট করার জন্য অনুরোধ করে।
- টিভি ইনপুট ম্যানেজার পরিষেবাটি যখন পৃষ্ঠটি সেট করা থাকে তখন এইচডিএমআই নিয়ন্ত্রণ পরিষেবায় ফিরে একটি সম্পর্কিত রাউটিং কন্ট্রোল কমান্ড উত্পন্ন করে।
টিভি ইন্টিগ্রেশন গাইডলাইন
সম্প্রচার অ্যাপ্লিকেশন
যেহেতু প্রতিটি দেশে সম্প্রচার-নির্দিষ্ট প্রয়োজনীয়তা রয়েছে (এমএইচইজি, টেলিটেক্সট, এইচবিবিটিভি এবং আরও অনেক কিছু), নির্মাতারা সম্প্রচার অ্যাপ্লিকেশনটির জন্য তাদের নিজস্ব সমাধান সরবরাহ করবেন বলে আশা করা হচ্ছে, উদাহরণস্বরূপ:
- এমএইচইজি: নেটিভ স্ট্যাক
- টেলিটেক্সট: নেটিভ স্ট্যাক
- এইচবিবিটিভি: ভিডাব্লুডির সফ্টওয়্যার থেকে এইচবিবিটিভি সমাধান
অ্যান্ড্রয়েড এল রিলিজে, অ্যান্ড্রয়েড টিভি আশা করে যে ডিভাইস নির্মাতারা আঞ্চলিক টিভি স্ট্যাকগুলির জন্য সিস্টেম ইন্টিগ্রেটার বা অ্যান্ড্রয়েড সমাধানগুলি ব্যবহার করবে, টিভি সফ্টওয়্যার স্ট্যাকগুলিতে পৃষ্ঠটি পাস করবে বা উত্তরাধিকার স্ট্যাকগুলির সাথে যোগাযোগের জন্য প্রয়োজনীয় কী কোডটি পাস করবে।
ব্রডকাস্ট অ্যাপ্লিকেশন এবং টিভি অ্যাপ্লিকেশন কীভাবে ইন্টারঅ্যাক্ট করে তা এখানে:
- টিভি অ্যাপটি ফোকাসে রয়েছে, সমস্ত কীগুলি গ্রহণ করে।
- টিভি অ্যাপ্লিকেশন টিভি ইনপুট ডিভাইসে কীগুলি (যেমন লাল বোতাম) পাস করে।
- টিভি ইনপুট ডিভাইস অভ্যন্তরীণভাবে লিগ্যাসি টিভি স্ট্যাকের সাথে সংহত করে।
- একটি অ্যাক্টিভেশন কীকোড (যেমন লাল বোতাম) গ্রহণের সময়, টিভি ইনপুট ডিভাইস সম্প্রচার অ্যাপ্লিকেশনগুলিকে সক্রিয় করে।
- একটি সম্প্রচার অ্যাপ্লিকেশন টিভি অ্যাপ্লিকেশনটিতে ফোকাস নেয় এবং ব্যবহারকারীর ক্রিয়া পরিচালনা করে।
ভয়েস অনুসন্ধান/সুপারিশের জন্য, সম্প্রচার অ্যাপ্লিকেশনটি ভয়েস অনুসন্ধানের জন্য অ্যাপ্লিকেশন অনুসন্ধানকে সমর্থন করতে পারে।