<রিসিভার>

বাক্য গঠন:
<receiver android:directBootAware=["true" | "false"]
          android:enabled=["true" | "false"]
          android:exported=["true" | "false"]
          android:icon="drawable resource"
          android:label="string resource"
          android:name="string"
          android:permission="string"
          android:process="string" >
    ...
</receiver>
মধ্যে:
<application>
থাকতে পারে:
<intent-filter>
<meta-data>
বর্ণনা:
একটি ব্রডকাস্ট রিসিভার, একটি BroadcastReceiver সাবক্লাস, অ্যাপ্লিকেশানের একটি উপাদান হিসাবে ঘোষণা করে৷ ব্রডকাস্ট রিসিভারগুলি অ্যাপ্লিকেশনগুলিকে ইন্টেন্টগুলি গ্রহণ করতে সক্ষম করে যা সিস্টেম বা অন্যান্য অ্যাপ্লিকেশন দ্বারা সম্প্রচারিত হয়, এমনকি অ্যাপ্লিকেশনের অন্যান্য উপাদানগুলি চলমান না থাকলেও৷

একটি ব্রডকাস্ট রিসিভার সিস্টেমে পরিচিত করার দুটি উপায় আছে। একটি হল এই উপাদানটির সাথে ম্যানিফেস্ট ফাইলে এটি ঘোষণা করা। অন্যটি হল কোডে গতিশীলভাবে রিসিভার তৈরি করা এবং এটিকে Context.registerReceiver() পদ্ধতি বা এর ওভারলোডেড সংস্করণগুলির একটি দিয়ে নিবন্ধন করা।

কিভাবে গতিশীলভাবে রিসিভার তৈরি করতে হয় সে সম্পর্কে আরও তথ্যের জন্য, BroadcastReceiver ক্লাসের বিবরণ দেখুন।

যদি এই রিসিভারটি অ-সিস্টেম সম্প্রচার পরিচালনা করে, তাহলে android:exported এর জন্য একটি মান নির্দিষ্ট করুন। এই মানটিকে "true" তে সেট করুন যদি আপনি চান যে আপনার রিসিভার অন্য অ্যাপ্লিকেশন থেকে সম্প্রচার গ্রহণ করতে সক্ষম হোক বা "false" যদি আপনি চান যে আপনার রিসিভার আপনার নিজের অ্যাপ থেকে সম্প্রচার গ্রহণ করতে সক্ষম হোক।

আপনি যদি ইতিমধ্যে এটি ঘোষণা করে থাকেন তবে আপনাকে android:permission বৈশিষ্ট্যটি সরাতে হবে না।

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

গুণাবলী:
android:directBootAware

ব্রডকাস্ট রিসিভার ডাইরেক্ট-বুট সচেতন কিনা, অর্থাৎ, ব্যবহারকারী ডিভাইসটি আনলক করার আগে এটি চলতে পারে কিনা।

দ্রষ্টব্য: ডাইরেক্ট বুট চলাকালীন, আপনার অ্যাপ্লিকেশনের একটি সম্প্রচার রিসিভার শুধুমাত্র ডিভাইস সুরক্ষিত স্টোরেজে সংরক্ষিত ডেটা অ্যাক্সেস করতে পারে।

ডিফল্ট মান "false"

android:enabled
ব্রডকাস্ট রিসিভার সিস্টেম দ্বারা তাত্ক্ষণিক করা যাবে কিনা। এটা হতে পারে "true" এবং না হলে "false" । প্রচলিত মূল্য "true"

<application> উপাদানটির নিজস্ব enabled বৈশিষ্ট্য রয়েছে যা সম্প্রচার রিসিভার সহ সমস্ত অ্যাপ্লিকেশন উপাদানগুলিতে প্রযোজ্য। সম্প্রচার রিসিভার সক্ষম করার জন্য <application> এবং <receiver> বৈশিষ্ট্য উভয়ই "true" হতে হবে। যদি উভয়টি "false" হয়, তবে এটি অক্ষম এবং তাৎক্ষণিক করা যাবে না।

