পটভূমি থেকে একটি ফোরগ্রাউন্ড পরিষেবা শুরু করার উপর নিষেধাজ্ঞা

যে অ্যাপগুলি Android 12 (API লেভেল 31) বা উচ্চতর টার্গেট করে সেগুলি কয়েকটি বিশেষ ক্ষেত্রে ছাড়া অ্যাপটি ব্যাকগ্রাউন্ডে চলাকালীন ফোরগ্রাউন্ড পরিষেবা শুরু করতে পারে না। অ্যাপটি ব্যাকগ্রাউন্ডে চলার সময় যদি কোনও অ্যাপ একটি ফোরগ্রাউন্ড পরিষেবা শুরু করার চেষ্টা করে এবং ফোরগ্রাউন্ড পরিষেবা ব্যতিক্রমী ক্ষেত্রেগুলির একটিকে সন্তুষ্ট না করে, সিস্টেমটি একটি ForegroundServiceStartNotAllowedException নিক্ষেপ করে।

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

ব্যাকগ্রাউন্ড শুরু সীমাবদ্ধতা থেকে ছাড়

নিম্নলিখিত পরিস্থিতিতে, আপনার অ্যাপ ব্যাকগ্রাউন্ডে চলার সময়ও ফোরগ্রাউন্ড পরিষেবা শুরু করতে পারে:

  • আপনার অ্যাপ্লিকেশান একটি ব্যবহারকারী-দৃশ্যমান অবস্থা থেকে রূপান্তরিত হয়, যেমন একটি কার্যকলাপ
  • আপনার অ্যাপটি ব্যাকগ্রাউন্ড থেকে একটি ক্রিয়াকলাপ শুরু করতে পারে, সেই ক্ষেত্রে ব্যতীত যেখানে অ্যাপটির একটি বিদ্যমান টাস্কের ব্যাক স্ট্যাকে একটি কার্যকলাপ রয়েছে৷
  • আপনার অ্যাপ Firebase ক্লাউড মেসেজিং ব্যবহার করে একটি উচ্চ অগ্রাধিকার বার্তা পায়।

  • ব্যবহারকারী আপনার অ্যাপের সাথে সম্পর্কিত একটি UI উপাদানে একটি ক্রিয়া সম্পাদন করে। উদাহরণস্বরূপ, তারা একটি বুদবুদ , বিজ্ঞপ্তি , উইজেট বা কার্যকলাপের সাথে যোগাযোগ করতে পারে।

  • ব্যবহারকারীর অনুরোধ করা একটি ক্রিয়া সম্পূর্ণ করতে আপনার অ্যাপটি একটি সঠিক অ্যালার্ম আহ্বান করে৷

  • আপনার অ্যাপ হল ডিভাইসের বর্তমান ইনপুট পদ্ধতি

  • আপনার অ্যাপ এমন একটি ইভেন্ট পায় যা জিওফেন্সিং বা কার্যকলাপ স্বীকৃতি পরিবর্তনের সাথে সম্পর্কিত।

  • ডিভাইসটি রিবুট হওয়ার পরে এবং একটি সম্প্রচার রিসিভারে ACTION_BOOT_COMPLETED , ACTION_LOCKED_BOOT_COMPLETED , বা ACTION_MY_PACKAGE_REPLACED অভিপ্রায় প্রাপ্তির পরে৷

  • আপনার অ্যাপটি একটি সম্প্রচার রিসিভারে ACTION_TIMEZONE_CHANGED , ACTION_TIME_CHANGED , বা ACTION_LOCALE_CHANGED অভিপ্রায় ক্রিয়া পায়৷

  • আপনার অ্যাপটি NfcService থেকে ACTION_TRANSACTION_DETECTED ইভেন্ট পায়।

  • নির্দিষ্ট সিস্টেমের ভূমিকা বা অনুমতি সহ অ্যাপ, যেমন ডিভাইস মালিক এবং প্রোফাইল মালিক

  • আপনার অ্যাপ কম্প্যানিয়ন ডিভাইস ম্যানেজার ব্যবহার করে এবং REQUEST_COMPANION_START_FOREGROUND_SERVICES_FROM_BACKGROUND অনুমতি বা REQUEST_COMPANION_RUN_IN_BACKGROUND অনুমতি ঘোষণা করে। যখনই সম্ভব, REQUEST_COMPANION_START_FOREGROUND_SERVICES_FROM_BACKGROUND ব্যবহার করুন।

  • ব্যবহারকারী আপনার অ্যাপের জন্য ব্যাটারি অপ্টিমাইজেশন বন্ধ করে দেয়।

  • আপনার অ্যাপে SYSTEM_ALERT_WINDOW অনুমতি রয়েছে। দ্রষ্টব্য: যদি আপনার অ্যাপটি Android 15 বা উচ্চতরকে টার্গেট করে, তবে এটির অবশ্যই SYSTEM_ALERT_WINDOW অনুমতি থাকতে হবে এবং অ্যাপটির বর্তমানে একটি দৃশ্যমান ওভারলে উইন্ডো থাকতে হবে।

