অ্যান্ড্রয়েড অটোমোটিভ ওএসে মোটা অবস্থান

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

  • LocationManager API-এর জন্য আপনাকে পছন্দের অবস্থান প্রদানকারীকে স্পষ্টভাবে সনাক্ত করতে requestLocationUpdates ব্যবহার করতে হবে।

  • Google Play services API আপনাকে FusedLocationProviderClient এ অবস্থানের সাথে কাজ করার জন্য আরও সহজ উপায় প্রদান করে।

অনেক অটোমোটিভ অ্যাপ LocationManager এর পরিবর্তে Google Play services API থেকে FLP ব্যবহার করে। FLP গাড়ির জন্য প্রয়োজনীয় অবস্থান অনুরোধের মানদণ্ড এবং নীতিমালা (শক্তি এবং নির্ভুলতা) এর উপর ভিত্তি করে সর্বোত্তম অবস্থান প্রদানকারী নির্বাচন করে।

আপনি পরিবর্তে স্পষ্টভাবে NETWORK_PROVIDER এবং GPS_PROVIDER জন্য অনুরোধ করতে পারেন এবং সূক্ষ্ম অবস্থানের জন্য ব্যবহার করতে পারেন, যা android.permission.ACCESS_FINE_LOCATION অনুমতি ব্যবহার করে। Android 12 (API লেভেল 31) এবং উচ্চতর সংস্করণে, FUSED_PROVIDER , যা পূর্বে শুধুমাত্র Google Play পরিষেবা API এর মাধ্যমে অ্যাক্সেসযোগ্য ছিল, LocationManager এ একটি অবস্থান প্রদানকারী হিসাবে উপলব্ধ। আপনি FusedLocationProvider.java তে FLP এর বাস্তবায়ন দেখতে পারেন।

যদিও শুধুমাত্র মোটা অনুমতির অধিকারের সাথে GPS_PROVIDER ব্যবহার করা সম্ভব - ফ্রেমওয়ার্কটি কৃত্রিমভাবে প্রত্যাশার সাথে সামঞ্জস্যপূর্ণ করার জন্য নির্ভুলতা হ্রাস করে - অ্যান্ড্রয়েড ফোনগুলিকে লক্ষ্য করে ডেভেলপারদের জন্য এটি খুব একটা অর্থবহ নয় কারণ সামগ্রিক প্রাপ্যতা দুর্বল এবং প্রায়শই মোটা অবস্থান পেতে ধীর হয়।

মোটরগাড়িতে নেটওয়ার্ক অবস্থান

অ্যান্ড্রয়েড ফোনে (গুগল মোবাইল সার্ভিসেস সহ) ব্যবহৃত NETWORK_PROVIDER কাছাকাছি সেল টাওয়ার, ওয়াই-ফাই অ্যাক্সেস পয়েন্ট এবং ব্লুটুথ (BT) বীকনের উপর ভিত্তি করে অবস্থান নির্ধারণ করে। ফলস্বরূপ, NETWORK_PROVIDER জন্য একটি ডেটা সংযোগের প্রয়োজন হতে পারে।

অটোমোটিভ অ্যাপের ক্ষেত্রে, ডিভাইসের সীমাবদ্ধতা ভিন্ন। যেহেতু Gthe গ্লোবাল নেভিগেশন স্যাটেলাইট সিস্টেম (GNSS) সাধারণত চালু থাকে, তাই বিদ্যুৎ এবং ব্যাটারি ব্যবহারের কারণে কোনও জরিমানা করা হয় না। ফলস্বরূপ, IVI আপটাইম আপস করা হয় না। আমরা আমাদের সার্ভারের সাথে ডেটা আদান-প্রদান কমানোর চেষ্টা করি।

তাই অনেক অ্যাপ সরাসরি LocationManager এর পরিবর্তে Play API থেকে FLP ব্যবহার করে কারণ FLP স্বয়ংক্রিয়ভাবে লোকেশন রিকোয়েস্টের মানদণ্ড/নীতি (যেমন ক্ষমতা এবং নির্ভুলতা) পূরণ করতে সক্ষম লোকেশন প্রদানকারী ব্যবহার করে স্মার্ট কাজটি করে।

মোবাইল ডিভাইসের বিপরীতে, যানবাহনগুলি খুব কমই এক স্থান থেকে অন্য স্থানে লাফিয়ে লাফিয়ে চলে বলে মনে হয়। গাড়ির অবস্থান বেশিরভাগ সময়ই জানা থাকে।

নেটওয়ার্ক লোকেশন প্রোভাইডার (NLP)

বেশিরভাগ যানবাহনই সেল আইডি (এবং সিগন্যাল শক্তি) সম্পর্কে প্রয়োজনীয় তথ্য পেতে প্রয়োজনীয় টেলিফোনি API প্রয়োগ করে না। ফলস্বরূপ এবং, যেহেতু আমরা ডেটা ব্যবহার কমিয়ে আনি, তাই NLP-এর কোনও অতিরিক্ত কার্যকরী বাস্তবায়ন প্রদান করা হয় না।

ফিউজড লোকেশন প্রোভাইডার

মোবাইল FLP, নেটওয়ার্ক এবং GPS প্রদানকারীদের যথাযথভাবে বুদ্ধিমত্তার সাথে ব্যবহার করার পাশাপাশি, অবস্থানের মান আরও উন্নত করার জন্য অন্যান্য সেন্সর থেকে তথ্য একত্রিত করে। অন্যদিকে, অটোমোটিভের FLP-এর বর্তমান বাস্তবায়ন পূর্বোক্ত অনুমানগুলিকে কাজে লাগায় এবং সর্বদা একটি অন্তর্নিহিত উৎস হিসাবে GPS_PROVIDER ব্যবহার করে। এটি GNSS থেকে অবস্থানগুলিকে নকল করে, প্রয়োজনে আরও ভুল হতে কিছু ত্রুটি যোগ করে। উদাহরণস্বরূপ, যখন কোনও ক্লায়েন্টকে মোটা অবস্থান সরবরাহ করা হয়।

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

মোবাইল এবং অটোমোটিভ ব্যবহার লক্ষ্য করে অ্যাপ ডিজাইন করুন

যেসব মোবাইল এবং অটোমোটিভ ডিভাইসকে টার্গেট করে এমন অ্যাপের জন্য যাদের উচ্চ মানের নির্ভুলতার প্রয়োজন হয় না, শুধুমাত্র android.permission.ACCESS_COARSE_LOCATION অনুরোধ করুন এবং যখন উপলব্ধ থাকবে তখন FLP ব্যবহার করুন। বিকল্পভাবে, একই অনুমতি নিয়ে সরাসরি GPS_PROVIDER ব্যবহার করুন। API প্রত্যাশার সাথে সামঞ্জস্যপূর্ণ করার জন্য ফ্রেমওয়ার্কটি অন্তর্নিহিত GNSS অবস্থানের নির্ভুলতা হ্রাস করে। আরও জানতে, অবস্থান অনুমতি অনুরোধ করুন বিভাগে নির্ভুলতা দেখুন।

এছাড়াও, এই অ্যাপগুলিকে তাদের ম্যানিফেস্টে android.hardware.location.network বৈশিষ্ট্যটিকে ঐচ্ছিক হিসেবে স্পষ্টভাবে ঘোষণা করতে হবে। উদাহরণস্বরূপ:

<uses-feature android:name="android.hardware.location.network" android:required="false" />

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