android:exported
ব্রডকাস্ট রিসিভার তার অ্যাপ্লিকেশনের বাইরে অ-সিস্টেম উত্স থেকে বার্তা গ্রহণ করতে পারে কিনা। এটা করতে পারলে "true" এবং না হলে "false" । যদি "false" , তবে সম্প্রচার গ্রহণকারী শুধুমাত্র যে বার্তাগুলি গ্রহণ করে তা হল সিস্টেম, একই অ্যাপ্লিকেশনের উপাদান, বা একই ব্যবহারকারী আইডি সহ অ্যাপ্লিকেশনগুলি দ্বারা প্রেরিত৷

অনির্দিষ্ট থাকলে, ডিফল্ট মান নির্ভর করে সম্প্রচার রিসিভারে উদ্দেশ্য ফিল্টার আছে কিনা তার উপর। যদি রিসিভারে অন্তত একটি অভিপ্রায় ফিল্টার থাকে, তাহলে ডিফল্ট মানটি "true" । অন্যথায়, ডিফল্ট মান "false"

এই বৈশিষ্ট্যটি একটি সম্প্রচার রিসিভারের বাহ্যিক এক্সপোজার সীমাবদ্ধ করার একমাত্র উপায় নয়। আপনি এটিকে বার্তা পাঠাতে পারে এমন বাহ্যিক সত্তাগুলিকে সীমাবদ্ধ করার জন্য একটি অনুমতিও ব্যবহার করতে পারেন৷ permission বৈশিষ্ট্য দেখুন.

android:icon
ব্রডকাস্ট রিসিভারের প্রতিনিধিত্বকারী একটি আইকন। এই বৈশিষ্ট্যটি চিত্র সংজ্ঞা ধারণকারী একটি অঙ্কনযোগ্য সম্পদের একটি রেফারেন্স হিসাবে সেট করা হয়েছে। যদি এটি সেট করা না থাকে, তবে সম্পূর্ণরূপে অ্যাপ্লিকেশনটির জন্য নির্দিষ্ট আইকনটি পরিবর্তে ব্যবহার করা হয়৷ <application> উপাদানের icon বৈশিষ্ট্য দেখুন।

ব্রডকাস্ট রিসিভারের আইকন, এখানে সেট করা হোক বা <application> উপাদান দ্বারা, সমস্ত রিসিভারের অভিপ্রায় ফিল্টারের জন্য ডিফল্ট আইকন। <intent-filter> > এলিমেন্টের icon অ্যাট্রিবিউট দেখুন।

android:label
ব্রডকাস্ট রিসিভারের জন্য একটি ব্যবহারকারী-পাঠযোগ্য লেবেল। যদি এই অ্যাট্রিবিউট সেট করা না থাকে, তাহলে সম্পূর্ণরূপে অ্যাপ্লিকেশানের জন্য সেট করা লেবেল পরিবর্তে ব্যবহার করা হয়। <application> উপাদানের label বৈশিষ্ট্য দেখুন।

ব্রডকাস্ট রিসিভারের লেবেল, এখানে সেট করা হোক বা <application> উপাদান দ্বারা, সমস্ত রিসিভারের অভিপ্রায় ফিল্টারের জন্যও ডিফল্ট লেবেল। <intent-filter> এলিমেন্টের label অ্যাট্রিবিউট দেখুন।

লেবেলটি একটি স্ট্রিং রিসোর্সের রেফারেন্স হিসাবে সেট করা হয়েছে, যাতে এটি ব্যবহারকারী ইন্টারফেসের অন্যান্য স্ট্রিংগুলির মতো স্থানীয়করণ করা যায়। যাইহোক, আপনি অ্যাপ্লিকেশনটি বিকাশ করার সময় সুবিধা হিসাবে, এটি একটি কাঁচা স্ট্রিং হিসাবেও সেট করা যেতে পারে।