ফোরগ্রাউন্ড পরিষেবাগুলি শুরু করার উপর নিষেধাজ্ঞা যা ব্যবহারের সময় অনুমতির প্রয়োজন৷

অ্যান্ড্রয়েড 14 (এপিআই লেভেল 34) বা উচ্চতর ক্ষেত্রে, আপনি একটি ফোরগ্রাউন্ড পরিষেবা শুরু করছেন কিনা সে সম্পর্কে সচেতন হওয়ার জন্য বিশেষ পরিস্থিতি রয়েছে যার ব্যবহারের সময় অনুমতি প্রয়োজন৷

যদি আপনার অ্যাপটি Android 14 বা উচ্চতরকে টার্গেট করে, তাহলে অপারেটিং সিস্টেম চেক করে যে আপনি কখন একটি ফোরগ্রাউন্ড পরিষেবা তৈরি করেন তা নিশ্চিত করতে আপনার অ্যাপে সেই পরিষেবার প্রকারের জন্য সমস্ত উপযুক্ত অনুমতি রয়েছে। উদাহরণস্বরূপ, আপনি যখন মাইক্রোফোন টাইপের একটি অগ্রভাগের পরিষেবা তৈরি করেন, তখন অপারেটিং সিস্টেম যাচাই করে যে আপনার অ্যাপটির বর্তমানে RECORD_AUDIO অনুমতি রয়েছে৷ আপনার কাছে সেই অনুমতি না থাকলে, সিস্টেমটি একটি SecurityException নিক্ষেপ করে।

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

একইভাবে, যদি আপনার অ্যাপটি ব্যাকগ্রাউন্ডে থাকে এবং এটি এমন একটি স্বাস্থ্য পরিষেবা তৈরি করে যার জন্য BODY_SENSORS অনুমতি প্রয়োজন, অ্যাপটির বর্তমানে সেই অনুমতি নেই, এবং সিস্টেমটি একটি ব্যতিক্রম ছুঁড়েছে৷ (এটি প্রযোজ্য নয় যদি এটি একটি স্বাস্থ্য পরিষেবা হয় যার জন্য বিভিন্ন অনুমতির প্রয়োজন হয়, যেমন ACTIVITY_RECOGNITION ।) PermissionChecker.checkSelfPermission() কল করা এই সমস্যাটিকে প্রতিরোধ করে না । যদি আপনার অ্যাপটির ব্যবহারের সময় অনুমতি থাকে এবং এটি সেই অনুমতি আছে কিনা তা পরীক্ষা করার জন্য এটি checkSelfPermission() কল করে, অ্যাপটি ব্যাকগ্রাউন্ডে থাকলেও পদ্ধতিটি PERMISSION_GRANTED প্রদান করে। যখন পদ্ধতিটি PERMISSION_GRANTED ফেরত দেয়, তখন এটি বলছে " অ্যাপ্লিকেশানটি ব্যবহার করার সময় আপনার অ্যাপটিতে এই অনুমতি রয়েছে।"

এই কারণে, যদি আপনার ফোরগ্রাউন্ড পরিষেবাটি ব্যবহারের সময় অনুমতির প্রয়োজন হয়, তাহলে আপনাকে অবশ্যই Context.startForegroundService() বা Context.bindService() কল করতে হবে যখন আপনার অ্যাপের একটি দৃশ্যমান কার্যকলাপ রয়েছে, যদি না পরিষেবাটি সংজ্ঞায়িত ছাড়গুলির মধ্যে একটির মধ্যে পড়ে৷

ব্যবহারের সময় অনুমতির উপর বিধিনিষেধ থেকে ছাড়

