পটভূমি অবস্থান সীমা

পাওয়ার খরচ কমানোর প্রয়াসে, Android 8.0 (API লেভেল 26) ব্যাকগ্রাউন্ডে অ্যাপটি চলাকালীন একটি অ্যাপ কত ঘন ঘন ব্যবহারকারীর বর্তমান অবস্থান পুনরুদ্ধার করতে পারে তা সীমিত করে। এই শর্তগুলির অধীনে, অ্যাপগুলি প্রতি ঘন্টায় মাত্র কয়েকবার লোকেশন আপডেট পেতে পারে।

দ্রষ্টব্য: এই সীমাবদ্ধতাগুলি Android 8.0 (API স্তর 26) বা উচ্চতর চলমান ডিভাইসগুলিতে ব্যবহৃত সমস্ত অ্যাপের ক্ষেত্রে প্রযোজ্য, একটি অ্যাপের টার্গেট SDK সংস্করণ নির্বিশেষে

ব্যাকগ্রাউন্ডে চলার সময় আপনার অ্যাপ রিয়েল-টাইম সতর্কতা বা গতি সনাক্তকরণের উপর নির্ভর করে কিনা এই অবস্থান পুনরুদ্ধারের আচরণটি মনে রাখা বিশেষভাবে গুরুত্বপূর্ণ।

ফোরগ্রাউন্ড অ্যাপ্লিকেশন আচরণ সংরক্ষিত হয়

যদি Android 8.0 (API লেভেল 26) চালিত একটি ডিভাইসে একটি অ্যাপ অগ্রভাগে থাকে, তাহলে লোকেশন আপডেট আচরণটি Android 7.1.1 (API লেভেল 25) এবং তার নিচের মতই হবে।

সতর্কতা: যদি আপনার অ্যাপটি দীর্ঘ সময়ের মধ্যে রিয়েল-টাইম অবস্থান আপডেটের কাছাকাছি পুনরুদ্ধার করে, তাহলে ডিভাইসের ব্যাটারির আয়ু উল্লেখযোগ্যভাবে ছোট হয়ে যায়।

আপনার অ্যাপের অবস্থানের আচরণ টিউন করা হচ্ছে

আপনার অ্যাপ যদি কদাচিৎ লোকেশন আপডেট পায় তাহলে ব্যাকগ্রাউন্ডে চলার জন্য আপনার অ্যাপের ব্যবহারের কেস আদৌ সফল হতে পারে কিনা তা বিবেচনা করুন। যদি এটি হয়, আপনি নিম্নলিখিত ক্রিয়াগুলির মধ্যে একটি সম্পাদন করে আরও ঘন ঘন অবস্থান আপডেটগুলি পুনরুদ্ধার করতে পারেন:

  • আপনার অ্যাপটিকে অগ্রভাগে নিয়ে আসুন।
  • startForegroundService() কল করে আপনার অ্যাপে একটি ফোরগ্রাউন্ড পরিষেবা শুরু করুন। যখন এই ধরনের একটি অগ্রভাগের পরিষেবা সক্রিয় থাকে, তখন এটি বিজ্ঞপ্তি এলাকায় একটি চলমান বিজ্ঞপ্তি হিসাবে প্রদর্শিত হয়।

    সতর্কতা: আপনার অ্যাপ যদি Android 11 (API লেভেল 30) বা তার বেশি চালিত ডিভাইসে ব্যাকগ্রাউন্ডে চলাকালীন একটি ফোরগ্রাউন্ড পরিষেবা শুরু করে, তাহলে ব্যবহারকারী আপনার অ্যাপে ACCESS_BACKGROUND_LOCATION অনুমতি না দিলে আপনার অ্যাপ লোকেশনের তথ্য অ্যাক্সেস করতে পারবে না। আরও তথ্যের জন্য, ফোরগ্রাউন্ড পরিষেবাগুলির সাথে যুক্ত ব্যবহারের সময় বিধিনিষেধ সম্পর্কে নির্দেশিকা দেখুন।

  • Geofencing API-এর উপাদানগুলি ব্যবহার করুন, যেমন GeofencingClient , যা পাওয়ার ব্যবহার কমানোর জন্য অপ্টিমাইজ করা হয়েছে৷
  • একটি প্যাসিভ লোকেশন লিসেনার ব্যবহার করুন, যেটি দ্রুত লোকেশন আপডেট পেতে পারে যদি ফোরগ্রাউন্ড অ্যাপ্লিকেশানগুলি দ্রুত হারে অবস্থান আপডেটের অনুরোধ করে।

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

প্রভাবিত APIs

ব্যাকগ্রাউন্ড অ্যাপ্লিকেশানগুলিতে অবস্থান পুনরুদ্ধার আচরণের পরিবর্তনগুলি নিম্নলিখিত APIগুলিকে প্রভাবিত করে:

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

    FLP-এর ব্যাচ করা সংস্করণ ব্যবহার করে, তবে, আপনার অ্যাপটি একটি ব্যাচ আপডেট পাওয়ার পরে আপনার আরও বেশি সময়-ঘনঘন অবস্থানের ইতিহাসে অ্যাক্সেস রয়েছে, যা প্রতি ঘন্টায় মাত্র কয়েকবার ঘটে।

  • যদি আপনার অ্যাপটি ফোরগ্রাউন্ডে চলছে, তাহলে Android 7.1.1 (API লেভেল 25) এর তুলনায় অবস্থানের স্যাম্পলিং রেটগুলিতে কোনও পরিবর্তন নেই৷
জিওফেন্সিং
  • ব্যাকগ্রাউন্ড অ্যাপগুলি ফিউজড লোকেশন প্রোভাইডার থেকে আপডেটের চেয়ে বেশি ঘন ঘন জিওফেন্সিং ট্রানজিশন ইভেন্টগুলি পেতে পারে।
  • একটি জিওফেন্সিং ইভেন্টের জন্য গড় প্রতিক্রিয়াশীলতা প্রতি কয়েক মিনিট বা তার বেশি।
GNSS পরিমাপ এবং GNSS নেভিগেশন বার্তা
  • যখন আপনার অ্যাপ ব্যাকগ্রাউন্ডে থাকে, GnssMeasurement এবং GnssNavigationMessage থেকে আউটপুট পাওয়ার জন্য নিবন্ধিত কলব্যাকগুলি কার্যকর করা বন্ধ করে দেয়।
অবস্থান ব্যবস্থাপক
  • ব্যাকগ্রাউন্ড অ্যাপে প্রতি ঘণ্টায় মাত্র কয়েকবার লোকেশন আপডেট দেওয়া হয়।

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

ওয়াই-ফাই ম্যানেজার
startScan() পদ্ধতিটি প্রতি ঘন্টায় মাত্র কয়েকবার ব্যাকগ্রাউন্ড অ্যাপগুলির জন্য একটি সম্পূর্ণ স্ক্যান করে। যদি কোনো ব্যাকগ্রাউন্ড অ্যাপ শীঘ্রই পদ্ধতিটিকে আবার কল করে, WifiManager ক্লাস পূর্ববর্তী স্ক্যান থেকে ক্যাশে ফলাফল প্রদান করে।