android:name
ব্রডকাস্ট রিসিভার, BroadcastReceiver একটি সাবক্লাস প্রয়োগ করে এমন ক্লাসের নাম। এটি একটি সম্পূর্ণ যোগ্য শ্রেণীর নাম, যেমন "com.example.project.ReportReceiver" । যাইহোক, শর্টহ্যান্ড হিসাবে, যদি নামের প্রথম অক্ষরটি একটি পিরিয়ড হয়, উদাহরণস্বরূপ, ".ReportReceiver" , এটি <manifest> উপাদানে নির্দিষ্ট করা প্যাকেজের নামের সাথে যুক্ত করা হয়।

একবার আপনি আপনার অ্যাপ্লিকেশন প্রকাশ করলে, এই নামটি পরিবর্তন করবেন না , যদি না আপনি android:exported ="false" সেট করেন।

কোন ডিফল্ট নেই. নাম উল্লেখ করতে হবে।

android:permission
একটি অনুমতির নাম যা সম্প্রচারকারীদের ব্রডকাস্ট রিসিভারকে একটি বার্তা পাঠানোর জন্য প্রয়োজন৷ এই অ্যাট্রিবিউট সেট না থাকলে, <application> এলিমেন্টের permission অ্যাট্রিবিউট দ্বারা সেট করা অনুমতি সম্প্রচার রিসিভারের জন্য প্রযোজ্য। যদি কোনো বৈশিষ্ট্যই সেট করা না থাকে, তাহলে রিসিভার অনুমতি দ্বারা সুরক্ষিত নয়।

অনুমতি সম্পর্কে আরও তথ্যের জন্য, অ্যাপ ম্যানিফেস্ট ওভারভিউ এবং নিরাপত্তা টিপসের অনুমতি বিভাগটি দেখুন।

android:process
ব্রডকাস্ট রিসিভার চালানোর প্রক্রিয়ার নাম। সাধারণত, একটি অ্যাপ্লিকেশনের সমস্ত উপাদান অ্যাপ্লিকেশনের জন্য তৈরি ডিফল্ট প্রক্রিয়ায় চলে। এটি অ্যাপ্লিকেশন প্যাকেজ হিসাবে একই নাম আছে.

<application> উপাদানের process বৈশিষ্ট্য সমস্ত উপাদানের জন্য একটি ভিন্ন ডিফল্ট সেট করতে পারে। কিন্তু প্রতিটি কম্পোনেন্ট তার নিজস্ব process অ্যাট্রিবিউট দিয়ে ডিফল্টটিকে ওভাররাইড করতে পারে, আপনাকে একাধিক প্রক্রিয়ায় আপনার অ্যাপ্লিকেশন ছড়িয়ে দিতে দেয়।

যদি এই অ্যাট্রিবিউটের জন্য বরাদ্দ করা নামটি একটি কোলন ( : ) দিয়ে শুরু হয়, একটি নতুন প্রক্রিয়া, অ্যাপ্লিকেশনটির জন্য ব্যক্তিগত, যখন এটি প্রয়োজন হয় তখন তৈরি করা হয় এবং সম্প্রচার রিসিভার সেই প্রক্রিয়ায় চলে৷

যদি প্রক্রিয়ার নামটি একটি ছোট হাতের অক্ষর দিয়ে শুরু হয়, তবে রিসিভার সেই নামের একটি বিশ্বব্যাপী প্রক্রিয়ায় চলে, তবে এটি করার অনুমতি থাকলে। এটি বিভিন্ন অ্যাপ্লিকেশনের উপাদানগুলিকে একটি প্রক্রিয়া ভাগ করতে দেয়, সম্পদের ব্যবহার হ্রাস করে।

প্রবর্তিত:
API স্তর 1