Android 14 (API স্তর 34) দিয়ে শুরু করে, আপনাকে অবশ্যই প্রতিটি অগ্রভাগের পরিষেবার জন্য একটি উপযুক্ত পরিষেবার ধরণ ঘোষণা করতে হবে। তার মানে আপনাকে অবশ্যই আপনার অ্যাপ ম্যানিফেস্টে পরিষেবার ধরণটি ঘোষণা করতে হবে এবং সেই ধরনের জন্য উপযুক্ত ফোরগ্রাউন্ড পরিষেবা অনুমতির অনুরোধ করতে হবে ( FOREGROUND_SERVICE
অনুমতির অনুরোধ ছাড়াও)। অধিকন্তু, অগ্রভাগের পরিষেবার প্রকারের উপর নির্ভর করে, আপনি পরিষেবাটি চালু করার আগে আপনাকে রানটাইম অনুমতির অনুরোধ করতে হতে পারে।
ক্যামেরা
android:foregroundServiceType
অধীনে ম্যানিফেস্টে ঘোষণা করার জন্য ফোরগ্রাউন্ড পরিষেবার ধরন-
camera
- আপনার ম্যানিফেস্টে ঘোষণা করার অনুমতি
-
FOREGROUND_SERVICE_CAMERA
-
startForeground()
এ পাস করার জন্য ধ্রুবক -
FOREGROUND_SERVICE_TYPE_CAMERA
- রানটাইম পূর্বশর্ত
অনুরোধ করুন এবং
CAMERA
রানটাইম অনুমতি মঞ্জুর করুন৷- বর্ণনা
পটভূমি থেকে ক্যামেরা অ্যাক্সেস করা চালিয়ে যান, যেমন ভিডিও চ্যাট অ্যাপ যা মাল্টিটাস্কিংয়ের অনুমতি দেয়।
-
android:foregroundServiceType
অধীনে ম্যানিফেস্টে ঘোষণা করার জন্য ফোরগ্রাউন্ড পরিষেবার ধরন -
camera
- আপনার ম্যানিফেস্টে ঘোষণা করার অনুমতি
-
FOREGROUND_SERVICE_CAMERA
-
startForeground()
এ পাস করার জন্য ধ্রুবক -
FOREGROUND_SERVICE_TYPE_CAMERA
- রানটাইম পূর্বশর্ত
অনুরোধ করুন এবং
CAMERA
রানটাইম অনুমতি মঞ্জুর করুন৷- বর্ণনা
পটভূমি থেকে ক্যামেরা অ্যাক্সেস করা চালিয়ে যান, যেমন ভিডিও চ্যাট অ্যাপ যা মাল্টিটাস্কিংয়ের অনুমতি দেয়।
-
android:foregroundServiceType
অধীনে ম্যানিফেস্টে ঘোষণা করার জন্য ফোরগ্রাউন্ড পরিষেবার ধরন -
camera
- আপনার ম্যানিফেস্টে ঘোষণা করার অনুমতি
-
FOREGROUND_SERVICE_CAMERA
-
startForeground()
এ পাস করার জন্য ধ্রুবক -
FOREGROUND_SERVICE_TYPE_CAMERA
- রানটাইম পূর্বশর্ত
অনুরোধ করুন এবং
CAMERA
রানটাইম অনুমতি মঞ্জুর করুন৷- বর্ণনা
পটভূমি থেকে ক্যামেরা অ্যাক্সেস করা চালিয়ে যান, যেমন ভিডিও চ্যাট অ্যাপ যা মাল্টিটাস্কিংয়ের অনুমতি দেয়।
সংযুক্ত ডিভাইস
- ফোরগ্রাউন্ড সার্ভিস টাইপ যা ম্যানিফেস্টের অধীনে ঘোষণা করতে হবে
-
android:foregroundServiceType
-
connectedDevice
- আপনার ম্যানিফেস্টে ঘোষণা করার অনুমতি
-
FOREGROUND_SERVICE_CONNECTED_DEVICE
-
startForeground()
এ পাস করার জন্য ধ্রুবক -
FOREGROUND_SERVICE_TYPE_CONNECTED_DEVICE
- রানটাইম পূর্বশর্ত
নিম্নলিখিত শর্তগুলির মধ্যে অন্তত একটি সত্য হতে হবে:
আপনার ম্যানিফেস্টে নিম্নলিখিত অনুমতিগুলির মধ্যে অন্তত একটি ঘোষণা করুন:
অনুরোধ করুন এবং নিম্নলিখিত রানটাইম অনুমতিগুলির মধ্যে অন্তত একটি মঞ্জুর করুন:
- বর্ণনা
ব্লুটুথ, এনএফসি, আইআর, ইউএসবি বা নেটওয়ার্ক সংযোগের প্রয়োজন বাহ্যিক ডিভাইসগুলির সাথে মিথস্ক্রিয়া।
- বিকল্প
যদি আপনার অ্যাপটিকে একটি বাহ্যিক ডিভাইসে ক্রমাগত ডেটা স্থানান্তর করতে হয়, তবে পরিবর্তে সহচর ডিভাইস ম্যানেজার ব্যবহার করার কথা বিবেচনা করুন। সহচর ডিভাইসের পরিসরে থাকাকালীন আপনার অ্যাপটি চলমান থাকতে সাহায্য করার জন্য সহচর ডিভাইস উপস্থিতি API ব্যবহার করুন৷
আপনার অ্যাপটিকে ব্লুটুথ ডিভাইসের জন্য স্ক্যান করার প্রয়োজন হলে, পরিবর্তে ব্লুটুথ স্ক্যান API ব্যবহার করার কথা বিবেচনা করুন।
ডেটা সিঙ্ক
- ফোরগ্রাউন্ড পরিষেবার ধরন যা ম্যানিফেস্টের অধীনে ঘোষণা করতে হবে
-
android:foregroundServiceType
-
dataSync
- আপনার ম্যানিফেস্টে ঘোষণা করার অনুমতি
-
FOREGROUND_SERVICE_DATA_SYNC
-
startForeground()
এ পাস করার জন্য ধ্রুবক -
FOREGROUND_SERVICE_TYPE_DATA_SYNC
- রানটাইম পূর্বশর্ত
- কোনোটিই নয়
- বর্ণনা
ডেটা ট্রান্সফার অপারেশন, যেমন নিম্নলিখিত:
- ডেটা আপলোড বা ডাউনলোড
- ব্যাকআপ এবং পুনরুদ্ধার অপারেশন
- আমদানি বা রপ্তানি কার্যক্রম
- ডেটা আনুন
- স্থানীয় ফাইল প্রক্রিয়াকরণ
- একটি নেটওয়ার্কের মাধ্যমে একটি ডিভাইস এবং ক্লাউডের মধ্যে ডেটা স্থানান্তর করুন
- বিকল্প
বিস্তারিত তথ্যের জন্য ডেটা সিঙ্ক ফোরগ্রাউন্ড পরিষেবাগুলির বিকল্পগুলি দেখুন৷
- ফোরগ্রাউন্ড পরিষেবার ধরন যা ম্যানিফেস্টের অধীনে ঘোষণা করতে হবে
-
android:foregroundServiceType
-
dataSync
- আপনার ম্যানিফেস্টে ঘোষণা করার অনুমতি
-
FOREGROUND_SERVICE_DATA_SYNC
-
startForeground()
এ পাস করার জন্য ধ্রুবক -
FOREGROUND_SERVICE_TYPE_DATA_SYNC
- রানটাইম পূর্বশর্ত
- কোনোটিই নয়
- বর্ণনা
ডেটা ট্রান্সফার অপারেশন, যেমন নিম্নলিখিত:
- ডেটা আপলোড বা ডাউনলোড
- ব্যাকআপ এবং পুনরুদ্ধার অপারেশন
- আমদানি বা রপ্তানি কার্যক্রম
- ডেটা আনুন
- স্থানীয় ফাইল প্রক্রিয়াকরণ
- একটি নেটওয়ার্কের মাধ্যমে একটি ডিভাইস এবং ক্লাউডের মধ্যে ডেটা স্থানান্তর করুন
- বিকল্প
বিস্তারিত তথ্যের জন্য ডেটা সিঙ্ক ফোরগ্রাউন্ড পরিষেবাগুলির বিকল্পগুলি দেখুন৷
- ফোরগ্রাউন্ড পরিষেবার ধরন যা ম্যানিফেস্টের অধীনে ঘোষণা করতে হবে
-
android:foregroundServiceType
-
dataSync
- আপনার ম্যানিফেস্টে ঘোষণা করার অনুমতি
-
FOREGROUND_SERVICE_DATA_SYNC
-
startForeground()
এ পাস করার জন্য ধ্রুবক -
FOREGROUND_SERVICE_TYPE_DATA_SYNC
- রানটাইম পূর্বশর্ত
- কোনোটিই নয়
- বর্ণনা
ডেটা ট্রান্সফার অপারেশন, যেমন নিম্নলিখিত:
- ডেটা আপলোড বা ডাউনলোড
- ব্যাকআপ এবং পুনরুদ্ধার অপারেশন
- আমদানি বা রপ্তানি কার্যক্রম
- ডেটা আনুন
- স্থানীয় ফাইল প্রক্রিয়াকরণ
- একটি নেটওয়ার্কের মাধ্যমে একটি ডিভাইস এবং ক্লাউডের মধ্যে ডেটা স্থানান্তর করুন
- বিকল্প
বিস্তারিত তথ্যের জন্য ডেটা সিঙ্ক ফোরগ্রাউন্ড পরিষেবাগুলির বিকল্পগুলি দেখুন৷
স্বাস্থ্য
- ফোরগ্রাউন্ড সার্ভিস টাইপ যা ম্যানিফেস্টের অধীনে ঘোষণা করতে হবে
-
android:foregroundServiceType
-
health
- আপনার ম্যানিফেস্টে ঘোষণা করার অনুমতি
-
FOREGROUND_SERVICE_HEALTH
-
startForeground()
এ পাস করার জন্য ধ্রুবক -
FOREGROUND_SERVICE_TYPE_HEALTH
- রানটাইম পূর্বশর্ত
নিম্নলিখিত শর্তগুলির মধ্যে অন্তত একটি সত্য হতে হবে:
আপনার ম্যানিফেস্টে
HIGH_SAMPLING_RATE_SENSORS
অনুমতি ঘোষণা করুন৷অনুরোধ করুন এবং নিম্নলিখিত রানটাইম অনুমতিগুলির মধ্যে অন্তত একটি মঞ্জুর করুন:
- বর্ণনা
ব্যায়াম ট্র্যাকারের মতো ফিটনেস বিভাগে অ্যাপগুলিকে সমর্থন করার জন্য যেকোন দীর্ঘস্থায়ী ব্যবহারের ক্ষেত্রে।
অবস্থান
- ফোরগ্রাউন্ড সার্ভিস টাইপ যা ম্যানিফেস্টের অধীনে ঘোষণা করতে হবে
-
android:foregroundServiceType
-
location
- আপনার ম্যানিফেস্টে ঘোষণা করার অনুমতি
-
FOREGROUND_SERVICE_LOCATION
-
startForeground()
এ পাস করার জন্য ধ্রুবক -
FOREGROUND_SERVICE_TYPE_LOCATION
- রানটাইম পূর্বশর্ত
ব্যবহারকারীর অবশ্যই লোকেশন পরিষেবা সক্রিয় থাকতে হবে এবং অ্যাপটিকে অবশ্যই নিম্নলিখিত রানটাইম অনুমতিগুলির মধ্যে অন্তত একটি মঞ্জুর করতে হবে:
- বর্ণনা
দীর্ঘস্থায়ী ব্যবহারের ক্ষেত্রে যেখানে অবস্থান অ্যাক্সেসের প্রয়োজন হয়, যেমন নেভিগেশন এবং অবস্থান ভাগ করে নেওয়া।
- বিকল্প
ব্যবহারকারী নির্দিষ্ট অবস্থানে পৌঁছালে আপনার অ্যাপটিকে ট্রিগার করার প্রয়োজন হলে, পরিবর্তে জিওফেন্স API ব্যবহার করার কথা বিবেচনা করুন।
মিডিয়া
- ফোরগ্রাউন্ড সার্ভিস টাইপ যা ম্যানিফেস্টের অধীনে ঘোষণা করতে হবে
-
android:foregroundServiceType
-
mediaPlayback
- আপনার ম্যানিফেস্টে ঘোষণা করার অনুমতি
-
FOREGROUND_SERVICE_MEDIA_PLAYBACK
-
startForeground()
এ পাস করার জন্য ধ্রুবক -
FOREGROUND_SERVICE_TYPE_MEDIA_PLAYBACK
- রানটাইম পূর্বশর্ত
- কোনোটিই নয়
- বর্ণনা
পটভূমি থেকে অডিও বা ভিডিও প্লেব্যাক চালিয়ে যান। অ্যান্ড্রয়েড টিভিতে ডিজিটাল ভিডিও রেকর্ডিং (ডিভিআর) কার্যকারিতা সমর্থন করে।
- বিকল্প
আপনি যদি পিকচার-ইন-পিকচার ভিডিও দেখান, তাহলে পিকচার-ইন-পিকচার মোড ব্যবহার করুন।
- ফোরগ্রাউন্ড সার্ভিস টাইপ যা ম্যানিফেস্টের অধীনে ঘোষণা করতে হবে
-
android:foregroundServiceType
-
mediaPlayback
- আপনার ম্যানিফেস্টে ঘোষণা করার অনুমতি
-
FOREGROUND_SERVICE_MEDIA_PLAYBACK
-
startForeground()
এ পাস করার জন্য ধ্রুবক -
FOREGROUND_SERVICE_TYPE_MEDIA_PLAYBACK
- রানটাইম পূর্বশর্ত
- কোনোটিই নয়
- বর্ণনা
পটভূমি থেকে অডিও বা ভিডিও প্লেব্যাক চালিয়ে যান। অ্যান্ড্রয়েড টিভিতে ডিজিটাল ভিডিও রেকর্ডিং (ডিভিআর) কার্যকারিতা সমর্থন করে।
- বিকল্প
আপনি যদি পিকচার-ইন-পিকচার ভিডিও দেখান, তাহলে পিকচার-ইন-পিকচার মোড ব্যবহার করুন।
- ফোরগ্রাউন্ড সার্ভিস টাইপ যা ম্যানিফেস্টের অধীনে ঘোষণা করতে হবে
-
android:foregroundServiceType
-
mediaPlayback
- আপনার ম্যানিফেস্টে ঘোষণা করার অনুমতি
-
FOREGROUND_SERVICE_MEDIA_PLAYBACK
-
startForeground()
এ পাস করার জন্য ধ্রুবক -
FOREGROUND_SERVICE_TYPE_MEDIA_PLAYBACK
- রানটাইম পূর্বশর্ত
- কোনোটিই নয়
- বর্ণনা
পটভূমি থেকে অডিও বা ভিডিও প্লেব্যাক চালিয়ে যান। অ্যান্ড্রয়েড টিভিতে ডিজিটাল ভিডিও রেকর্ডিং (ডিভিআর) কার্যকারিতা সমর্থন করে।
- বিকল্প
আপনি যদি পিকচার-ইন-পিকচার ভিডিও দেখান, তাহলে পিকচার-ইন-পিকচার মোড ব্যবহার করুন।
মিডিয়া প্রক্রিয়াকরণ
- ফোরগ্রাউন্ড পরিষেবার ধরন যা ম্যানিফেস্টের অধীনে ঘোষণা করতে হবে
-
android:foregroundServiceType
-
mediaProcessing
- আপনার ম্যানিফেস্টে ঘোষণা করার অনুমতি
-
FOREGROUND_SERVICE_MEDIA_PROCESSING
-
startForeground()
এ পাস করার জন্য ধ্রুবক -
FOREGROUND_SERVICE_TYPE_MEDIA_PROCESSING
- রানটাইম পূর্বশর্ত
- কোনোটিই নয়
- বর্ণনা
মিডিয়া সম্পদে সময়-সাপেক্ষ ক্রিয়াকলাপ সম্পাদনের জন্য পরিষেবা, যেমন মিডিয়াকে বিভিন্ন ফর্ম্যাটে রূপান্তর করা। সিস্টেমটি এই পরিষেবাটিকে সীমিত সময় চালানোর অনুমতি দেয়; সাধারণ পরিস্থিতিতে, এই সময়সীমা প্রতি 24টির মধ্যে 6 ঘন্টা হবে। (এই সীমাটি একটি অ্যাপের
mediaProcessing
ফোরগ্রাউন্ড পরিষেবাগুলির সমস্ত দ্বারা ভাগ করা হয়নিম্নলিখিত পরিস্থিতিতে আপনার অ্যাপটিকে ম্যানুয়ালি মিডিয়া প্রক্রিয়াকরণ পরিষেবা বন্ধ করা উচিত:
- যখন ট্রান্সকোডিং অপারেশন শেষ হয় বা ব্যর্থতার অবস্থায় পৌঁছায়, পরিষেবাটিকে সম্পূর্ণরূপে বন্ধ করতে
Service.stopForeground()
এবংService.stopSelf()
কল করুন৷
- যখন ট্রান্সকোডিং অপারেশন শেষ হয় বা ব্যর্থতার অবস্থায় পৌঁছায়, পরিষেবাটিকে সম্পূর্ণরূপে বন্ধ করতে
যদি টাইমআউট পিরিয়ড পৌঁছে যায়, সিস্টেম পরিষেবাটির
Service.onTimeout(int, int)
পদ্ধতিতে কল করে। এই সময়ে, পরিষেবাটিতেService.stopSelf()
কল করার জন্য কয়েক সেকেন্ড সময় আছে। যদি পরিষেবাটিService.stopSelf()
কে কল না করে, তাহলে এই ত্রুটি বার্তার সাথে একটি ANR ঘটবে: " <fgs_type> এর একটি অগ্রভাগের পরিষেবা তার সময়সীমার মধ্যে থামেনি: <component_name> "।দ্রষ্টব্য :
Service.onTimeout(int, int)
Android 14 বা তার নিচের সংস্করণে উপলব্ধ নয়। সেই সংস্করণগুলি চলমান ডিভাইসগুলিতে, যদি কোনও মিডিয়া প্রক্রিয়াকরণ পরিষেবা সময়সীমার মধ্যে পৌঁছে যায়, সিস্টেমটি অবিলম্বে অ্যাপটিকে ক্যাশ করে। এই কারণে, আপনার অ্যাপের সময় শেষ হওয়ার বিজ্ঞপ্তি পাওয়ার জন্য অপেক্ষা করা উচিত নয়। পরিবর্তে, এটি ফোরগ্রাউন্ড পরিষেবাটি বন্ধ করা উচিত বা যত তাড়াতাড়ি উপযুক্ত হিসাবে এটি একটি ব্যাকগ্রাউন্ড পরিষেবাতে পরিবর্তন করা উচিত।
মিডিয়া অভিক্ষেপ
- ফোরগ্রাউন্ড সার্ভিস টাইপ যা ম্যানিফেস্টের অধীনে ঘোষণা করতে হবে
-
android:foregroundServiceType
-
mediaProjection
- আপনার ম্যানিফেস্টে ঘোষণা করার অনুমতি
-
FOREGROUND_SERVICE_MEDIA_PROJECTION
-
startForeground()
এ পাস করার জন্য ধ্রুবক -
FOREGROUND_SERVICE_TYPE_MEDIA_PROJECTION
- রানটাইম পূর্বশর্ত
ফোরগ্রাউন্ড পরিষেবা শুরু করার আগে
createScreenCaptureIntent()
পদ্ধতিতে কল করুন। এটি করা ব্যবহারকারীকে একটি অনুমতি বিজ্ঞপ্তি দেখায়; আপনি পরিষেবা তৈরি করার আগে ব্যবহারকারীকে অবশ্যই অনুমতি দিতে হবে।আপনি ফোরগ্রাউন্ড পরিষেবা তৈরি করার পরে, আপনি
MediaProjectionManager.getMediaProjection()
কল করতে পারেন।- বর্ণনা
MediaProjection
APIs ব্যবহার করে নন-প্রাথমিক ডিসপ্লে বা বাহ্যিক ডিভাইসে প্রজেক্ট কন্টেন্ট। এই বিষয়বস্তু একচেটিয়াভাবে মিডিয়া বিষয়বস্তু হতে হবে না.- বিকল্প
অন্য ডিভাইসে মিডিয়া স্ট্রিম করতে, Google Cast SDK ব্যবহার করুন৷
- ফোরগ্রাউন্ড পরিষেবার ধরন যা ম্যানিফেস্টের অধীনে ঘোষণা করতে হবে
-
android:foregroundServiceType
-
mediaProjection
- আপনার ম্যানিফেস্টে ঘোষণা করার অনুমতি
-
FOREGROUND_SERVICE_MEDIA_PROJECTION
-
startForeground()
এ পাস করার জন্য ধ্রুবক -
FOREGROUND_SERVICE_TYPE_MEDIA_PROJECTION
- রানটাইম পূর্বশর্ত
ফোরগ্রাউন্ড পরিষেবা শুরু করার আগে
createScreenCaptureIntent()
পদ্ধতিতে কল করুন। এটি করা ব্যবহারকারীকে একটি অনুমতি বিজ্ঞপ্তি দেখায়; আপনি পরিষেবা তৈরি করার আগে ব্যবহারকারীকে অবশ্যই অনুমতি দিতে হবে।আপনি ফোরগ্রাউন্ড পরিষেবা তৈরি করার পরে, আপনি
MediaProjectionManager.getMediaProjection()
কল করতে পারেন।- বর্ণনা
MediaProjection
APIs ব্যবহার করে নন-প্রাথমিক ডিসপ্লে বা বাহ্যিক ডিভাইসে প্রজেক্ট কন্টেন্ট। এই বিষয়বস্তু একচেটিয়াভাবে মিডিয়া বিষয়বস্তু হতে হবে না.- বিকল্প
অন্য ডিভাইসে মিডিয়া স্ট্রিম করতে, Google Cast SDK ব্যবহার করুন৷
- ফোরগ্রাউন্ড সার্ভিস টাইপ যা ম্যানিফেস্টের অধীনে ঘোষণা করতে হবে
-
android:foregroundServiceType
-
mediaProjection
- আপনার ম্যানিফেস্টে ঘোষণা করার অনুমতি
-
FOREGROUND_SERVICE_MEDIA_PROJECTION
-
startForeground()
এ পাস করার জন্য ধ্রুবক -
FOREGROUND_SERVICE_TYPE_MEDIA_PROJECTION
- রানটাইম পূর্বশর্ত
ফোরগ্রাউন্ড পরিষেবা শুরু করার আগে
createScreenCaptureIntent()
পদ্ধতিতে কল করুন। এটি করা ব্যবহারকারীকে একটি অনুমতি বিজ্ঞপ্তি দেখায়; আপনি পরিষেবা তৈরি করার আগে ব্যবহারকারীকে অবশ্যই অনুমতি দিতে হবে।আপনি ফোরগ্রাউন্ড পরিষেবা তৈরি করার পরে, আপনি
MediaProjectionManager.getMediaProjection()
কল করতে পারেন।- বর্ণনা
MediaProjection
APIs ব্যবহার করে নন-প্রাথমিক ডিসপ্লে বা বাহ্যিক ডিভাইসে প্রজেক্ট কন্টেন্ট। এই বিষয়বস্তু একচেটিয়াভাবে মিডিয়া বিষয়বস্তু হতে হবে না.- বিকল্প
অন্য ডিভাইসে মিডিয়া স্ট্রিম করতে, Google Cast SDK ব্যবহার করুন৷
মাইক্রোফোন
- ফোরগ্রাউন্ড পরিষেবার ধরন যা ম্যানিফেস্টের অধীনে ঘোষণা করতে হবে
-
android:foregroundServiceType
-
microphone
- আপনার ম্যানিফেস্টে ঘোষণা করার অনুমতি
-
FOREGROUND_SERVICE_MICROPHONE
-
startForeground()
এ পাস করার জন্য ধ্রুবক -
FOREGROUND_SERVICE_TYPE_MICROPHONE
- রানটাইম পূর্বশর্ত
অনুরোধ করুন এবং
RECORD_AUDIO
রানটাইম অনুমতি মঞ্জুর করুন৷- বর্ণনা
পটভূমি থেকে মাইক্রোফোন ক্যাপচার চালিয়ে যান, যেমন ভয়েস রেকর্ডার বা যোগাযোগ অ্যাপ।
- ফোরগ্রাউন্ড পরিষেবার ধরন যা ম্যানিফেস্টের অধীনে ঘোষণা করতে হবে
-
android:foregroundServiceType
-
microphone
- আপনার ম্যানিফেস্টে ঘোষণা করার অনুমতি
-
FOREGROUND_SERVICE_MICROPHONE
-
startForeground()
এ পাস করার জন্য ধ্রুবক -
FOREGROUND_SERVICE_TYPE_MICROPHONE
- রানটাইম পূর্বশর্ত
অনুরোধ করুন এবং
RECORD_AUDIO
রানটাইম অনুমতি মঞ্জুর করুন৷- বর্ণনা
পটভূমি থেকে মাইক্রোফোন ক্যাপচার চালিয়ে যান, যেমন ভয়েস রেকর্ডার বা যোগাযোগ অ্যাপ।
- ফোরগ্রাউন্ড পরিষেবার ধরন যা ম্যানিফেস্টের অধীনে ঘোষণা করতে হবে
-
android:foregroundServiceType
-
microphone
- আপনার ম্যানিফেস্টে ঘোষণা করার অনুমতি
-
FOREGROUND_SERVICE_MICROPHONE
-
startForeground()
এ পাস করার জন্য ধ্রুবক -
FOREGROUND_SERVICE_TYPE_MICROPHONE
- রানটাইম পূর্বশর্ত
অনুরোধ করুন এবং
RECORD_AUDIO
রানটাইম অনুমতি মঞ্জুর করুন৷- বর্ণনা
পটভূমি থেকে মাইক্রোফোন ক্যাপচার চালিয়ে যান, যেমন ভয়েস রেকর্ডার বা যোগাযোগ অ্যাপ।
ফোন কল
- ফোরগ্রাউন্ড সার্ভিস টাইপ যা ম্যানিফেস্টের অধীনে ঘোষণা করতে হবে
-
android:foregroundServiceType
-
phoneCall
- আপনার ম্যানিফেস্টে ঘোষণা করার অনুমতি
-
FOREGROUND_SERVICE_PHONE_CALL
-
startForeground()
এ পাস করার জন্য ধ্রুবক -
FOREGROUND_SERVICE_TYPE_PHONE_CALL
- রানটাইম পূর্বশর্ত
এই শর্তগুলির মধ্যে অন্তত একটি সত্য হতে হবে:
- অ্যাপ তার ম্যানিফেস্ট ফাইলে
MANAGE_OWN_CALLS
অনুমতি ঘোষণা করেছে।
- অ্যাপ তার ম্যানিফেস্ট ফাইলে
- অ্যাপ হল
ROLE_DIALER
ভূমিকার মাধ্যমে ডিফল্ট ডায়ালার অ্যাপ।
- অ্যাপ হল
- বর্ণনা
ConnectionService
API ব্যবহার করে একটি চলমান কল চালিয়ে যান।- বিকল্প
আপনার যদি ফোন, ভিডিও বা ভিওআইপি কল করার প্রয়োজন হয়, তাহলে
android.telecom
লাইব্রেরি ব্যবহার করার কথা বিবেচনা করুন।কল স্ক্রিন করতে
CallScreeningService
ব্যবহার করার কথা বিবেচনা করুন।
- ফোরগ্রাউন্ড সার্ভিস টাইপ যা ম্যানিফেস্টের অধীনে ঘোষণা করতে হবে
-
android:foregroundServiceType
-
phoneCall
- আপনার ম্যানিফেস্টে ঘোষণা করার অনুমতি
-
FOREGROUND_SERVICE_PHONE_CALL
-
startForeground()
এ পাস করার জন্য ধ্রুবক -
FOREGROUND_SERVICE_TYPE_PHONE_CALL
- রানটাইম পূর্বশর্ত
এই শর্তগুলির মধ্যে অন্তত একটি সত্য হতে হবে:
- অ্যাপ তার ম্যানিফেস্ট ফাইলে
MANAGE_OWN_CALLS
অনুমতি ঘোষণা করেছে।
- অ্যাপ তার ম্যানিফেস্ট ফাইলে
- অ্যাপ হল
ROLE_DIALER
ভূমিকার মাধ্যমে ডিফল্ট ডায়ালার অ্যাপ।
- অ্যাপ হল
- বর্ণনা
ConnectionService
API ব্যবহার করে একটি চলমান কল চালিয়ে যান।- বিকল্প
আপনার যদি ফোন, ভিডিও বা ভিওআইপি কল করার প্রয়োজন হয়, তাহলে
android.telecom
লাইব্রেরি ব্যবহার করার কথা বিবেচনা করুন।কল স্ক্রিন করতে
CallScreeningService
ব্যবহার করার কথা বিবেচনা করুন।
রিমোট মেসেজিং
- ফোরগ্রাউন্ড সার্ভিস টাইপ যা ম্যানিফেস্টের অধীনে ঘোষণা করতে হবে
-
android:foregroundServiceType
-
remoteMessaging
- আপনার ম্যানিফেস্টে ঘোষণা করার অনুমতি
-
FOREGROUND_SERVICE_REMOTE_MESSAGING
-
startForeground()
এ পাস করার জন্য ধ্রুবক -
FOREGROUND_SERVICE_TYPE_REMOTE_MESSAGING
- রানটাইম পূর্বশর্ত
- কোনোটিই নয়
- বর্ণনা
- এক ডিভাইস থেকে অন্য ডিভাইসে পাঠ্য বার্তা স্থানান্তর করুন। কোনো ব্যবহারকারীর মেসেজিং কাজের ধারাবাহিকতায় সহায়তা করে যখন তারা ডিভাইসগুলি পরিবর্তন করে।
সংক্ষিপ্ত পরিষেবা
- ফোরগ্রাউন্ড সার্ভিস টাইপ যা ম্যানিফেস্টের অধীনে ঘোষণা করতে হবে
-
android:foregroundServiceType
-
shortService
- আপনার ম্যানিফেস্টে ঘোষণা করার অনুমতি
- কোনোটিই নয়
-
startForeground()
এ পাস করার জন্য ধ্রুবক -
FOREGROUND_SERVICE_TYPE_SHORT_SERVICE
- রানটাইম পূর্বশর্ত
- কোনোটিই নয়
- বর্ণনা
জটিল কাজ দ্রুত শেষ করুন যা বাধা বা স্থগিত করা যাবে না।
এই ধরনের কিছু অনন্য বৈশিষ্ট্য আছে:
- শুধুমাত্র অল্প সময়ের জন্য চলতে পারে (প্রায় 3 মিনিট)।
- স্টিকি ফোরগ্রাউন্ড পরিষেবাগুলির জন্য কোনও সমর্থন নেই।
- অন্যান্য ফোরগ্রাউন্ড পরিষেবাগুলি শুরু করতে পারে না৷
- টাইপ-নির্দিষ্ট অনুমতির প্রয়োজন হয় না, যদিও এটির জন্য এখনও
FOREGROUND_SERVICE
অনুমতি প্রয়োজন৷ - একটি
shortService
শুধুমাত্র অন্য পরিষেবার প্রকারে পরিবর্তন করতে পারে যদি অ্যাপটি বর্তমানে একটি নতুন ফোরগ্রাউন্ড পরিষেবা শুরু করার যোগ্য হয়৷ - একটি ফোরগ্রাউন্ড পরিষেবা যে কোনও সময় তার ধরনকে
shortService
পরিবর্তন করতে পারে, যে সময়ে টাইমআউট পিরিয়ড শুরু হয়।
Service.startForeground()
বলা হওয়ার মুহুর্ত থেকে শর্টসার্ভিসের সময়সীমা শুরু হয়। সময় শেষ হওয়ার আগে অ্যাপটিService.stopSelf()
বাService.stopForeground()
কল করবে বলে আশা করা হচ্ছে। অন্যথায়, নতুনService.onTimeout()
কল করা হবে, অ্যাপগুলিকে তাদের পরিষেবা বন্ধ করতেstopSelf()
বাstopForeground()
কল করার একটি সংক্ষিপ্ত সুযোগ দেয়৷Service.onTimeout()
কল করার অল্প সময়ের পরে, অ্যাপটি একটি ক্যাশড অবস্থায় প্রবেশ করে এবং ব্যবহারকারী অ্যাপের সাথে সক্রিয়ভাবে ইন্টারঅ্যাক্ট না করা পর্যন্ত এটিকে আর অগ্রভাগে বিবেচনা করা হয় না। অ্যাপটি ক্যাশ করার কিছুক্ষণ পরে এবং পরিষেবা বন্ধ না হলে, অ্যাপটি একটি ANR পায়। ANR বার্তাটিFOREGROUND_SERVICE_TYPE_SHORT_SERVICE
উল্লেখ করেছে। এই কারণগুলির জন্য,Service.onTimeout()
কলব্যাক বাস্তবায়ন করা সর্বোত্তম অনুশীলন হিসাবে বিবেচিত হয়৷Service.onTimeout()
কলব্যাক Android 13 এবং তার নিচের সংস্করণে বিদ্যমান নেই। যদি একই পরিষেবা এই জাতীয় ডিভাইসগুলিতে চলে, তবে এটি একটি টাইমআউট পায় না এবং এটি ANRও করে না। নিশ্চিত করুন যে আপনার পরিষেবাটি প্রক্রিয়াকরণের কাজ শেষ করার সাথে সাথেই বন্ধ হয়ে যায়, এমনকি যদি এটি এখনওService.onTimeout()
কলব্যাক না পায়।এটা মনে রাখা গুরুত্বপূর্ণ যে যদি
shortService
টাইমআউটকে সম্মান না করা হয়, তাহলে অ্যাপটি ANR করবে এমনকি এটির অন্যান্য বৈধ অগ্রভাগের পরিষেবা বা অন্যান্য অ্যাপ লাইফসাইকেল প্রক্রিয়া চলমান থাকলেও।যদি কোনও অ্যাপ ব্যবহারকারীর কাছে দৃশ্যমান হয় বা ফোরগ্রাউন্ড পরিষেবাগুলিকে ব্যাকগ্রাউন্ড থেকে শুরু করার অনুমতি দেয় এমন ছাড়গুলির মধ্যে একটিকে সন্তুষ্ট করে, তাহলে
FOREGROUND_SERVICE_TYPE_SHORT_SERVICE
প্যারামিটারের সাথে আবারService.StartForeground()
কল করলে সময়সীমা আরও 3 মিনিট বৃদ্ধি করে৷ অ্যাপটি ব্যবহারকারীর কাছে দৃশ্যমান না হলে এবং ছাড়গুলির একটিকে সন্তুষ্ট না করলে, ধরন নির্বিশেষে অন্য ফোরগ্রাউন্ড পরিষেবা শুরু করার যে কোনও প্রচেষ্টা একটিForegroundServiceStartNotAllowedException
সৃষ্টি করে৷যদি কোনও ব্যবহারকারী আপনার অ্যাপের জন্য ব্যাটারি অপ্টিমাইজেশান অক্ষম করে, তবে এটি এখনও শর্টসার্ভিস FGS-এর টাইমআউট দ্বারা প্রভাবিত হয়।
আপনি যদি একটি ফোরগ্রাউন্ড পরিষেবা শুরু করেন যাতে
shortService
টাইপ এবং অন্য ফোরগ্রাউন্ড পরিষেবার ধরন অন্তর্ভুক্ত থাকে, তবে সিস্টেমটিshortService
টাইপ ঘোষণা উপেক্ষা করে। যাইহোক, পরিষেবাটিকে এখনও অন্যান্য ঘোষিত প্রকারের পূর্বশর্তগুলি মেনে চলতে হবে। আরও তথ্যের জন্য, ফোরগ্রাউন্ড পরিষেবার ডকুমেন্টেশন দেখুন।
বিশেষ ব্যবহার
- ফোরগ্রাউন্ড সার্ভিস টাইপ যা ম্যানিফেস্টের অধীনে ঘোষণা করতে হবে
-
android:foregroundServiceType
-
specialUse
- আপনার ম্যানিফেস্টে ঘোষণা করার অনুমতি
-
FOREGROUND_SERVICE_SPECIAL_USE
-
startForeground()
এ পাস করার জন্য ধ্রুবক -
FOREGROUND_SERVICE_TYPE_SPECIAL_USE
- রানটাইম পূর্বশর্ত
- কোনোটিই নয়
- বর্ণনা
যেকোন বৈধ ফোরগ্রাউন্ড পরিষেবা ব্যবহারের ক্ষেত্রে কভার করে যা অন্যান্য ফোরগ্রাউন্ড পরিষেবার ধরন দ্বারা কভার করা হয় না।
FOREGROUND_SERVICE_TYPE_SPECIAL_USE
ফোরগ্রাউন্ড পরিষেবার ধরন ঘোষণা করার পাশাপাশি, বিকাশকারীদের ম্যানিফেস্টে ব্যবহারের কেসগুলি ঘোষণা করা উচিত৷ এটি করার জন্য, তারা<service>
উপাদানের মধ্যে<property>
উপাদানটি নির্দিষ্ট করে। আপনি যখন Google Play Console-এ আপনার অ্যাপ জমা দেন তখন এই মানগুলি এবং সংশ্লিষ্ট ব্যবহারের ক্ষেত্রে পর্যালোচনা করা হয়। আপনি যে ব্যবহারের ক্ষেত্রেগুলি প্রদান করেন তা ফ্রি-ফর্ম, এবং আপনাকে পর্যাপ্ত তথ্য প্রদানের বিষয়টি নিশ্চিত করতে হবে যাতে পর্যালোচক দেখতে পান কেন আপনাকেspecialUse
টাইপ ব্যবহার করতে হবে।<service android:name="fooService" android:foregroundServiceType="specialUse"> <property android:name="android.app.PROPERTY_SPECIAL_USE_FGS_SUBTYPE" android:value="explanation_for_special_use"/> </service>
সিস্টেম অব্যাহতি
- ফোরগ্রাউন্ড সার্ভিস টাইপ যা ম্যানিফেস্টের অধীনে ঘোষণা করতে হবে
-
android:foregroundServiceType
-
systemExempted
- আপনার ম্যানিফেস্টে ঘোষণা করার অনুমতি
-
FOREGROUND_SERVICE_SYSTEM_EXEMPTED
-
startForeground()
এ পাস করার জন্য ধ্রুবক -
FOREGROUND_SERVICE_TYPE_SYSTEM_EXEMPTED
- রানটাইম পূর্বশর্ত
- কোনোটিই নয়
- বর্ণনা
ফোরগ্রাউন্ড পরিষেবাগুলি ব্যবহার করা চালিয়ে যাওয়ার জন্য সিস্টেম অ্যাপ্লিকেশন এবং নির্দিষ্ট সিস্টেম ইন্টিগ্রেশনের জন্য সংরক্ষিত।
এই ধরনের ব্যবহার করার জন্য, একটি অ্যাপকে অবশ্যই নিম্নলিখিত মানদণ্ডগুলির মধ্যে একটি পূরণ করতে হবে:
- ডিভাইস ডেমো মোড অবস্থায় আছে
- অ্যাপটি একটি ডিভাইসের মালিক
- অ্যাপ একজন প্রোফাইলার মালিক
-
ROLE_EMERGENCY
ভূমিকা আছে এমন নিরাপত্তা অ্যাপ - ডিভাইস অ্যাডমিন অ্যাপস
-
SCHEDULE_EXACT_ALARM
বাUSE_EXACT_ALARM
অনুমতি ধারণ করা অ্যাপ ভিপিএন অ্যাপস ( সেটিংস > নেটওয়ার্ক এবং ইন্টারনেট > ভিপিএন ব্যবহার করে কনফিগার করা হয়েছে)
অন্যথায়, এই ধরনের ঘোষণা করার ফলে সিস্টেম একটি
ForegroundServiceTypeNotAllowedException
নিক্ষেপ করে।
ফোরগ্রাউন্ড পরিষেবার প্রকারগুলি ব্যবহার করার জন্য Google Play নীতি প্রয়োগ
যদি আপনার অ্যাপটি Android 14 বা তার উচ্চতরকে টার্গেট করে, তাহলে আপনাকে Play Console-এর অ্যাপ কন্টেন্ট পৃষ্ঠায় ( নীতি > অ্যাপ সামগ্রী ) আপনার অ্যাপের ফোরগ্রাউন্ড পরিষেবার ধরন ঘোষণা করতে হবে। Play Console-এ আপনার ফোরগ্রাউন্ড পরিষেবার প্রকারগুলি কীভাবে ঘোষণা করবেন সে সম্পর্কে আরও তথ্যের জন্য, ফোরগ্রাউন্ড পরিষেবা এবং পূর্ণ-স্ক্রীনের অভিপ্রায়ের প্রয়োজনীয়তা বোঝা দেখুন।
, Android 14 (API স্তর 34) দিয়ে শুরু করে, আপনাকে অবশ্যই প্রতিটি অগ্রভাগের পরিষেবার জন্য একটি উপযুক্ত পরিষেবার ধরণ ঘোষণা করতে হবে। তার মানে আপনাকে অবশ্যই আপনার অ্যাপ ম্যানিফেস্টে পরিষেবার ধরণটি ঘোষণা করতে হবে এবং সেই ধরনের জন্য উপযুক্ত ফোরগ্রাউন্ড পরিষেবা অনুমতির অনুরোধ করতে হবে ( FOREGROUND_SERVICE
অনুমতির অনুরোধ ছাড়াও)। অধিকন্তু, অগ্রভাগের পরিষেবার প্রকারের উপর নির্ভর করে, আপনি পরিষেবাটি চালু করার আগে আপনাকে রানটাইম অনুমতির অনুরোধ করতে হতে পারে।
ক্যামেরা
android:foregroundServiceType
অধীনে ম্যানিফেস্টে ঘোষণা করার জন্য ফোরগ্রাউন্ড পরিষেবার ধরন-
camera
- আপনার ম্যানিফেস্টে ঘোষণা করার অনুমতি
-
FOREGROUND_SERVICE_CAMERA
-
startForeground()
এ পাস করার জন্য ধ্রুবক -
FOREGROUND_SERVICE_TYPE_CAMERA
- রানটাইম পূর্বশর্ত
অনুরোধ করুন এবং
CAMERA
রানটাইম অনুমতি মঞ্জুর করুন৷- বর্ণনা
পটভূমি থেকে ক্যামেরা অ্যাক্সেস করা চালিয়ে যান, যেমন ভিডিও চ্যাট অ্যাপ যা মাল্টিটাস্কিংয়ের অনুমতি দেয়।
-
android:foregroundServiceType
অধীনে ম্যানিফেস্টে ঘোষণা করার জন্য ফোরগ্রাউন্ড পরিষেবার ধরন -
camera
- আপনার ম্যানিফেস্টে ঘোষণা করার অনুমতি
-
FOREGROUND_SERVICE_CAMERA
-
startForeground()
এ পাস করার জন্য ধ্রুবক -
FOREGROUND_SERVICE_TYPE_CAMERA
- রানটাইম পূর্বশর্ত
অনুরোধ করুন এবং
CAMERA
রানটাইম অনুমতি মঞ্জুর করুন৷- বর্ণনা
পটভূমি থেকে ক্যামেরা অ্যাক্সেস করা চালিয়ে যান, যেমন ভিডিও চ্যাট অ্যাপ যা মাল্টিটাস্কিংয়ের অনুমতি দেয়।
-
android:foregroundServiceType
অধীনে ম্যানিফেস্টে ঘোষণা করার জন্য ফোরগ্রাউন্ড পরিষেবার ধরন -
camera
- আপনার ম্যানিফেস্টে ঘোষণা করার অনুমতি
-
FOREGROUND_SERVICE_CAMERA
-
startForeground()
এ পাস করার জন্য ধ্রুবক -
FOREGROUND_SERVICE_TYPE_CAMERA
- রানটাইম পূর্বশর্ত
অনুরোধ করুন এবং
CAMERA
রানটাইম অনুমতি মঞ্জুর করুন৷- বর্ণনা
পটভূমি থেকে ক্যামেরা অ্যাক্সেস করা চালিয়ে যান, যেমন ভিডিও চ্যাট অ্যাপ যা মাল্টিটাস্কিংয়ের অনুমতি দেয়।
সংযুক্ত ডিভাইস
- ফোরগ্রাউন্ড সার্ভিস টাইপ যা ম্যানিফেস্টের অধীনে ঘোষণা করতে হবে
-
android:foregroundServiceType
-
connectedDevice
- আপনার ম্যানিফেস্টে ঘোষণা করার অনুমতি
-
FOREGROUND_SERVICE_CONNECTED_DEVICE
-
startForeground()
এ পাস করার জন্য ধ্রুবক -
FOREGROUND_SERVICE_TYPE_CONNECTED_DEVICE
- রানটাইম পূর্বশর্ত
নিম্নলিখিত শর্তগুলির মধ্যে অন্তত একটি সত্য হতে হবে:
আপনার ম্যানিফেস্টে নিম্নলিখিত অনুমতিগুলির মধ্যে অন্তত একটি ঘোষণা করুন:
অনুরোধ করুন এবং নিম্নলিখিত রানটাইম অনুমতিগুলির মধ্যে অন্তত একটি মঞ্জুর করুন:
- বর্ণনা
ব্লুটুথ, এনএফসি, আইআর, ইউএসবি বা নেটওয়ার্ক সংযোগের প্রয়োজন বাহ্যিক ডিভাইসগুলির সাথে মিথস্ক্রিয়া।
- বিকল্প
যদি আপনার অ্যাপটিকে একটি বাহ্যিক ডিভাইসে ক্রমাগত ডেটা স্থানান্তর করতে হয়, তবে পরিবর্তে সহচর ডিভাইস ম্যানেজার ব্যবহার করার কথা বিবেচনা করুন। সহচর ডিভাইসের পরিসরে থাকাকালীন আপনার অ্যাপটি চলমান থাকতে সাহায্য করার জন্য সহচর ডিভাইস উপস্থিতি API ব্যবহার করুন৷
আপনার অ্যাপটিকে ব্লুটুথ ডিভাইসের জন্য স্ক্যান করার প্রয়োজন হলে, পরিবর্তে ব্লুটুথ স্ক্যান API ব্যবহার করার কথা বিবেচনা করুন।
ডেটা সিঙ্ক
- ফোরগ্রাউন্ড পরিষেবার ধরন যা ম্যানিফেস্টের অধীনে ঘোষণা করতে হবে
-
android:foregroundServiceType
-
dataSync
- আপনার ম্যানিফেস্টে ঘোষণা করার অনুমতি
-
FOREGROUND_SERVICE_DATA_SYNC
-
startForeground()
এ পাস করার জন্য ধ্রুবক -
FOREGROUND_SERVICE_TYPE_DATA_SYNC
- রানটাইম পূর্বশর্ত
- কোনোটিই নয়
- বর্ণনা
ডেটা ট্রান্সফার অপারেশন, যেমন নিম্নলিখিত:
- ডেটা আপলোড বা ডাউনলোড
- ব্যাকআপ এবং পুনরুদ্ধার অপারেশন
- আমদানি বা রপ্তানি কার্যক্রম
- ডেটা আনুন
- স্থানীয় ফাইল প্রক্রিয়াকরণ
- একটি নেটওয়ার্কের মাধ্যমে একটি ডিভাইস এবং ক্লাউডের মধ্যে ডেটা স্থানান্তর করুন
- বিকল্প
বিস্তারিত তথ্যের জন্য ডেটা সিঙ্ক ফোরগ্রাউন্ড পরিষেবাগুলির বিকল্পগুলি দেখুন৷
- ফোরগ্রাউন্ড পরিষেবার ধরন যা ম্যানিফেস্টের অধীনে ঘোষণা করতে হবে
-
android:foregroundServiceType
-
dataSync
- আপনার ম্যানিফেস্টে ঘোষণা করার অনুমতি
-
FOREGROUND_SERVICE_DATA_SYNC
-
startForeground()
এ পাস করার জন্য ধ্রুবক -
FOREGROUND_SERVICE_TYPE_DATA_SYNC
- রানটাইম পূর্বশর্ত
- কোনোটিই নয়
- বর্ণনা
ডেটা ট্রান্সফার অপারেশন, যেমন নিম্নলিখিত:
- ডেটা আপলোড বা ডাউনলোড
- ব্যাকআপ এবং পুনরুদ্ধার অপারেশন
- আমদানি বা রপ্তানি কার্যক্রম
- ডেটা আনুন
- স্থানীয় ফাইল প্রক্রিয়াকরণ
- একটি নেটওয়ার্কের মাধ্যমে একটি ডিভাইস এবং ক্লাউডের মধ্যে ডেটা স্থানান্তর করুন
- বিকল্প
বিস্তারিত তথ্যের জন্য ডেটা সিঙ্ক ফোরগ্রাউন্ড পরিষেবাগুলির বিকল্পগুলি দেখুন৷
- ফোরগ্রাউন্ড পরিষেবার ধরন যা ম্যানিফেস্টের অধীনে ঘোষণা করতে হবে
-
android:foregroundServiceType
-
dataSync
- আপনার ম্যানিফেস্টে ঘোষণা করার অনুমতি
-
FOREGROUND_SERVICE_DATA_SYNC
-
startForeground()
এ পাস করার জন্য ধ্রুবক -
FOREGROUND_SERVICE_TYPE_DATA_SYNC
- রানটাইম পূর্বশর্ত
- কোনোটিই নয়
- বর্ণনা
ডেটা ট্রান্সফার অপারেশন, যেমন নিম্নলিখিত:
- ডেটা আপলোড বা ডাউনলোড
- ব্যাকআপ এবং পুনরুদ্ধার অপারেশন
- আমদানি বা রপ্তানি কার্যক্রম
- ডেটা আনুন
- স্থানীয় ফাইল প্রক্রিয়াকরণ
- একটি নেটওয়ার্কের মাধ্যমে একটি ডিভাইস এবং ক্লাউডের মধ্যে ডেটা স্থানান্তর করুন
- বিকল্প
বিস্তারিত তথ্যের জন্য ডেটা সিঙ্ক ফোরগ্রাউন্ড পরিষেবাগুলির বিকল্পগুলি দেখুন৷
স্বাস্থ্য
- ফোরগ্রাউন্ড সার্ভিস টাইপ যা ম্যানিফেস্টের অধীনে ঘোষণা করতে হবে
-
android:foregroundServiceType
-
health
- আপনার ম্যানিফেস্টে ঘোষণা করার অনুমতি
-
FOREGROUND_SERVICE_HEALTH
-
startForeground()
এ পাস করার জন্য ধ্রুবক -
FOREGROUND_SERVICE_TYPE_HEALTH
- রানটাইম পূর্বশর্ত
নিম্নলিখিত শর্তগুলির মধ্যে অন্তত একটি সত্য হতে হবে:
আপনার ম্যানিফেস্টে
HIGH_SAMPLING_RATE_SENSORS
অনুমতি ঘোষণা করুন৷অনুরোধ করুন এবং নিম্নলিখিত রানটাইম অনুমতিগুলির মধ্যে অন্তত একটি মঞ্জুর করুন:
- বর্ণনা
ব্যায়াম ট্র্যাকারের মতো ফিটনেস বিভাগে অ্যাপগুলিকে সমর্থন করার জন্য যেকোন দীর্ঘস্থায়ী ব্যবহারের ক্ষেত্রে।
অবস্থান
- ফোরগ্রাউন্ড সার্ভিস টাইপ যা ম্যানিফেস্টের অধীনে ঘোষণা করতে হবে
-
android:foregroundServiceType
-
location
- আপনার ম্যানিফেস্টে ঘোষণা করার অনুমতি
-
FOREGROUND_SERVICE_LOCATION
-
startForeground()
এ পাস করার জন্য ধ্রুবক -
FOREGROUND_SERVICE_TYPE_LOCATION
- রানটাইম পূর্বশর্ত
ব্যবহারকারীর অবশ্যই লোকেশন পরিষেবা সক্রিয় থাকতে হবে এবং অ্যাপটিকে অবশ্যই নিম্নলিখিত রানটাইম অনুমতিগুলির মধ্যে অন্তত একটি মঞ্জুর করতে হবে:
- বর্ণনা
দীর্ঘস্থায়ী ব্যবহারের ক্ষেত্রে যেখানে অবস্থান অ্যাক্সেসের প্রয়োজন হয়, যেমন নেভিগেশন এবং অবস্থান ভাগ করে নেওয়া।
- বিকল্প
ব্যবহারকারী নির্দিষ্ট অবস্থানে পৌঁছালে আপনার অ্যাপটিকে ট্রিগার করার প্রয়োজন হলে, পরিবর্তে জিওফেন্স API ব্যবহার করার কথা বিবেচনা করুন।
মিডিয়া
- ফোরগ্রাউন্ড সার্ভিস টাইপ যা ম্যানিফেস্টের অধীনে ঘোষণা করতে হবে
-
android:foregroundServiceType
-
mediaPlayback
- আপনার ম্যানিফেস্টে ঘোষণা করার অনুমতি
-
FOREGROUND_SERVICE_MEDIA_PLAYBACK
-
startForeground()
এ পাস করার জন্য ধ্রুবক -
FOREGROUND_SERVICE_TYPE_MEDIA_PLAYBACK
- রানটাইম পূর্বশর্ত
- কোনোটিই নয়
- বর্ণনা
পটভূমি থেকে অডিও বা ভিডিও প্লেব্যাক চালিয়ে যান। অ্যান্ড্রয়েড টিভিতে ডিজিটাল ভিডিও রেকর্ডিং (ডিভিআর) কার্যকারিতা সমর্থন করে।
- বিকল্প
আপনি যদি পিকচার-ইন-পিকচার ভিডিও দেখান, তাহলে পিকচার-ইন-পিকচার মোড ব্যবহার করুন।
- ফোরগ্রাউন্ড সার্ভিস টাইপ যা ম্যানিফেস্টের অধীনে ঘোষণা করতে হবে
-
android:foregroundServiceType
-
mediaPlayback
- আপনার ম্যানিফেস্টে ঘোষণা করার অনুমতি
-
FOREGROUND_SERVICE_MEDIA_PLAYBACK
-
startForeground()
এ পাস করার জন্য ধ্রুবক -
FOREGROUND_SERVICE_TYPE_MEDIA_PLAYBACK
- রানটাইম পূর্বশর্ত
- কোনোটিই নয়
- বর্ণনা
পটভূমি থেকে অডিও বা ভিডিও প্লেব্যাক চালিয়ে যান। অ্যান্ড্রয়েড টিভিতে ডিজিটাল ভিডিও রেকর্ডিং (ডিভিআর) কার্যকারিতা সমর্থন করে।
- বিকল্প
আপনি যদি পিকচার-ইন-পিকচার ভিডিও দেখান, তাহলে পিকচার-ইন-পিকচার মোড ব্যবহার করুন।
- ফোরগ্রাউন্ড সার্ভিস টাইপ যা ম্যানিফেস্টের অধীনে ঘোষণা করতে হবে
-
android:foregroundServiceType
-
mediaPlayback
- আপনার ম্যানিফেস্টে ঘোষণা করার অনুমতি
-
FOREGROUND_SERVICE_MEDIA_PLAYBACK
-
startForeground()
এ পাস করার জন্য ধ্রুবক -
FOREGROUND_SERVICE_TYPE_MEDIA_PLAYBACK
- রানটাইম পূর্বশর্ত
- কোনোটিই নয়
- বর্ণনা
পটভূমি থেকে অডিও বা ভিডিও প্লেব্যাক চালিয়ে যান। অ্যান্ড্রয়েড টিভিতে ডিজিটাল ভিডিও রেকর্ডিং (ডিভিআর) কার্যকারিতা সমর্থন করে।
- বিকল্প
আপনি যদি পিকচার-ইন-পিকচার ভিডিও দেখান, তাহলে পিকচার-ইন-পিকচার মোড ব্যবহার করুন।
মিডিয়া প্রক্রিয়াকরণ
- ফোরগ্রাউন্ড পরিষেবার ধরন যা ম্যানিফেস্টের অধীনে ঘোষণা করতে হবে
-
android:foregroundServiceType
-
mediaProcessing
- আপনার ম্যানিফেস্টে ঘোষণা করার অনুমতি
-
FOREGROUND_SERVICE_MEDIA_PROCESSING
-
startForeground()
এ পাস করার জন্য ধ্রুবক -
FOREGROUND_SERVICE_TYPE_MEDIA_PROCESSING
- রানটাইম পূর্বশর্ত
- কোনোটিই নয়
- বর্ণনা
মিডিয়া সম্পদে সময়-সাপেক্ষ ক্রিয়াকলাপ সম্পাদনের জন্য পরিষেবা, যেমন মিডিয়াকে বিভিন্ন ফর্ম্যাটে রূপান্তর করা। সিস্টেমটি এই পরিষেবাটিকে সীমিত সময় চালানোর অনুমতি দেয়; সাধারণ পরিস্থিতিতে, এই সময়সীমা প্রতি 24টির মধ্যে 6 ঘন্টা হবে। (এই সীমাটি একটি অ্যাপের
mediaProcessing
ফোরগ্রাউন্ড পরিষেবাগুলির সমস্ত দ্বারা ভাগ করা হয়নিম্নলিখিত পরিস্থিতিতে আপনার অ্যাপটিকে ম্যানুয়ালি মিডিয়া প্রক্রিয়াকরণ পরিষেবা বন্ধ করা উচিত:
- যখন ট্রান্সকোডিং অপারেশন শেষ হয় বা ব্যর্থতার অবস্থায় পৌঁছায়, পরিষেবাটিকে সম্পূর্ণরূপে বন্ধ করতে
Service.stopForeground()
এবংService.stopSelf()
কল করুন৷
- যখন ট্রান্সকোডিং অপারেশন শেষ হয় বা ব্যর্থতার অবস্থায় পৌঁছায়, পরিষেবাটিকে সম্পূর্ণরূপে বন্ধ করতে
যদি টাইমআউট পিরিয়ড পৌঁছে যায়, সিস্টেম পরিষেবাটির
Service.onTimeout(int, int)
পদ্ধতিতে কল করে। এই সময়ে, পরিষেবাটিতেService.stopSelf()
কল করার জন্য কয়েক সেকেন্ড সময় আছে। যদি পরিষেবাটিService.stopSelf()
কে কল না করে, তাহলে এই ত্রুটি বার্তার সাথে একটি ANR ঘটবে: " <fgs_type> এর একটি অগ্রভাগের পরিষেবা তার সময়সীমার মধ্যে থামেনি: <component_name> "।দ্রষ্টব্য :
Service.onTimeout(int, int)
Android 14 বা তার নিচের সংস্করণে উপলব্ধ নয়। সেই সংস্করণগুলি চলমান ডিভাইসগুলিতে, যদি কোনও মিডিয়া প্রক্রিয়াকরণ পরিষেবা সময়সীমার মধ্যে পৌঁছে যায়, সিস্টেমটি অবিলম্বে অ্যাপটিকে ক্যাশ করে। এই কারণে, আপনার অ্যাপের সময় শেষ হওয়ার বিজ্ঞপ্তি পাওয়ার জন্য অপেক্ষা করা উচিত নয়। পরিবর্তে, এটি ফোরগ্রাউন্ড পরিষেবাটি বন্ধ করা উচিত বা যত তাড়াতাড়ি উপযুক্ত হিসাবে এটি একটি ব্যাকগ্রাউন্ড পরিষেবাতে পরিবর্তন করা উচিত।
মিডিয়া অভিক্ষেপ
- ফোরগ্রাউন্ড সার্ভিস টাইপ যা ম্যানিফেস্টের অধীনে ঘোষণা করতে হবে
-
android:foregroundServiceType
-
mediaProjection
- আপনার ম্যানিফেস্টে ঘোষণা করার অনুমতি
-
FOREGROUND_SERVICE_MEDIA_PROJECTION
-
startForeground()
এ পাস করার জন্য ধ্রুবক -
FOREGROUND_SERVICE_TYPE_MEDIA_PROJECTION
- রানটাইম পূর্বশর্ত
ফোরগ্রাউন্ড পরিষেবা শুরু করার আগে
createScreenCaptureIntent()
পদ্ধতিতে কল করুন। এটি করা ব্যবহারকারীকে একটি অনুমতি বিজ্ঞপ্তি দেখায়; আপনি পরিষেবা তৈরি করার আগে ব্যবহারকারীকে অবশ্যই অনুমতি দিতে হবে।আপনি ফোরগ্রাউন্ড পরিষেবা তৈরি করার পরে, আপনি
MediaProjectionManager.getMediaProjection()
কল করতে পারেন।- বর্ণনা
MediaProjection
APIs ব্যবহার করে নন-প্রাথমিক ডিসপ্লে বা বাহ্যিক ডিভাইসে প্রজেক্ট কন্টেন্ট। এই বিষয়বস্তু একচেটিয়াভাবে মিডিয়া বিষয়বস্তু হতে হবে না.- বিকল্প
অন্য ডিভাইসে মিডিয়া স্ট্রিম করতে, Google Cast SDK ব্যবহার করুন৷
- ফোরগ্রাউন্ড পরিষেবার ধরন যা ম্যানিফেস্টের অধীনে ঘোষণা করতে হবে
-
android:foregroundServiceType
-
mediaProjection
- আপনার ম্যানিফেস্টে ঘোষণা করার অনুমতি
-
FOREGROUND_SERVICE_MEDIA_PROJECTION
-
startForeground()
এ পাস করার জন্য ধ্রুবক -
FOREGROUND_SERVICE_TYPE_MEDIA_PROJECTION
- রানটাইম পূর্বশর্ত
ফোরগ্রাউন্ড পরিষেবা শুরু করার আগে
createScreenCaptureIntent()
পদ্ধতিতে কল করুন। এটি করা ব্যবহারকারীকে একটি অনুমতি বিজ্ঞপ্তি দেখায়; আপনি পরিষেবা তৈরি করার আগে ব্যবহারকারীকে অবশ্যই অনুমতি দিতে হবে।আপনি ফোরগ্রাউন্ড পরিষেবা তৈরি করার পরে, আপনি
MediaProjectionManager.getMediaProjection()
কল করতে পারেন।- বর্ণনা
MediaProjection
APIs ব্যবহার করে নন-প্রাথমিক ডিসপ্লে বা বাহ্যিক ডিভাইসে প্রজেক্ট কন্টেন্ট। এই বিষয়বস্তু একচেটিয়াভাবে মিডিয়া বিষয়বস্তু হতে হবে না.- বিকল্প
অন্য ডিভাইসে মিডিয়া স্ট্রিম করতে, Google Cast SDK ব্যবহার করুন৷
- ফোরগ্রাউন্ড সার্ভিস টাইপ যা ম্যানিফেস্টের অধীনে ঘোষণা করতে হবে
-
android:foregroundServiceType
-
mediaProjection
- আপনার ম্যানিফেস্টে ঘোষণা করার অনুমতি
-
FOREGROUND_SERVICE_MEDIA_PROJECTION
-
startForeground()
এ পাস করার জন্য ধ্রুবক -
FOREGROUND_SERVICE_TYPE_MEDIA_PROJECTION
- রানটাইম পূর্বশর্ত
ফোরগ্রাউন্ড পরিষেবা শুরু করার আগে
createScreenCaptureIntent()
পদ্ধতিতে কল করুন। এটি করা ব্যবহারকারীকে একটি অনুমতি বিজ্ঞপ্তি দেখায়; আপনি পরিষেবা তৈরি করার আগে ব্যবহারকারীকে অবশ্যই অনুমতি দিতে হবে।আপনি ফোরগ্রাউন্ড পরিষেবা তৈরি করার পরে, আপনি
MediaProjectionManager.getMediaProjection()
কল করতে পারেন।- বর্ণনা
MediaProjection
APIs ব্যবহার করে নন-প্রাথমিক ডিসপ্লে বা বাহ্যিক ডিভাইসে প্রজেক্ট কন্টেন্ট। এই বিষয়বস্তু একচেটিয়াভাবে মিডিয়া বিষয়বস্তু হতে হবে না.- বিকল্প
অন্য ডিভাইসে মিডিয়া স্ট্রিম করতে, Google Cast SDK ব্যবহার করুন৷
মাইক্রোফোন
- ফোরগ্রাউন্ড পরিষেবার ধরন যা ম্যানিফেস্টের অধীনে ঘোষণা করতে হবে
-
android:foregroundServiceType
-
microphone
- আপনার ম্যানিফেস্টে ঘোষণা করার অনুমতি
-
FOREGROUND_SERVICE_MICROPHONE
-
startForeground()
এ পাস করার জন্য ধ্রুবক -
FOREGROUND_SERVICE_TYPE_MICROPHONE
- রানটাইম পূর্বশর্ত
অনুরোধ করুন এবং
RECORD_AUDIO
রানটাইম অনুমতি মঞ্জুর করুন৷- বর্ণনা
পটভূমি থেকে মাইক্রোফোন ক্যাপচার চালিয়ে যান, যেমন ভয়েস রেকর্ডার বা যোগাযোগ অ্যাপ।
- ফোরগ্রাউন্ড পরিষেবার ধরন যা ম্যানিফেস্টের অধীনে ঘোষণা করতে হবে
-
android:foregroundServiceType
-
microphone
- আপনার ম্যানিফেস্টে ঘোষণা করার অনুমতি
-
FOREGROUND_SERVICE_MICROPHONE
-
startForeground()
এ পাস করার জন্য ধ্রুবক -
FOREGROUND_SERVICE_TYPE_MICROPHONE
- রানটাইম পূর্বশর্ত
অনুরোধ করুন এবং
RECORD_AUDIO
রানটাইম অনুমতি মঞ্জুর করুন৷- বর্ণনা
পটভূমি থেকে মাইক্রোফোন ক্যাপচার চালিয়ে যান, যেমন ভয়েস রেকর্ডার বা যোগাযোগ অ্যাপ।
- ফোরগ্রাউন্ড পরিষেবার ধরন যা ম্যানিফেস্টের অধীনে ঘোষণা করতে হবে
-
android:foregroundServiceType
-
microphone
- আপনার ম্যানিফেস্টে ঘোষণা করার অনুমতি
-
FOREGROUND_SERVICE_MICROPHONE
-
startForeground()
এ পাস করার জন্য ধ্রুবক -
FOREGROUND_SERVICE_TYPE_MICROPHONE
- রানটাইম পূর্বশর্ত
অনুরোধ করুন এবং
RECORD_AUDIO
রানটাইম অনুমতি মঞ্জুর করুন৷- বর্ণনা
পটভূমি থেকে মাইক্রোফোন ক্যাপচার চালিয়ে যান, যেমন ভয়েস রেকর্ডার বা যোগাযোগ অ্যাপ।
ফোন কল
- ফোরগ্রাউন্ড সার্ভিস টাইপ যা ম্যানিফেস্টের অধীনে ঘোষণা করতে হবে
-
android:foregroundServiceType
-
phoneCall
- আপনার ম্যানিফেস্টে ঘোষণা করার অনুমতি
-
FOREGROUND_SERVICE_PHONE_CALL
-
startForeground()
এ পাস করার জন্য ধ্রুবক -
FOREGROUND_SERVICE_TYPE_PHONE_CALL
- রানটাইম পূর্বশর্ত
এই শর্তগুলির মধ্যে অন্তত একটি সত্য হতে হবে:
- অ্যাপ তার ম্যানিফেস্ট ফাইলে
MANAGE_OWN_CALLS
অনুমতি ঘোষণা করেছে।
- অ্যাপ তার ম্যানিফেস্ট ফাইলে
- অ্যাপ হল
ROLE_DIALER
ভূমিকার মাধ্যমে ডিফল্ট ডায়ালার অ্যাপ।
- অ্যাপ হল
- বর্ণনা
ConnectionService
API ব্যবহার করে একটি চলমান কল চালিয়ে যান।- বিকল্প
আপনার যদি ফোন, ভিডিও বা ভিওআইপি কল করার প্রয়োজন হয়, তাহলে
android.telecom
লাইব্রেরি ব্যবহার করার কথা বিবেচনা করুন।কল স্ক্রিন করতে
CallScreeningService
ব্যবহার করার কথা বিবেচনা করুন।
- ফোরগ্রাউন্ড সার্ভিস টাইপ যা ম্যানিফেস্টের অধীনে ঘোষণা করতে হবে
-
android:foregroundServiceType
-
phoneCall
- আপনার ম্যানিফেস্টে ঘোষণা করার অনুমতি
-
FOREGROUND_SERVICE_PHONE_CALL
-
startForeground()
এ পাস করার জন্য ধ্রুবক -
FOREGROUND_SERVICE_TYPE_PHONE_CALL
- রানটাইম পূর্বশর্ত
এই শর্তগুলির মধ্যে অন্তত একটি সত্য হতে হবে:
- অ্যাপ তার ম্যানিফেস্ট ফাইলে
MANAGE_OWN_CALLS
অনুমতি ঘোষণা করেছে।
- অ্যাপ তার ম্যানিফেস্ট ফাইলে
- অ্যাপ হল
ROLE_DIALER
ভূমিকার মাধ্যমে ডিফল্ট ডায়ালার অ্যাপ।
- অ্যাপ হল
- বর্ণনা
ConnectionService
API ব্যবহার করে একটি চলমান কল চালিয়ে যান।- বিকল্প
আপনার যদি ফোন, ভিডিও বা ভিওআইপি কল করার প্রয়োজন হয়, তাহলে
android.telecom
লাইব্রেরি ব্যবহার করার কথা বিবেচনা করুন।কল স্ক্রিন করতে
CallScreeningService
ব্যবহার করার কথা বিবেচনা করুন।
রিমোট মেসেজিং
- ফোরগ্রাউন্ড সার্ভিস টাইপ যা ম্যানিফেস্টের অধীনে ঘোষণা করতে হবে
-
android:foregroundServiceType
-
remoteMessaging
- আপনার ম্যানিফেস্টে ঘোষণা করার অনুমতি
-
FOREGROUND_SERVICE_REMOTE_MESSAGING
-
startForeground()
এ পাস করার জন্য ধ্রুবক -
FOREGROUND_SERVICE_TYPE_REMOTE_MESSAGING
- রানটাইম পূর্বশর্ত
- কোনোটিই নয়
- বর্ণনা
- এক ডিভাইস থেকে অন্য ডিভাইসে পাঠ্য বার্তা স্থানান্তর করুন। কোনো ব্যবহারকারীর মেসেজিং কাজের ধারাবাহিকতায় সহায়তা করে যখন তারা ডিভাইসগুলি পরিবর্তন করে।
সংক্ষিপ্ত পরিষেবা
- ফোরগ্রাউন্ড সার্ভিস টাইপ যা ম্যানিফেস্টের অধীনে ঘোষণা করতে হবে
-
android:foregroundServiceType
-
shortService
- আপনার ম্যানিফেস্টে ঘোষণা করার অনুমতি
- কোনোটিই নয়
-
startForeground()
এ পাস করার জন্য ধ্রুবক -
FOREGROUND_SERVICE_TYPE_SHORT_SERVICE
- রানটাইম পূর্বশর্ত
- কোনোটিই নয়
- বর্ণনা
জটিল কাজ দ্রুত শেষ করুন যা বাধা বা স্থগিত করা যাবে না।
এই ধরনের কিছু অনন্য বৈশিষ্ট্য আছে:
- শুধুমাত্র অল্প সময়ের জন্য চলতে পারে (প্রায় 3 মিনিট)।
- স্টিকি ফোরগ্রাউন্ড পরিষেবাগুলির জন্য কোনও সমর্থন নেই।
- অন্যান্য ফোরগ্রাউন্ড পরিষেবাগুলি শুরু করতে পারে না৷
- টাইপ-নির্দিষ্ট অনুমতির প্রয়োজন হয় না, যদিও এটির জন্য এখনও
FOREGROUND_SERVICE
অনুমতি প্রয়োজন৷ - একটি
shortService
শুধুমাত্র অন্য পরিষেবার প্রকারে পরিবর্তন করতে পারে যদি অ্যাপটি বর্তমানে একটি নতুন ফোরগ্রাউন্ড পরিষেবা শুরু করার যোগ্য হয়৷ - একটি ফোরগ্রাউন্ড পরিষেবা যে কোনও সময় তার ধরনকে
shortService
পরিবর্তন করতে পারে, যে সময়ে টাইমআউট পিরিয়ড শুরু হয়।
Service.startForeground()
বলা হওয়ার মুহুর্ত থেকে শর্টসার্ভিসের সময়সীমা শুরু হয়। সময় শেষ হওয়ার আগে অ্যাপটিService.stopSelf()
বাService.stopForeground()
কল করবে বলে আশা করা হচ্ছে। অন্যথায়, নতুনService.onTimeout()
কল করা হবে, অ্যাপগুলিকে তাদের পরিষেবা বন্ধ করতেstopSelf()
বাstopForeground()
কল করার একটি সংক্ষিপ্ত সুযোগ দেয়৷Service.onTimeout()
কল করার অল্প সময়ের পরে, অ্যাপটি একটি ক্যাশড অবস্থায় প্রবেশ করে এবং ব্যবহারকারী অ্যাপের সাথে সক্রিয়ভাবে ইন্টারঅ্যাক্ট না করা পর্যন্ত এটিকে আর অগ্রভাগে বিবেচনা করা হয় না। অ্যাপটি ক্যাশ করার কিছুক্ষণ পরে এবং পরিষেবা বন্ধ না হলে, অ্যাপটি একটি ANR পায়। ANR বার্তাটিFOREGROUND_SERVICE_TYPE_SHORT_SERVICE
উল্লেখ করেছে। এই কারণগুলির জন্য,Service.onTimeout()
কলব্যাক বাস্তবায়ন করা সর্বোত্তম অনুশীলন হিসাবে বিবেচিত হয়৷Service.onTimeout()
কলব্যাক Android 13 এবং তার নিচের সংস্করণে বিদ্যমান নেই। যদি একই পরিষেবা এই জাতীয় ডিভাইসগুলিতে চলে, তবে এটি একটি টাইমআউট পায় না এবং এটি ANRও করে না। নিশ্চিত করুন যে আপনার পরিষেবাটি প্রক্রিয়াকরণের কাজ শেষ করার সাথে সাথেই বন্ধ হয়ে যায়, এমনকি যদি এটি এখনওService.onTimeout()
কলব্যাক না পায়।এটা মনে রাখা গুরুত্বপূর্ণ যে যদি
shortService
টাইমআউটকে সম্মান না করা হয়, তাহলে অ্যাপটি ANR করবে এমনকি এটির অন্যান্য বৈধ অগ্রভাগের পরিষেবা বা অন্যান্য অ্যাপ লাইফসাইকেল প্রক্রিয়া চলমান থাকলেও।যদি কোনও অ্যাপ ব্যবহারকারীর কাছে দৃশ্যমান হয় বা ফোরগ্রাউন্ড পরিষেবাগুলিকে ব্যাকগ্রাউন্ড থেকে শুরু করার অনুমতি দেয় এমন ছাড়গুলির মধ্যে একটিকে সন্তুষ্ট করে, তাহলে
FOREGROUND_SERVICE_TYPE_SHORT_SERVICE
প্যারামিটারের সাথে আবারService.StartForeground()
কল করলে সময়সীমা আরও 3 মিনিট বৃদ্ধি করে৷ অ্যাপটি ব্যবহারকারীর কাছে দৃশ্যমান না হলে এবং ছাড়গুলির একটিকে সন্তুষ্ট না করলে, ধরন নির্বিশেষে অন্য ফোরগ্রাউন্ড পরিষেবা শুরু করার যে কোনও প্রচেষ্টা একটিForegroundServiceStartNotAllowedException
সৃষ্টি করে৷যদি কোনও ব্যবহারকারী আপনার অ্যাপের জন্য ব্যাটারি অপ্টিমাইজেশান অক্ষম করে, তবে এটি এখনও শর্টসার্ভিস FGS-এর টাইমআউট দ্বারা প্রভাবিত হয়।
আপনি যদি একটি ফোরগ্রাউন্ড পরিষেবা শুরু করেন যাতে
shortService
টাইপ এবং অন্য ফোরগ্রাউন্ড পরিষেবার ধরন অন্তর্ভুক্ত থাকে, তবে সিস্টেমটিshortService
টাইপ ঘোষণা উপেক্ষা করে। যাইহোক, পরিষেবাটিকে এখনও অন্যান্য ঘোষিত প্রকারের পূর্বশর্তগুলি মেনে চলতে হবে। আরও তথ্যের জন্য, ফোরগ্রাউন্ড পরিষেবার ডকুমেন্টেশন দেখুন।
বিশেষ ব্যবহার
- ফোরগ্রাউন্ড সার্ভিস টাইপ যা ম্যানিফেস্টের অধীনে ঘোষণা করতে হবে
-
android:foregroundServiceType
-
specialUse
- আপনার ম্যানিফেস্টে ঘোষণা করার অনুমতি
-
FOREGROUND_SERVICE_SPECIAL_USE
-
startForeground()
এ পাস করার জন্য ধ্রুবক -
FOREGROUND_SERVICE_TYPE_SPECIAL_USE
- রানটাইম পূর্বশর্ত
- কোনোটিই নয়
- বর্ণনা
যেকোন বৈধ ফোরগ্রাউন্ড পরিষেবা ব্যবহারের ক্ষেত্রে কভার করে যা অন্যান্য ফোরগ্রাউন্ড পরিষেবার ধরন দ্বারা কভার করা হয় না।
FOREGROUND_SERVICE_TYPE_SPECIAL_USE
ফোরগ্রাউন্ড পরিষেবার ধরন ঘোষণা করার পাশাপাশি, বিকাশকারীদের ম্যানিফেস্টে ব্যবহারের কেসগুলি ঘোষণা করা উচিত৷ এটি করার জন্য, তারা<service>
উপাদানের মধ্যে<property>
উপাদানটি নির্দিষ্ট করে। আপনি যখন Google Play Console-এ আপনার অ্যাপ জমা দেন তখন এই মানগুলি এবং সংশ্লিষ্ট ব্যবহারের ক্ষেত্রে পর্যালোচনা করা হয়। আপনি যে ব্যবহারের ক্ষেত্রেগুলি প্রদান করেন তা ফ্রি-ফর্ম, এবং আপনাকে পর্যাপ্ত তথ্য প্রদানের বিষয়টি নিশ্চিত করতে হবে যাতে পর্যালোচক দেখতে পান কেন আপনাকেspecialUse
টাইপ ব্যবহার করতে হবে।<service android:name="fooService" android:foregroundServiceType="specialUse"> <property android:name="android.app.PROPERTY_SPECIAL_USE_FGS_SUBTYPE" android:value="explanation_for_special_use"/> </service>
সিস্টেম অব্যাহতি
- ফোরগ্রাউন্ড সার্ভিস টাইপ যা ম্যানিফেস্টের অধীনে ঘোষণা করতে হবে
-
android:foregroundServiceType
-
systemExempted
- আপনার ম্যানিফেস্টে ঘোষণা করার অনুমতি
-
FOREGROUND_SERVICE_SYSTEM_EXEMPTED
-
startForeground()
এ পাস করার জন্য ধ্রুবক -
FOREGROUND_SERVICE_TYPE_SYSTEM_EXEMPTED
- রানটাইম পূর্বশর্ত
- কোনোটিই নয়
- বর্ণনা
ফোরগ্রাউন্ড পরিষেবাগুলি ব্যবহার করা চালিয়ে যাওয়ার জন্য সিস্টেম অ্যাপ্লিকেশন এবং নির্দিষ্ট সিস্টেম ইন্টিগ্রেশনের জন্য সংরক্ষিত।
এই ধরনের ব্যবহার করার জন্য, একটি অ্যাপকে অবশ্যই নিম্নলিখিত মানদণ্ডগুলির মধ্যে একটি পূরণ করতে হবে:
- ডিভাইস ডেমো মোড অবস্থায় আছে
- অ্যাপটি একটি ডিভাইসের মালিক
- অ্যাপ একজন প্রোফাইলার মালিক
-
ROLE_EMERGENCY
ভূমিকা আছে এমন নিরাপত্তা অ্যাপ - ডিভাইস অ্যাডমিন অ্যাপস
-
SCHEDULE_EXACT_ALARM
বাUSE_EXACT_ALARM
অনুমতি ধারণ করা অ্যাপ ভিপিএন অ্যাপস ( সেটিংস > নেটওয়ার্ক এবং ইন্টারনেট > ভিপিএন ব্যবহার করে কনফিগার করা হয়েছে)
অন্যথায়, এই ধরনের ঘোষণা করার ফলে সিস্টেম একটি
ForegroundServiceTypeNotAllowedException
নিক্ষেপ করে।
ফোরগ্রাউন্ড পরিষেবার প্রকারগুলি ব্যবহার করার জন্য Google Play নীতি প্রয়োগ
যদি আপনার অ্যাপটি Android 14 বা তার উচ্চতরকে টার্গেট করে, তাহলে আপনাকে Play Console-এর অ্যাপ কন্টেন্ট পৃষ্ঠায় ( নীতি > অ্যাপ সামগ্রী ) আপনার অ্যাপের ফোরগ্রাউন্ড পরিষেবার ধরন ঘোষণা করতে হবে। Play Console-এ আপনার ফোরগ্রাউন্ড পরিষেবার প্রকারগুলি কীভাবে ঘোষণা করবেন সে সম্পর্কে আরও তথ্যের জন্য, ফোরগ্রাউন্ড পরিষেবা এবং পূর্ণ-স্ক্রীনের অভিপ্রায়ের প্রয়োজনীয়তা বোঝা দেখুন।
, Android 14 (API স্তর 34) দিয়ে শুরু করে, আপনাকে অবশ্যই প্রতিটি অগ্রভাগের পরিষেবার জন্য একটি উপযুক্ত পরিষেবার ধরণ ঘোষণা করতে হবে। তার মানে আপনাকে অবশ্যই আপনার অ্যাপ ম্যানিফেস্টে পরিষেবার ধরণটি ঘোষণা করতে হবে এবং সেই ধরনের জন্য উপযুক্ত ফোরগ্রাউন্ড পরিষেবা অনুমতির অনুরোধ করতে হবে ( FOREGROUND_SERVICE
অনুমতির অনুরোধ ছাড়াও)। অধিকন্তু, অগ্রভাগের পরিষেবার প্রকারের উপর নির্ভর করে, আপনি পরিষেবাটি চালু করার আগে আপনাকে রানটাইম অনুমতির অনুরোধ করতে হতে পারে।
ক্যামেরা
android:foregroundServiceType
অধীনে ম্যানিফেস্টে ঘোষণা করার জন্য ফোরগ্রাউন্ড পরিষেবার ধরন-
camera
- আপনার ম্যানিফেস্টে ঘোষণা করার অনুমতি
-
FOREGROUND_SERVICE_CAMERA
-
startForeground()
এ পাস করার জন্য ধ্রুবক -
FOREGROUND_SERVICE_TYPE_CAMERA
- রানটাইম পূর্বশর্ত
অনুরোধ করুন এবং
CAMERA
রানটাইম অনুমতি মঞ্জুর করুন৷- বর্ণনা
পটভূমি থেকে ক্যামেরা অ্যাক্সেস করা চালিয়ে যান, যেমন ভিডিও চ্যাট অ্যাপ যা মাল্টিটাস্কিংয়ের অনুমতি দেয়।
-
android:foregroundServiceType
অধীনে ম্যানিফেস্টে ঘোষণা করার জন্য ফোরগ্রাউন্ড পরিষেবার ধরন -
camera
- আপনার ম্যানিফেস্টে ঘোষণা করার অনুমতি
-
FOREGROUND_SERVICE_CAMERA
-
startForeground()
এ পাস করার জন্য ধ্রুবক -
FOREGROUND_SERVICE_TYPE_CAMERA
- রানটাইম পূর্বশর্ত
অনুরোধ করুন এবং
CAMERA
রানটাইম অনুমতি মঞ্জুর করুন৷- বর্ণনা
পটভূমি থেকে ক্যামেরা অ্যাক্সেস করা চালিয়ে যান, যেমন ভিডিও চ্যাট অ্যাপ যা মাল্টিটাস্কিংয়ের অনুমতি দেয়।
-
android:foregroundServiceType
অধীনে ম্যানিফেস্টে ঘোষণা করার জন্য ফোরগ্রাউন্ড পরিষেবার ধরন -
camera
- আপনার ম্যানিফেস্টে ঘোষণা করার অনুমতি
-
FOREGROUND_SERVICE_CAMERA
-
startForeground()
এ পাস করার জন্য ধ্রুবক -
FOREGROUND_SERVICE_TYPE_CAMERA
- রানটাইম পূর্বশর্ত
অনুরোধ করুন এবং
CAMERA
রানটাইম অনুমতি মঞ্জুর করুন৷- বর্ণনা
পটভূমি থেকে ক্যামেরা অ্যাক্সেস করা চালিয়ে যান, যেমন ভিডিও চ্যাট অ্যাপ যা মাল্টিটাস্কিংয়ের অনুমতি দেয়।
সংযুক্ত ডিভাইস
- ফোরগ্রাউন্ড সার্ভিস টাইপ যা ম্যানিফেস্টের অধীনে ঘোষণা করতে হবে
-
android:foregroundServiceType
-
connectedDevice
- আপনার ম্যানিফেস্টে ঘোষণা করার অনুমতি
-
FOREGROUND_SERVICE_CONNECTED_DEVICE
-
startForeground()
এ পাস করার জন্য ধ্রুবক -
FOREGROUND_SERVICE_TYPE_CONNECTED_DEVICE
- রানটাইম পূর্বশর্ত
নিম্নলিখিত শর্তগুলির মধ্যে অন্তত একটি সত্য হতে হবে:
আপনার ম্যানিফেস্টে নিম্নলিখিত অনুমতিগুলির মধ্যে অন্তত একটি ঘোষণা করুন:
অনুরোধ করুন এবং নিম্নলিখিত রানটাইম অনুমতিগুলির মধ্যে অন্তত একটি মঞ্জুর করুন:
- বর্ণনা
ব্লুটুথ, এনএফসি, আইআর, ইউএসবি বা নেটওয়ার্ক সংযোগের প্রয়োজন বাহ্যিক ডিভাইসগুলির সাথে মিথস্ক্রিয়া।
- বিকল্প
যদি আপনার অ্যাপটিকে একটি বাহ্যিক ডিভাইসে ক্রমাগত ডেটা স্থানান্তর করতে হয়, তবে পরিবর্তে সহচর ডিভাইস ম্যানেজার ব্যবহার করার কথা বিবেচনা করুন। সহচর ডিভাইসের পরিসরে থাকাকালীন আপনার অ্যাপটি চলমান থাকতে সাহায্য করার জন্য সহচর ডিভাইস উপস্থিতি API ব্যবহার করুন৷
আপনার অ্যাপটিকে ব্লুটুথ ডিভাইসের জন্য স্ক্যান করার প্রয়োজন হলে, পরিবর্তে ব্লুটুথ স্ক্যান API ব্যবহার করার কথা বিবেচনা করুন।
ডেটা সিঙ্ক
- ফোরগ্রাউন্ড পরিষেবার ধরন যা ম্যানিফেস্টের অধীনে ঘোষণা করতে হবে
-
android:foregroundServiceType
-
dataSync
- আপনার ম্যানিফেস্টে ঘোষণা করার অনুমতি
-
FOREGROUND_SERVICE_DATA_SYNC
-
startForeground()
এ পাস করার জন্য ধ্রুবক -
FOREGROUND_SERVICE_TYPE_DATA_SYNC
- রানটাইম পূর্বশর্ত
- কোনোটিই নয়
- বর্ণনা
ডেটা ট্রান্সফার অপারেশন, যেমন নিম্নলিখিত:
- ডেটা আপলোড বা ডাউনলোড
- ব্যাকআপ এবং পুনরুদ্ধার অপারেশন
- আমদানি বা রপ্তানি কার্যক্রম
- ডেটা আনুন
- স্থানীয় ফাইল প্রক্রিয়াকরণ
- একটি নেটওয়ার্কের মাধ্যমে একটি ডিভাইস এবং ক্লাউডের মধ্যে ডেটা স্থানান্তর করুন
- বিকল্প
বিস্তারিত তথ্যের জন্য ডেটা সিঙ্ক ফোরগ্রাউন্ড পরিষেবাগুলির বিকল্পগুলি দেখুন৷
- ফোরগ্রাউন্ড পরিষেবার ধরন যা ম্যানিফেস্টের অধীনে ঘোষণা করতে হবে
-
android:foregroundServiceType
-
dataSync
- আপনার ম্যানিফেস্টে ঘোষণা করার অনুমতি
-
FOREGROUND_SERVICE_DATA_SYNC
-
startForeground()
এ পাস করার জন্য ধ্রুবক -
FOREGROUND_SERVICE_TYPE_DATA_SYNC
- রানটাইম পূর্বশর্ত
- কোনোটিই নয়
- বর্ণনা
ডেটা ট্রান্সফার অপারেশন, যেমন নিম্নলিখিত:
- ডেটা আপলোড বা ডাউনলোড
- ব্যাকআপ এবং পুনরুদ্ধার অপারেশন
- আমদানি বা রপ্তানি কার্যক্রম
- ডেটা আনুন
- স্থানীয় ফাইল প্রক্রিয়াকরণ
- একটি নেটওয়ার্কের মাধ্যমে একটি ডিভাইস এবং ক্লাউডের মধ্যে ডেটা স্থানান্তর করুন
- বিকল্প
বিস্তারিত তথ্যের জন্য ডেটা সিঙ্ক ফোরগ্রাউন্ড পরিষেবাগুলির বিকল্পগুলি দেখুন৷
- ফোরগ্রাউন্ড পরিষেবার ধরন যা ম্যানিফেস্টের অধীনে ঘোষণা করতে হবে
-
android:foregroundServiceType
-
dataSync
- আপনার ম্যানিফেস্টে ঘোষণা করার অনুমতি
-
FOREGROUND_SERVICE_DATA_SYNC
-
startForeground()
এ পাস করার জন্য ধ্রুবক -
FOREGROUND_SERVICE_TYPE_DATA_SYNC
- রানটাইম পূর্বশর্ত
- কোনোটিই নয়
- বর্ণনা
ডেটা ট্রান্সফার অপারেশন, যেমন নিম্নলিখিত:
- ডেটা আপলোড বা ডাউনলোড
- ব্যাকআপ এবং পুনরুদ্ধার অপারেশন
- আমদানি বা রপ্তানি কার্যক্রম
- ডেটা আনুন
- স্থানীয় ফাইল প্রক্রিয়াকরণ
- একটি নেটওয়ার্কের মাধ্যমে একটি ডিভাইস এবং ক্লাউডের মধ্যে ডেটা স্থানান্তর করুন
- বিকল্প
বিস্তারিত তথ্যের জন্য ডেটা সিঙ্ক ফোরগ্রাউন্ড পরিষেবাগুলির বিকল্পগুলি দেখুন৷
স্বাস্থ্য
- ফোরগ্রাউন্ড সার্ভিস টাইপ যা ম্যানিফেস্টের অধীনে ঘোষণা করতে হবে
-
android:foregroundServiceType
-
health
- আপনার ম্যানিফেস্টে ঘোষণা করার অনুমতি
-
FOREGROUND_SERVICE_HEALTH
-
startForeground()
এ পাস করার জন্য ধ্রুবক -
FOREGROUND_SERVICE_TYPE_HEALTH
- রানটাইম পূর্বশর্ত
নিম্নলিখিত শর্তগুলির মধ্যে অন্তত একটি সত্য হতে হবে:
আপনার ম্যানিফেস্টে
HIGH_SAMPLING_RATE_SENSORS
অনুমতি ঘোষণা করুন৷অনুরোধ করুন এবং নিম্নলিখিত রানটাইম অনুমতিগুলির মধ্যে অন্তত একটি মঞ্জুর করুন:
- বর্ণনা
ব্যায়াম ট্র্যাকারের মতো ফিটনেস বিভাগে অ্যাপগুলিকে সমর্থন করার জন্য যেকোন দীর্ঘস্থায়ী ব্যবহারের ক্ষেত্রে।
অবস্থান
- ফোরগ্রাউন্ড সার্ভিস টাইপ যা ম্যানিফেস্টের অধীনে ঘোষণা করতে হবে
-
android:foregroundServiceType
-
location
- আপনার ম্যানিফেস্টে ঘোষণা করার অনুমতি
-
FOREGROUND_SERVICE_LOCATION
-
startForeground()
এ পাস করার জন্য ধ্রুবক -
FOREGROUND_SERVICE_TYPE_LOCATION
- রানটাইম পূর্বশর্ত
ব্যবহারকারীর অবশ্যই লোকেশন পরিষেবা সক্রিয় থাকতে হবে এবং অ্যাপটিকে অবশ্যই নিম্নলিখিত রানটাইম অনুমতিগুলির মধ্যে অন্তত একটি মঞ্জুর করতে হবে:
- বর্ণনা
দীর্ঘস্থায়ী ব্যবহারের ক্ষেত্রে যেখানে অবস্থান অ্যাক্সেসের প্রয়োজন হয়, যেমন নেভিগেশন এবং অবস্থান ভাগ করে নেওয়া।
- বিকল্প
ব্যবহারকারী নির্দিষ্ট অবস্থানে পৌঁছালে আপনার অ্যাপটিকে ট্রিগার করার প্রয়োজন হলে, পরিবর্তে জিওফেন্স API ব্যবহার করার কথা বিবেচনা করুন।
মিডিয়া
- ফোরগ্রাউন্ড সার্ভিস টাইপ যা ম্যানিফেস্টের অধীনে ঘোষণা করতে হবে
-
android:foregroundServiceType
-
mediaPlayback
- আপনার ম্যানিফেস্টে ঘোষণা করার অনুমতি
-
FOREGROUND_SERVICE_MEDIA_PLAYBACK
-
startForeground()
এ পাস করার জন্য ধ্রুবক -
FOREGROUND_SERVICE_TYPE_MEDIA_PLAYBACK
- রানটাইম পূর্বশর্ত
- কোনোটিই নয়
- বর্ণনা
পটভূমি থেকে অডিও বা ভিডিও প্লেব্যাক চালিয়ে যান। অ্যান্ড্রয়েড টিভিতে ডিজিটাল ভিডিও রেকর্ডিং (ডিভিআর) কার্যকারিতা সমর্থন করে।
- বিকল্প
আপনি যদি পিকচার-ইন-পিকচার ভিডিও দেখান, তাহলে পিকচার-ইন-পিকচার মোড ব্যবহার করুন।
- ফোরগ্রাউন্ড সার্ভিস টাইপ যা ম্যানিফেস্টের অধীনে ঘোষণা করতে হবে
-
android:foregroundServiceType
-
mediaPlayback
- আপনার ম্যানিফেস্টে ঘোষণা করার অনুমতি
-
FOREGROUND_SERVICE_MEDIA_PLAYBACK
-
startForeground()
এ পাস করার জন্য ধ্রুবক -
FOREGROUND_SERVICE_TYPE_MEDIA_PLAYBACK
- রানটাইম পূর্বশর্ত
- কোনোটিই নয়
- বর্ণনা
পটভূমি থেকে অডিও বা ভিডিও প্লেব্যাক চালিয়ে যান। অ্যান্ড্রয়েড টিভিতে ডিজিটাল ভিডিও রেকর্ডিং (ডিভিআর) কার্যকারিতা সমর্থন করে।
- বিকল্প
আপনি যদি পিকচার-ইন-পিকচার ভিডিও দেখান, তাহলে পিকচার-ইন-পিকচার মোড ব্যবহার করুন।
- ফোরগ্রাউন্ড সার্ভিস টাইপ যা ম্যানিফেস্টের অধীনে ঘোষণা করতে হবে
-
android:foregroundServiceType
-
mediaPlayback
- আপনার ম্যানিফেস্টে ঘোষণা করার অনুমতি
-
FOREGROUND_SERVICE_MEDIA_PLAYBACK
-
startForeground()
এ পাস করার জন্য ধ্রুবক -
FOREGROUND_SERVICE_TYPE_MEDIA_PLAYBACK
- রানটাইম পূর্বশর্ত
- কোনোটিই নয়
- বর্ণনা
পটভূমি থেকে অডিও বা ভিডিও প্লেব্যাক চালিয়ে যান। অ্যান্ড্রয়েড টিভিতে ডিজিটাল ভিডিও রেকর্ডিং (ডিভিআর) কার্যকারিতা সমর্থন করে।
- বিকল্প
আপনি যদি পিকচার-ইন-পিকচার ভিডিও দেখান, তাহলে পিকচার-ইন-পিকচার মোড ব্যবহার করুন।
মিডিয়া প্রক্রিয়াকরণ
- ফোরগ্রাউন্ড পরিষেবার ধরন যা ম্যানিফেস্টের অধীনে ঘোষণা করতে হবে
-
android:foregroundServiceType
-
mediaProcessing
- আপনার ম্যানিফেস্টে ঘোষণা করার অনুমতি
-
FOREGROUND_SERVICE_MEDIA_PROCESSING
-
startForeground()
এ পাস করার জন্য ধ্রুবক -
FOREGROUND_SERVICE_TYPE_MEDIA_PROCESSING
- রানটাইম পূর্বশর্ত
- কোনোটিই নয়
- বর্ণনা
মিডিয়া সম্পদে সময়-সাপেক্ষ ক্রিয়াকলাপ সম্পাদনের জন্য পরিষেবা, যেমন মিডিয়াকে বিভিন্ন ফর্ম্যাটে রূপান্তর করা। সিস্টেমটি এই পরিষেবাটিকে সীমিত সময় চালানোর অনুমতি দেয়; সাধারণ পরিস্থিতিতে, এই সময়সীমা প্রতি 24টির মধ্যে 6 ঘন্টা হবে। (এই সীমাটি একটি অ্যাপের
mediaProcessing
ফোরগ্রাউন্ড পরিষেবাগুলির সমস্ত দ্বারা ভাগ করা হয়নিম্নলিখিত পরিস্থিতিতে আপনার অ্যাপটিকে ম্যানুয়ালি মিডিয়া প্রক্রিয়াকরণ পরিষেবা বন্ধ করা উচিত:
- যখন ট্রান্সকোডিং অপারেশন শেষ হয় বা ব্যর্থতার অবস্থায় পৌঁছায়, পরিষেবাটিকে সম্পূর্ণরূপে বন্ধ করতে
Service.stopForeground()
এবংService.stopSelf()
কল করুন৷
- যখন ট্রান্সকোডিং অপারেশন শেষ হয় বা ব্যর্থতার অবস্থায় পৌঁছায়, পরিষেবাটিকে সম্পূর্ণরূপে বন্ধ করতে
যদি টাইমআউট পিরিয়ড পৌঁছে যায়, সিস্টেম পরিষেবাটির
Service.onTimeout(int, int)
পদ্ধতিতে কল করে। এই সময়ে, পরিষেবাটিতেService.stopSelf()
কল করার জন্য কয়েক সেকেন্ড সময় আছে। যদি পরিষেবাটিService.stopSelf()
কে কল না করে, তাহলে এই ত্রুটি বার্তার সাথে একটি ANR ঘটবে: " <fgs_type> এর একটি অগ্রভাগের পরিষেবা তার সময়সীমার মধ্যে থামেনি: <component_name> "।দ্রষ্টব্য :
Service.onTimeout(int, int)
Android 14 বা তার নিচের সংস্করণে উপলব্ধ নয়। সেই সংস্করণগুলি চলমান ডিভাইসগুলিতে, যদি কোনও মিডিয়া প্রক্রিয়াকরণ পরিষেবা সময়সীমার মধ্যে পৌঁছে যায়, সিস্টেমটি অবিলম্বে অ্যাপটিকে ক্যাশ করে। এই কারণে, আপনার অ্যাপের সময় শেষ হওয়ার বিজ্ঞপ্তি পাওয়ার জন্য অপেক্ষা করা উচিত নয়। পরিবর্তে, এটি ফোরগ্রাউন্ড পরিষেবাটি বন্ধ করা উচিত বা যত তাড়াতাড়ি উপযুক্ত হিসাবে এটি একটি ব্যাকগ্রাউন্ড পরিষেবাতে পরিবর্তন করা উচিত।
মিডিয়া অভিক্ষেপ
- ফোরগ্রাউন্ড সার্ভিস টাইপ যা ম্যানিফেস্টের অধীনে ঘোষণা করতে হবে
-
android:foregroundServiceType
-
mediaProjection
- আপনার ম্যানিফেস্টে ঘোষণা করার অনুমতি
-
FOREGROUND_SERVICE_MEDIA_PROJECTION
-
startForeground()
এ পাস করার জন্য ধ্রুবক -
FOREGROUND_SERVICE_TYPE_MEDIA_PROJECTION
- রানটাইম পূর্বশর্ত
ফোরগ্রাউন্ড পরিষেবা শুরু করার আগে
createScreenCaptureIntent()
পদ্ধতিতে কল করুন। এটি করা ব্যবহারকারীকে একটি অনুমতি বিজ্ঞপ্তি দেখায়; আপনি পরিষেবা তৈরি করার আগে ব্যবহারকারীকে অবশ্যই অনুমতি দিতে হবে।আপনি ফোরগ্রাউন্ড পরিষেবা তৈরি করার পরে, আপনি
MediaProjectionManager.getMediaProjection()
কল করতে পারেন।- বর্ণনা
MediaProjection
APIs ব্যবহার করে নন-প্রাথমিক ডিসপ্লে বা বাহ্যিক ডিভাইসে প্রজেক্ট কন্টেন্ট। এই বিষয়বস্তু একচেটিয়াভাবে মিডিয়া বিষয়বস্তু হতে হবে না.- বিকল্প
অন্য ডিভাইসে মিডিয়া স্ট্রিম করতে, Google Cast SDK ব্যবহার করুন৷
- ফোরগ্রাউন্ড পরিষেবার ধরন যা ম্যানিফেস্টের অধীনে ঘোষণা করতে হবে
-
android:foregroundServiceType
-
mediaProjection
- আপনার ম্যানিফেস্টে ঘোষণা করার অনুমতি
-
FOREGROUND_SERVICE_MEDIA_PROJECTION
-
startForeground()
এ পাস করার জন্য ধ্রুবক -
FOREGROUND_SERVICE_TYPE_MEDIA_PROJECTION
- রানটাইম পূর্বশর্ত
ফোরগ্রাউন্ড পরিষেবা শুরু করার আগে
createScreenCaptureIntent()
পদ্ধতিতে কল করুন। এটি করা ব্যবহারকারীকে একটি অনুমতি বিজ্ঞপ্তি দেখায়; আপনি পরিষেবা তৈরি করার আগে ব্যবহারকারীকে অবশ্যই অনুমতি দিতে হবে।আপনি ফোরগ্রাউন্ড পরিষেবা তৈরি করার পরে, আপনি
MediaProjectionManager.getMediaProjection()
কল করতে পারেন।- বর্ণনা
MediaProjection
APIs ব্যবহার করে নন-প্রাথমিক ডিসপ্লে বা বাহ্যিক ডিভাইসে প্রজেক্ট কন্টেন্ট। এই বিষয়বস্তু একচেটিয়াভাবে মিডিয়া বিষয়বস্তু হতে হবে না.- বিকল্প
অন্য ডিভাইসে মিডিয়া স্ট্রিম করতে, Google Cast SDK ব্যবহার করুন৷
- ফোরগ্রাউন্ড সার্ভিস টাইপ যা ম্যানিফেস্টের অধীনে ঘোষণা করতে হবে
-
android:foregroundServiceType
-
mediaProjection
- আপনার ম্যানিফেস্টে ঘোষণা করার অনুমতি
-
FOREGROUND_SERVICE_MEDIA_PROJECTION
-
startForeground()
এ পাস করার জন্য ধ্রুবক -
FOREGROUND_SERVICE_TYPE_MEDIA_PROJECTION
- রানটাইম পূর্বশর্ত
ফোরগ্রাউন্ড পরিষেবা শুরু করার আগে
createScreenCaptureIntent()
পদ্ধতিতে কল করুন। এটি করা ব্যবহারকারীকে একটি অনুমতি বিজ্ঞপ্তি দেখায়; আপনি পরিষেবা তৈরি করার আগে ব্যবহারকারীকে অবশ্যই অনুমতি দিতে হবে।আপনি ফোরগ্রাউন্ড পরিষেবা তৈরি করার পরে, আপনি
MediaProjectionManager.getMediaProjection()
কল করতে পারেন।- বর্ণনা
MediaProjection
APIs ব্যবহার করে নন-প্রাথমিক ডিসপ্লে বা বাহ্যিক ডিভাইসে প্রজেক্ট কন্টেন্ট। এই বিষয়বস্তু একচেটিয়াভাবে মিডিয়া বিষয়বস্তু হতে হবে না.- বিকল্প
অন্য ডিভাইসে মিডিয়া স্ট্রিম করতে, Google Cast SDK ব্যবহার করুন৷
মাইক্রোফোন
- ফোরগ্রাউন্ড পরিষেবার ধরন যা ম্যানিফেস্টের অধীনে ঘোষণা করতে হবে
-
android:foregroundServiceType
-
microphone
- আপনার ম্যানিফেস্টে ঘোষণা করার অনুমতি
-
FOREGROUND_SERVICE_MICROPHONE
-
startForeground()
এ পাস করার জন্য ধ্রুবক -
FOREGROUND_SERVICE_TYPE_MICROPHONE
- রানটাইম পূর্বশর্ত
অনুরোধ করুন এবং
RECORD_AUDIO
রানটাইম অনুমতি মঞ্জুর করুন৷- বর্ণনা
পটভূমি থেকে মাইক্রোফোন ক্যাপচার চালিয়ে যান, যেমন ভয়েস রেকর্ডার বা যোগাযোগ অ্যাপ।
- ফোরগ্রাউন্ড পরিষেবার ধরন যা ম্যানিফেস্টের অধীনে ঘোষণা করতে হবে
-
android:foregroundServiceType
-
microphone
- আপনার ম্যানিফেস্টে ঘোষণা করার অনুমতি
-
FOREGROUND_SERVICE_MICROPHONE
-
startForeground()
এ পাস করার জন্য ধ্রুবক -
FOREGROUND_SERVICE_TYPE_MICROPHONE
- রানটাইম পূর্বশর্ত
অনুরোধ করুন এবং
RECORD_AUDIO
রানটাইম অনুমতি মঞ্জুর করুন৷- বর্ণনা
পটভূমি থেকে মাইক্রোফোন ক্যাপচার চালিয়ে যান, যেমন ভয়েস রেকর্ডার বা যোগাযোগ অ্যাপ।
- ফোরগ্রাউন্ড পরিষেবার ধরন যা ম্যানিফেস্টের অধীনে ঘোষণা করতে হবে
-
android:foregroundServiceType
-
microphone
- আপনার ম্যানিফেস্টে ঘোষণা করার অনুমতি
-
FOREGROUND_SERVICE_MICROPHONE
-
startForeground()
এ পাস করার জন্য ধ্রুবক -
FOREGROUND_SERVICE_TYPE_MICROPHONE
- রানটাইম পূর্বশর্ত
অনুরোধ করুন এবং
RECORD_AUDIO
রানটাইম অনুমতি মঞ্জুর করুন৷- বর্ণনা
পটভূমি থেকে মাইক্রোফোন ক্যাপচার চালিয়ে যান, যেমন ভয়েস রেকর্ডার বা যোগাযোগ অ্যাপ।
ফোন কল
- ফোরগ্রাউন্ড সার্ভিস টাইপ যা ম্যানিফেস্টের অধীনে ঘোষণা করতে হবে
-
android:foregroundServiceType
-
phoneCall
- আপনার ম্যানিফেস্টে ঘোষণা করার অনুমতি
-
FOREGROUND_SERVICE_PHONE_CALL
-
startForeground()
এ পাস করার জন্য ধ্রুবক -
FOREGROUND_SERVICE_TYPE_PHONE_CALL
- রানটাইম পূর্বশর্ত
এই শর্তগুলির মধ্যে অন্তত একটি সত্য হতে হবে:
- অ্যাপ তার ম্যানিফেস্ট ফাইলে
MANAGE_OWN_CALLS
অনুমতি ঘোষণা করেছে।
- অ্যাপ তার ম্যানিফেস্ট ফাইলে
- অ্যাপ হল
ROLE_DIALER
ভূমিকার মাধ্যমে ডিফল্ট ডায়ালার অ্যাপ।
- অ্যাপ হল
- বর্ণনা
ConnectionService
API ব্যবহার করে একটি চলমান কল চালিয়ে যান।- বিকল্প
আপনার যদি ফোন, ভিডিও বা ভিওআইপি কল করার প্রয়োজন হয়, তাহলে
android.telecom
লাইব্রেরি ব্যবহার করার কথা বিবেচনা করুন।কল স্ক্রিন করতে
CallScreeningService
ব্যবহার করার কথা বিবেচনা করুন।
- ফোরগ্রাউন্ড সার্ভিস টাইপ যা ম্যানিফেস্টের অধীনে ঘোষণা করতে হবে
-
android:foregroundServiceType
-
phoneCall
- আপনার ম্যানিফেস্টে ঘোষণা করার অনুমতি
-
FOREGROUND_SERVICE_PHONE_CALL
-
startForeground()
এ পাস করার জন্য ধ্রুবক -
FOREGROUND_SERVICE_TYPE_PHONE_CALL
- রানটাইম পূর্বশর্ত
এই শর্তগুলির মধ্যে অন্তত একটি সত্য হতে হবে:
- অ্যাপ তার ম্যানিফেস্ট ফাইলে
MANAGE_OWN_CALLS
অনুমতি ঘোষণা করেছে।
- অ্যাপ তার ম্যানিফেস্ট ফাইলে
- অ্যাপ হল
ROLE_DIALER
ভূমিকার মাধ্যমে ডিফল্ট ডায়ালার অ্যাপ।
- অ্যাপ হল
- বর্ণনা
ConnectionService
API ব্যবহার করে একটি চলমান কল চালিয়ে যান।- বিকল্প
আপনার যদি ফোন, ভিডিও বা ভিওআইপি কল করার প্রয়োজন হয়, তাহলে
android.telecom
লাইব্রেরি ব্যবহার করার কথা বিবেচনা করুন।কল স্ক্রিন করতে
CallScreeningService
ব্যবহার করার কথা বিবেচনা করুন।
রিমোট মেসেজিং
- ফোরগ্রাউন্ড সার্ভিস টাইপ যা ম্যানিফেস্টের অধীনে ঘোষণা করতে হবে
-
android:foregroundServiceType
-
remoteMessaging
- আপনার ম্যানিফেস্টে ঘোষণা করার অনুমতি
-
FOREGROUND_SERVICE_REMOTE_MESSAGING
-
startForeground()
এ পাস করার জন্য ধ্রুবক -
FOREGROUND_SERVICE_TYPE_REMOTE_MESSAGING
- রানটাইম পূর্বশর্ত
- কোনোটিই নয়
- বর্ণনা
- এক ডিভাইস থেকে অন্য ডিভাইসে পাঠ্য বার্তা স্থানান্তর করুন। কোনো ব্যবহারকারীর মেসেজিং কাজের ধারাবাহিকতায় সহায়তা করে যখন তারা ডিভাইসগুলি পরিবর্তন করে।
সংক্ষিপ্ত পরিষেবা
- ফোরগ্রাউন্ড সার্ভিস টাইপ যা ম্যানিফেস্টের অধীনে ঘোষণা করতে হবে
-
android:foregroundServiceType
-
shortService
- আপনার ম্যানিফেস্টে ঘোষণা করার অনুমতি
- কোনোটিই নয়
-
startForeground()
এ পাস করার জন্য ধ্রুবক -
FOREGROUND_SERVICE_TYPE_SHORT_SERVICE
- রানটাইম পূর্বশর্ত
- কোনোটিই নয়
- বর্ণনা
জটিল কাজ দ্রুত শেষ করুন যা বাধা বা স্থগিত করা যাবে না।
এই ধরনের কিছু অনন্য বৈশিষ্ট্য আছে:
- শুধুমাত্র অল্প সময়ের জন্য চলতে পারে (প্রায় 3 মিনিট)।
- স্টিকি ফোরগ্রাউন্ড পরিষেবাগুলির জন্য কোনও সমর্থন নেই।
- অন্যান্য ফোরগ্রাউন্ড পরিষেবাগুলি শুরু করতে পারে না৷
- টাইপ-নির্দিষ্ট অনুমতির প্রয়োজন হয় না, যদিও এটির জন্য এখনও
FOREGROUND_SERVICE
অনুমতি প্রয়োজন৷ - একটি
shortService
শুধুমাত্র অন্য পরিষেবার প্রকারে পরিবর্তন করতে পারে যদি অ্যাপটি বর্তমানে একটি নতুন ফোরগ্রাউন্ড পরিষেবা শুরু করার যোগ্য হয়৷ - একটি ফোরগ্রাউন্ড পরিষেবা যে কোনও সময় তার ধরনকে
shortService
পরিবর্তন করতে পারে, যে সময়ে টাইমআউট পিরিয়ড শুরু হয়।
Service.startForeground()
বলা হওয়ার মুহুর্ত থেকে শর্টসার্ভিসের সময়সীমা শুরু হয়। সময় শেষ হওয়ার আগে অ্যাপটিService.stopSelf()
বাService.stopForeground()
কল করবে বলে আশা করা হচ্ছে। অন্যথায়, নতুনService.onTimeout()
কল করা হবে, অ্যাপগুলিকে তাদের পরিষেবা বন্ধ করতেstopSelf()
বাstopForeground()
কল করার একটি সংক্ষিপ্ত সুযোগ দেয়৷Service.onTimeout()
কল করার অল্প সময়ের পরে, অ্যাপটি একটি ক্যাশড অবস্থায় প্রবেশ করে এবং ব্যবহারকারী অ্যাপের সাথে সক্রিয়ভাবে ইন্টারঅ্যাক্ট না করা পর্যন্ত এটিকে আর অগ্রভাগে বিবেচনা করা হয় না। অ্যাপটি ক্যাশ করার কিছুক্ষণ পরে এবং পরিষেবা বন্ধ না হলে, অ্যাপটি একটি ANR পায়। ANR বার্তাটিFOREGROUND_SERVICE_TYPE_SHORT_SERVICE
উল্লেখ করেছে। এই কারণগুলির জন্য,Service.onTimeout()
কলব্যাক বাস্তবায়ন করা সর্বোত্তম অনুশীলন হিসাবে বিবেচিত হয়৷Service.onTimeout()
কলব্যাক Android 13 এবং তার নিচের সংস্করণে বিদ্যমান নেই। যদি একই পরিষেবা এই জাতীয় ডিভাইসগুলিতে চলে, তবে এটি একটি টাইমআউট পায় না এবং এটি ANRও করে না। নিশ্চিত করুন যে আপনার পরিষেবাটি প্রক্রিয়াকরণের কাজ শেষ করার সাথে সাথেই বন্ধ হয়ে যায়, এমনকি যদি এটি এখনওService.onTimeout()
কলব্যাক না পায়।এটা মনে রাখা গুরুত্বপূর্ণ যে যদি
shortService
টাইমআউটকে সম্মান না করা হয়, তাহলে অ্যাপটি ANR করবে এমনকি এটির অন্যান্য বৈধ অগ্রভাগের পরিষেবা বা অন্যান্য অ্যাপ লাইফসাইকেল প্রক্রিয়া চলমান থাকলেও।যদি কোনও অ্যাপ ব্যবহারকারীর কাছে দৃশ্যমান হয় বা ফোরগ্রাউন্ড পরিষেবাগুলিকে ব্যাকগ্রাউন্ড থেকে শুরু করার অনুমতি দেয় এমন ছাড়গুলির মধ্যে একটিকে সন্তুষ্ট করে, তাহলে
FOREGROUND_SERVICE_TYPE_SHORT_SERVICE
প্যারামিটারের সাথে আবারService.StartForeground()
কল করলে সময়সীমা আরও 3 মিনিট বৃদ্ধি করে৷ অ্যাপটি ব্যবহারকারীর কাছে দৃশ্যমান না হলে এবং ছাড়গুলির একটিকে সন্তুষ্ট না করলে, ধরন নির্বিশেষে অন্য ফোরগ্রাউন্ড পরিষেবা শুরু করার যে কোনও প্রচেষ্টা একটিForegroundServiceStartNotAllowedException
সৃষ্টি করে৷যদি কোনও ব্যবহারকারী আপনার অ্যাপের জন্য ব্যাটারি অপ্টিমাইজেশান অক্ষম করে, তবে এটি এখনও শর্টসার্ভিস FGS-এর টাইমআউট দ্বারা প্রভাবিত হয়।
আপনি যদি একটি ফোরগ্রাউন্ড পরিষেবা শুরু করেন যাতে
shortService
টাইপ এবং অন্য ফোরগ্রাউন্ড পরিষেবার ধরন অন্তর্ভুক্ত থাকে, তবে সিস্টেমটিshortService
টাইপ ঘোষণা উপেক্ষা করে। যাইহোক, পরিষেবাটিকে এখনও অন্যান্য ঘোষিত প্রকারের পূর্বশর্তগুলি মেনে চলতে হবে। আরও তথ্যের জন্য, ফোরগ্রাউন্ড পরিষেবার ডকুমেন্টেশন দেখুন।
বিশেষ ব্যবহার
- ফোরগ্রাউন্ড সার্ভিস টাইপ যা ম্যানিফেস্টের অধীনে ঘোষণা করতে হবে
-
android:foregroundServiceType
-
specialUse
- আপনার ম্যানিফেস্টে ঘোষণা করার অনুমতি
-
FOREGROUND_SERVICE_SPECIAL_USE
-
startForeground()
এ পাস করার জন্য ধ্রুবক -
FOREGROUND_SERVICE_TYPE_SPECIAL_USE
- রানটাইম পূর্বশর্ত
- কোনোটিই নয়
- বর্ণনা
যেকোন বৈধ ফোরগ্রাউন্ড পরিষেবা ব্যবহারের ক্ষেত্রে কভার করে যা অন্যান্য ফোরগ্রাউন্ড পরিষেবার ধরন দ্বারা কভার করা হয় না।
FOREGROUND_SERVICE_TYPE_SPECIAL_USE
ফোরগ্রাউন্ড পরিষেবার ধরন ঘোষণা করার পাশাপাশি, বিকাশকারীদের ম্যানিফেস্টে ব্যবহারের কেসগুলি ঘোষণা করা উচিত৷ এটি করার জন্য, তারা<service>
উপাদানের মধ্যে<property>
উপাদানটি নির্দিষ্ট করে। আপনি যখন Google Play Console-এ আপনার অ্যাপ জমা দেন তখন এই মানগুলি এবং সংশ্লিষ্ট ব্যবহারের ক্ষেত্রে পর্যালোচনা করা হয়। আপনি যে ব্যবহারের ক্ষেত্রেগুলি প্রদান করেন তা ফ্রি-ফর্ম, এবং আপনাকে পর্যাপ্ত তথ্য প্রদানের বিষয়টি নিশ্চিত করতে হবে যাতে পর্যালোচক দেখতে পান কেন আপনাকেspecialUse
টাইপ ব্যবহার করতে হবে।<service android:name="fooService" android:foregroundServiceType="specialUse"> <property android:name="android.app.PROPERTY_SPECIAL_USE_FGS_SUBTYPE" android:value="explanation_for_special_use"/> </service>
সিস্টেম অব্যাহতি
- ফোরগ্রাউন্ড সার্ভিস টাইপ যা ম্যানিফেস্টের অধীনে ঘোষণা করতে হবে
-
android:foregroundServiceType
-
systemExempted
- আপনার ম্যানিফেস্টে ঘোষণা করার অনুমতি
-
FOREGROUND_SERVICE_SYSTEM_EXEMPTED
-
startForeground()
এ পাস করার জন্য ধ্রুবক -
FOREGROUND_SERVICE_TYPE_SYSTEM_EXEMPTED
- রানটাইম পূর্বশর্ত
- কোনোটিই নয়
- বর্ণনা
ফোরগ্রাউন্ড পরিষেবাগুলি ব্যবহার করা চালিয়ে যাওয়ার জন্য সিস্টেম অ্যাপ্লিকেশন এবং নির্দিষ্ট সিস্টেম ইন্টিগ্রেশনের জন্য সংরক্ষিত।
এই ধরনের ব্যবহার করার জন্য, একটি অ্যাপকে অবশ্যই নিম্নলিখিত মানদণ্ডগুলির মধ্যে একটি পূরণ করতে হবে:
- ডিভাইস ডেমো মোড অবস্থায় আছে
- অ্যাপটি একটি ডিভাইসের মালিক
- অ্যাপ একজন প্রোফাইলার মালিক
-
ROLE_EMERGENCY
ভূমিকা আছে এমন নিরাপত্তা অ্যাপ - ডিভাইস অ্যাডমিন অ্যাপস
-
SCHEDULE_EXACT_ALARM
বাUSE_EXACT_ALARM
অনুমতি ধারণ করা অ্যাপ ভিপিএন অ্যাপস ( সেটিংস > নেটওয়ার্ক এবং ইন্টারনেট > ভিপিএন ব্যবহার করে কনফিগার করা হয়েছে)
অন্যথায়, এই ধরনের ঘোষণা করার ফলে সিস্টেম একটি
ForegroundServiceTypeNotAllowedException
নিক্ষেপ করে।
ফোরগ্রাউন্ড পরিষেবার প্রকারগুলি ব্যবহার করার জন্য Google Play নীতি প্রয়োগ
যদি আপনার অ্যাপটি Android 14 বা তার উচ্চতরকে টার্গেট করে, তাহলে আপনাকে Play Console-এর অ্যাপ কন্টেন্ট পৃষ্ঠায় ( নীতি > অ্যাপ সামগ্রী ) আপনার অ্যাপের ফোরগ্রাউন্ড পরিষেবার ধরন ঘোষণা করতে হবে। Play Console-এ আপনার ফোরগ্রাউন্ড পরিষেবার প্রকারগুলি কীভাবে ঘোষণা করবেন সে সম্পর্কে আরও তথ্যের জন্য, ফোরগ্রাউন্ড পরিষেবা এবং পূর্ণ-স্ক্রীনের অভিপ্রায়ের প্রয়োজনীয়তা বোঝা দেখুন।