কিছু পরিস্থিতিতে, এমনকি যদি অ্যাপটি ব্যাকগ্রাউন্ডে চলার সময় একটি ফোরগ্রাউন্ড পরিষেবা চালু করা হয়, তবুও অ্যাপটি ফোরগ্রাউন্ডে চলাকালীন ("ব্যবহারের সময়") অবস্থান, ক্যামেরা এবং মাইক্রোফোন তথ্য অ্যাক্সেস করতে পারে।

এই একই পরিস্থিতিতে, যদি পরিষেবাটি ফোরগ্রাউন্ড পরিষেবার প্রকারের location ঘোষণা করে এবং ACCESS_BACKGROUND_LOCATION অনুমতি আছে এমন একটি অ্যাপ দ্বারা শুরু করা হয়, এই পরিষেবাটি সর্বদা অবস্থানের তথ্য অ্যাক্সেস করতে পারে, এমনকি যখন অ্যাপটি ব্যাকগ্রাউন্ডে চলে তখনও৷

নিম্নলিখিত তালিকায় এই পরিস্থিতি রয়েছে:

  • একটি সিস্টেম উপাদান পরিষেবা শুরু করে।
  • অ্যাপ উইজেটগুলির সাথে ইন্টারঅ্যাক্টের মাধ্যমে পরিষেবাটি শুরু হয়৷
  • পরিষেবাটি একটি বিজ্ঞপ্তির সাথে ইন্টারঅ্যাক্ট করে শুরু হয়।
  • পরিষেবাটি একটি PendingIntent হিসাবে শুরু হয় যা একটি ভিন্ন, দৃশ্যমান অ্যাপ থেকে পাঠানো হয়।
  • পরিষেবাটি একটি অ্যাপ দ্বারা শুরু হয় যা একটি ডিভাইস নীতি নিয়ন্ত্রক যা ডিভাইস মালিক মোডে চলে৷
  • পরিষেবাটি একটি অ্যাপের মাধ্যমে শুরু হয় যা VoiceInteractionService প্রদান করে।
  • পরিষেবাটি একটি অ্যাপ দ্বারা শুরু হয় যার START_ACTIVITIES_FROM_BACKGROUND বিশেষাধিকারপ্রাপ্ত অনুমতি রয়েছে৷

আপনার অ্যাপে কোন পরিষেবাগুলি প্রভাবিত হয়েছে তা নির্ধারণ করুন

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

Foreground service started from background can not have \
location/camera/microphone access: service SERVICE_NAME
,

যে অ্যাপগুলি Android 12 (API লেভেল 31) বা উচ্চতর টার্গেট করে সেগুলি কয়েকটি বিশেষ ক্ষেত্রে ছাড়া অ্যাপটি ব্যাকগ্রাউন্ডে চলাকালীন ফোরগ্রাউন্ড পরিষেবা শুরু করতে পারে না। অ্যাপটি ব্যাকগ্রাউন্ডে চলার সময় যদি কোনও অ্যাপ একটি ফোরগ্রাউন্ড পরিষেবা শুরু করার চেষ্টা করে এবং ফোরগ্রাউন্ড পরিষেবা ব্যতিক্রমী ক্ষেত্রেগুলির একটিকে সন্তুষ্ট না করে, সিস্টেমটি একটি ForegroundServiceStartNotAllowedException নিক্ষেপ করে।

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

ব্যাকগ্রাউন্ড শুরু সীমাবদ্ধতা থেকে ছাড়

