<পরিষেবা>

সিনট্যাক্স:
<service android:description="string resource"
         android:directBootAware=["true" | "false"]
         android:enabled=["true" | "false"]
         android:exported=["true" | "false"]
         android:foregroundServiceType=["camera" | "connectedDevice" |
                                        "dataSync" | "health" | "location" |
                                        "mediaPlayback" | "mediaProjection" |
                                        "microphone" | "phoneCall" |
                                        "remoteMessaging" | "shortService" |
                                        "specialUse" | "systemExempted"]
         android:icon="drawable resource"
         android:isolatedProcess=["true" | "false"]
         android:label="string resource"
         android:name="string"
         android:permission="string"
         android:process="string" >
    ...
</service>
এর মধ্যে রয়েছে:
<application>
থাকতে পারে:
<intent-filter>
<meta-data>
বর্ণনা:
অ্যাপ্লিকেশনের উপাদানগুলির মধ্যে একটি হিসাবে একটি পরিষেবা, একটি Service সাবক্লাস ঘোষণা করে৷ ক্রিয়াকলাপের বিপরীতে, পরিষেবাগুলিতে একটি ভিজ্যুয়াল ব্যবহারকারী ইন্টারফেসের অভাব রয়েছে। এগুলি দীর্ঘ-চলমান ব্যাকগ্রাউন্ড অপারেশন বা একটি সমৃদ্ধ যোগাযোগ API যা অন্যান্য অ্যাপ্লিকেশন দ্বারা কল করা যেতে পারে প্রয়োগ করতে ব্যবহৃত হয়।

সমস্ত পরিষেবা অবশ্যই ম্যানিফেস্ট ফাইলে <service> উপাদান দ্বারা প্রতিনিধিত্ব করা উচিত। সেখানে ঘোষিত নয় এমন যেকোনও সিস্টেম দ্বারা দেখা যায় না এবং কখনও চালানো হয় না।

দ্রষ্টব্য: Android 8.0 (API স্তর 26) এবং উচ্চতর সংস্করণে, আপনার অ্যাপটি ব্যাকগ্রাউন্ডে চলাকালীন কী করতে পারে তা সিস্টেমটি সীমিত করে। আরও তথ্যের জন্য, নির্দেশিকাগুলি দেখুন যা ব্যাকগ্রাউন্ড এক্সিকিউশন সীমা এবং ব্যাকগ্রাউন্ড লোকেশন সীমা নিয়ে আলোচনা করে।

গুণাবলী:
android:description
একটি ব্যবহারকারী-পঠনযোগ্য স্ট্রিং যা পরিষেবাটি বর্ণনা করে। বর্ণনাটি একটি স্ট্রিং রিসোর্সের রেফারেন্স হিসাবে সেট করা হয়েছে, যাতে এটি ব্যবহারকারী ইন্টারফেসের অন্যান্য স্ট্রিংগুলির মতো স্থানীয়করণ করা যায়।
android:directBootAware

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

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

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

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

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

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

ডিফল্ট মান পরিষেবাটিতে উদ্দেশ্য ফিল্টার রয়েছে কিনা তার উপর নির্ভর করে। কোনো ফিল্টারের অনুপস্থিতির অর্থ হল এটি শুধুমাত্র তার সঠিক শ্রেণির নাম উল্লেখ করে আহ্বান করা যেতে পারে। এটি বোঝায় যে পরিষেবাটি শুধুমাত্র অ্যাপ্লিকেশন-অভ্যন্তরীণ ব্যবহারের জন্য উদ্দিষ্ট, যেহেতু অন্যরা ক্লাসের নাম জানে না। সুতরাং, এই ক্ষেত্রে, ডিফল্ট মান হল "false" । অন্য দিকে, অন্তত একটি ফিল্টারের উপস্থিতি বোঝায় যে পরিষেবাটি বাহ্যিক ব্যবহারের উদ্দেশ্যে, তাই ডিফল্ট মান "true"

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

android:foregroundServiceType

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

আপনি একটি নির্দিষ্ট পরিষেবাতে একাধিক ফোরগ্রাউন্ড পরিষেবার ধরন বরাদ্দ করতে পারেন।

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

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

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

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

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

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

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

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

android:permission
একটি অনুমতির নাম যা একটি সত্তাকে পরিষেবাটি চালু করতে বা এটির সাথে আবদ্ধ করার জন্য প্রয়োজন৷ startService() , bindService() , বা stopService() এর একজন কলারকে এই অনুমতি না দেওয়া হলে, পদ্ধতিটি কাজ করে না এবং Intent অবজেক্টটি পরিষেবাতে বিতরণ করা হয় না।

এই অ্যাট্রিবিউট সেট না থাকলে, <application> উপাদানের permission অ্যাট্রিবিউট দ্বারা সেট করা অনুমতি পরিষেবাতে প্রযোজ্য। যদি কোনও বৈশিষ্ট্যই সেট করা না থাকে, তবে পরিষেবাটি অনুমতি দ্বারা সুরক্ষিত নয়।

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

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

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

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

এছাড়াও দেখুন:
<application>
<activity>
প্রবর্তিত:
API স্তর 1