ফোরগ্রাউন্ড পরিষেবাতে পরিবর্তন

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

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

অ্যান্ড্রয়েড ১৬ (এপিআই লেভেল ৩৬)

নিম্নলিখিত পরিবর্তনগুলি সেইসব অ্যাপের ক্ষেত্রে প্রযোজ্য যেগুলি অ্যান্ড্রয়েড ১৬ বা তার উচ্চতর সংস্করণে চলে, সেগুলি যে এপিআই লেভেলকেই টার্গেট করুক না কেন:

  • ফোরগ্রাউন্ড সার্ভিস থেকে শুরু হওয়া ব্যাকগ্রাউন্ড জবগুলোকে এখন অবশ্যই তাদের নিজ নিজ রানটাইম কোটা মেনে চলতে হবে। এর মধ্যে JobScheduler দিয়ে সরাসরি শিডিউল করা জব, সেইসাথে WorkManager বা DownloadManager মতো অন্যান্য লাইব্রেরি দ্বারা তৈরি জবও অন্তর্ভুক্ত।

    ব্যবহারকারীর কোনো কার্যকলাপের প্রতিক্রিয়ায় ডেটা স্থানান্তর করতে, একটি ব্যবহারকারী-প্রবর্তিত ডেটা স্থানান্তর জব ব্যবহার করার কথা বিবেচনা করুন। এই জবগুলো সাধারণ জব কোটার আওতামুক্ত।

অ্যান্ড্রয়েড ১৫ (এপিআই লেভেল ৩৫)

যেসব অ্যাপ এপিআই লেভেল ৩৫ বা তার বেশি টার্গেট করে, সেগুলোর ক্ষেত্রে নিম্নলিখিত শর্তাবলী প্রযোজ্য:

অ্যান্ড্রয়েড ১৪ (এপিআই লেভেল ৩৪)

যেসব অ্যাপ এপিআই লেভেল ৩৪ বা তার চেয়ে উচ্চতর লেভেলকে টার্গেট করে, সেগুলোর ক্ষেত্রে নিম্নলিখিত শর্তাবলী প্রযোজ্য:

  • আপনাকে অবশ্যই সমস্ত ফোরগ্রাউন্ড সার্ভিস এবং তাদের সার্ভিস টাইপ ঘোষণা করতে হবে।
  • ফোরগ্রাউন্ড সার্ভিসটি যে ধরনের কাজ করবে, তার জন্য অ্যাপগুলোকে অবশ্যই উপযুক্ত পারমিশন টাইপের জন্য অনুরোধ করতে হবে। প্রতিটি ফোরগ্রাউন্ড সার্ভিস টাইপের একটি সংশ্লিষ্ট পারমিশন টাইপ থাকে। উদাহরণস্বরূপ, যদি কোনো অ্যাপ ক্যামেরা ব্যবহার করে এমন একটি ফোরগ্রাউন্ড সার্ভিস চালু করে, তবে আপনাকে অবশ্যই FOREGROUND_SERVICE এবং FOREGROUND_SERVICE_CAMERA উভয় পারমিশনের জন্য অনুরোধ করতে হবে। যদি কোনো অ্যাপ এপিআই লেভেল ৩৪ বা তার বেশি টার্গেট করে এবং উপযুক্ত নির্দিষ্ট পারমিশনের জন্য অনুরোধ না করে, তবে সিস্টেম একটি SecurityException থ্রো করে।

অ্যান্ড্রয়েড ১২ (এপিআই লেভেল ৩১)

যেসব অ্যাপ এপিআই লেভেল ৩১ বা তার চেয়ে উচ্চতর লেভেলকে টার্গেট করে, সেগুলোর ক্ষেত্রে নিম্নলিখিত শর্তাবলী প্রযোজ্য:

অ্যান্ড্রয়েড ১১ (এপিআই লেভেল ৩০)

যেসব অ্যাপ এপিআই লেভেল ৩০ বা তার বেশি টার্গেট করে, সেগুলোর ক্ষেত্রে নিম্নলিখিত শর্তাবলী প্রযোজ্য:

  • যদি কোনো অ্যাপের ফোরগ্রাউন্ড সার্ভিসগুলো ক্যামেরা বা মাইক্রোফোন ব্যবহার করে, তবে অ্যাপটিকে অবশ্যই যথাক্রমে camera বা microphone সার্ভিস টাইপ দিয়ে সার্ভিসটি ঘোষণা করতে হবে।

অ্যান্ড্রয়েড ১০ (এপিআই লেভেল ২৯)

যেসব অ্যাপ এপিআই লেভেল ২৯ বা তার চেয়ে উচ্চতর লেভেলকে টার্গেট করে, সেগুলোর ক্ষেত্রে নিম্নলিখিত শর্তাবলী প্রযোজ্য:

  • যদি কোনো অ্যাপের ফোরগ্রাউন্ড সার্ভিসগুলো অবস্থানের তথ্য ব্যবহার করে, তাহলে অ্যাপটিকে অবশ্যই location সার্ভিস টাইপসহ সার্ভিসটি ঘোষণা করতে হবে।

অ্যান্ড্রয়েড ৯ (এপিআই লেভেল ২৮)

অ্যান্ড্রয়েড ৯-এ FOREGROUND_SERVICE পারমিশনটি চালু করা হয়েছে। অ্যান্ড্রয়েড ৯-এ চালিত যে অ্যাপগুলো ফোরগ্রাউন্ড সার্ভিস ব্যবহার করে, সেগুলোর এই পারমিশনটি থাকা আবশ্যক।

যদি এপিআই লেভেল ২৮ বা তার বেশি টার্গেট করা কোনো অ্যাপ FOREGROUND_SERVICE পারমিশন না চেয়ে একটি ফোরগ্রাউন্ড সার্ভিস তৈরি করার চেষ্টা করে, তাহলে সিস্টেম একটি SecurityException থ্রো করে।