নিম্নলিখিত পরিস্থিতিতে, আপনার অ্যাপ ব্যাকগ্রাউন্ডে চলার সময়ও ফোরগ্রাউন্ড পরিষেবা শুরু করতে পারে:

  • আপনার অ্যাপ্লিকেশান একটি ব্যবহারকারী-দৃশ্যমান অবস্থা থেকে রূপান্তরিত হয়, যেমন একটি কার্যকলাপ
  • আপনার অ্যাপটি ব্যাকগ্রাউন্ড থেকে একটি ক্রিয়াকলাপ শুরু করতে পারে, সেই ক্ষেত্রে ব্যতীত যেখানে অ্যাপটির একটি বিদ্যমান টাস্কের ব্যাক স্ট্যাকে একটি কার্যকলাপ রয়েছে৷
  • আপনার অ্যাপ Firebase ক্লাউড মেসেজিং ব্যবহার করে একটি উচ্চ অগ্রাধিকার বার্তা পায়।

  • ব্যবহারকারী আপনার অ্যাপের সাথে সম্পর্কিত একটি UI উপাদানে একটি ক্রিয়া সম্পাদন করে। উদাহরণস্বরূপ, তারা একটি বুদবুদ , বিজ্ঞপ্তি , উইজেট বা কার্যকলাপের সাথে যোগাযোগ করতে পারে।

  • ব্যবহারকারীর অনুরোধ করা একটি ক্রিয়া সম্পূর্ণ করতে আপনার অ্যাপটি একটি সঠিক অ্যালার্ম আহ্বান করে৷

  • আপনার অ্যাপ হল ডিভাইসের বর্তমান ইনপুট পদ্ধতি

  • আপনার অ্যাপ এমন একটি ইভেন্ট পায় যা জিওফেন্সিং বা কার্যকলাপ স্বীকৃতি পরিবর্তনের সাথে সম্পর্কিত।

  • ডিভাইসটি রিবুট হওয়ার পরে এবং একটি সম্প্রচার রিসিভারে ACTION_BOOT_COMPLETED , ACTION_LOCKED_BOOT_COMPLETED , বা ACTION_MY_PACKAGE_REPLACED অভিপ্রায় প্রাপ্তির পরে৷

  • আপনার অ্যাপটি একটি সম্প্রচার রিসিভারে ACTION_TIMEZONE_CHANGED , ACTION_TIME_CHANGED , বা ACTION_LOCALE_CHANGED অভিপ্রায় ক্রিয়া পায়৷

  • আপনার অ্যাপটি NfcService থেকে ACTION_TRANSACTION_DETECTED ইভেন্ট পায়।

  • নির্দিষ্ট সিস্টেমের ভূমিকা বা অনুমতি সহ অ্যাপ, যেমন ডিভাইস মালিক এবং প্রোফাইল মালিক

  • আপনার অ্যাপ কম্প্যানিয়ন ডিভাইস ম্যানেজার ব্যবহার করে এবং REQUEST_COMPANION_START_FOREGROUND_SERVICES_FROM_BACKGROUND অনুমতি বা REQUEST_COMPANION_RUN_IN_BACKGROUND অনুমতি ঘোষণা করে। যখনই সম্ভব, REQUEST_COMPANION_START_FOREGROUND_SERVICES_FROM_BACKGROUND ব্যবহার করুন।

  • ব্যবহারকারী আপনার অ্যাপের জন্য ব্যাটারি অপ্টিমাইজেশন বন্ধ করে দেয়।

  • আপনার অ্যাপে SYSTEM_ALERT_WINDOW অনুমতি রয়েছে। দ্রষ্টব্য: যদি আপনার অ্যাপটি Android 15 বা উচ্চতরকে টার্গেট করে, তবে এটির অবশ্যই SYSTEM_ALERT_WINDOW অনুমতি থাকতে হবে এবং অ্যাপটির বর্তমানে একটি দৃশ্যমান ওভারলে উইন্ডো থাকতে হবে।

ফোরগ্রাউন্ড পরিষেবাগুলি শুরু করার উপর নিষেধাজ্ঞা যা ব্যবহারের সময় অনুমতির প্রয়োজন৷

অ্যান্ড্রয়েড 14 (এপিআই লেভেল 34) বা উচ্চতর ক্ষেত্রে, আপনি একটি ফোরগ্রাউন্ড পরিষেবা শুরু করছেন কিনা সে সম্পর্কে সচেতন হওয়ার জন্য বিশেষ পরিস্থিতি রয়েছে যার ব্যবহারের সময় অনুমতি প্রয়োজন৷

যদি আপনার অ্যাপটি Android 14 বা উচ্চতরকে টার্গেট করে, তাহলে অপারেটিং সিস্টেম চেক করে যে আপনি কখন একটি ফোরগ্রাউন্ড পরিষেবা তৈরি করেন তা নিশ্চিত করতে আপনার অ্যাপে সেই পরিষেবার প্রকারের জন্য সমস্ত উপযুক্ত অনুমতি রয়েছে। উদাহরণস্বরূপ, আপনি যখন মাইক্রোফোন টাইপের একটি অগ্রভাগের পরিষেবা তৈরি করেন, তখন অপারেটিং সিস্টেম যাচাই করে যে আপনার অ্যাপটির বর্তমানে RECORD_AUDIO অনুমতি রয়েছে৷ আপনার কাছে সেই অনুমতি না থাকলে, সিস্টেমটি একটি SecurityException নিক্ষেপ করে।

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

একইভাবে, যদি আপনার অ্যাপটি ব্যাকগ্রাউন্ডে থাকে এবং এটি এমন একটি স্বাস্থ্য পরিষেবা তৈরি করে যার জন্য BODY_SENSORS অনুমতি প্রয়োজন, অ্যাপটির বর্তমানে সেই অনুমতি নেই, এবং সিস্টেমটি একটি ব্যতিক্রম ছুঁড়েছে৷ (এটি প্রযোজ্য নয় যদি এটি একটি স্বাস্থ্য পরিষেবা হয় যার জন্য বিভিন্ন অনুমতির প্রয়োজন হয়, যেমন ACTIVITY_RECOGNITION ।) PermissionChecker.checkSelfPermission() কল করা এই সমস্যাটিকে প্রতিরোধ করে না । যদি আপনার অ্যাপটির ব্যবহারের সময় অনুমতি থাকে এবং এটি সেই অনুমতি আছে কিনা তা পরীক্ষা করার জন্য এটি checkSelfPermission() কল করে, অ্যাপটি ব্যাকগ্রাউন্ডে থাকলেও পদ্ধতিটি PERMISSION_GRANTED প্রদান করে। যখন পদ্ধতিটি PERMISSION_GRANTED ফেরত দেয়, তখন এটি বলছে " অ্যাপ্লিকেশানটি ব্যবহার করার সময় আপনার অ্যাপটিতে এই অনুমতি রয়েছে।"

এই কারণে, যদি আপনার ফোরগ্রাউন্ড পরিষেবাটি ব্যবহারের সময় অনুমতির প্রয়োজন হয়, তাহলে আপনাকে অবশ্যই Context.startForegroundService() বা Context.bindService() কল করতে হবে যখন আপনার অ্যাপের একটি দৃশ্যমান কার্যকলাপ রয়েছে, যদি না পরিষেবাটি সংজ্ঞায়িত ছাড়গুলির মধ্যে একটির মধ্যে পড়ে৷

ব্যবহারের সময় অনুমতির উপর বিধিনিষেধ থেকে ছাড়

কিছু পরিস্থিতিতে, এমনকি যদি অ্যাপটি ব্যাকগ্রাউন্ডে চলার সময় একটি ফোরগ্রাউন্ড পরিষেবা চালু করা হয়, তবুও অ্যাপটি ফোরগ্রাউন্ডে চলাকালীন ("ব্যবহারের সময়") অবস্থান, ক্যামেরা এবং মাইক্রোফোন তথ্য অ্যাক্সেস করতে পারে।

এই একই পরিস্থিতিতে, যদি পরিষেবাটি ফোরগ্রাউন্ড পরিষেবার প্রকারের location ঘোষণা করে এবং ACCESS_BACKGROUND_LOCATION অনুমতি আছে এমন একটি অ্যাপ দ্বারা শুরু করা হয়, এই পরিষেবাটি সর্বদা অবস্থানের তথ্য অ্যাক্সেস করতে পারে, এমনকি যখন অ্যাপটি ব্যাকগ্রাউন্ডে চলে তখনও৷

নিম্নলিখিত তালিকায় এই পরিস্থিতি রয়েছে:

  • একটি সিস্টেম উপাদান পরিষেবা শুরু করে।
  • অ্যাপ উইজেটগুলির সাথে ইন্টারঅ্যাক্টের মাধ্যমে পরিষেবাটি শুরু হয়৷
  • পরিষেবাটি একটি বিজ্ঞপ্তির সাথে ইন্টারঅ্যাক্ট করে শুরু হয়।
  • পরিষেবাটি একটি PendingIntent হিসাবে শুরু হয় যা একটি ভিন্ন, দৃশ্যমান অ্যাপ থেকে পাঠানো হয়।
  • পরিষেবাটি একটি অ্যাপ দ্বারা শুরু হয় যা একটি ডিভাইস নীতি নিয়ন্ত্রক যা ডিভাইস মালিক মোডে চলে৷
  • পরিষেবাটি একটি অ্যাপের মাধ্যমে শুরু হয় যা VoiceInteractionService প্রদান করে।
  • পরিষেবাটি একটি অ্যাপ দ্বারা শুরু হয় যার START_ACTIVITIES_FROM_BACKGROUND বিশেষাধিকারপ্রাপ্ত অনুমতি রয়েছে৷

আপনার অ্যাপে কোন পরিষেবাগুলি প্রভাবিত হয়েছে তা নির্ধারণ করুন

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

Foreground service started from background can not have \
location/camera/microphone access: service SERVICE_NAME