অ্যান্ড্রয়েড অবস্থান সরবরাহকারী - জিপিএস বা নেটওয়ার্ক সরবরাহকারী?


128

আমার আবেদনে আমি ব্যবহারকারীর বর্তমান অবস্থান নির্ধারণ করতে চাই। তবে এই বিষয়ে আমার কয়েকটি প্রশ্ন রয়েছে:

  1. বিভিন্ন অবস্থান সরবরাহকারী রয়েছে, কোনটি সবচেয়ে নির্ভুল? জিপিএস প্রোভাইডার বা নেটওয়ার্ক প্রদানকারী ?

  2. এই উপলব্ধ সরবরাহকারীর মধ্যে কতদূর পার্থক্য রয়েছে? তারা কীভাবে কাজ করে?

  3. আপনি কি দয়া করে আমার অ্যাপ্লিকেশনটিতে জিপিএস কার্যকারিতা বাস্তবায়নের জন্য কীভাবে কিছু কোড-স্নিপেট বা টিউটোরিয়াল সরবরাহ করতে পারেন?


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

উত্তর:


281

অ্যান্ড্রয়েডে 3 অবস্থান সরবরাহকারী রয়েছে।

তারা হ'ল:

জিপিএস -> (জিপিএস, এজিপিএস): জিপিএস অবস্থান সরবরাহকারীর নাম। এই সরবরাহকারী উপগ্রহ ব্যবহার করে অবস্থান নির্ধারণ করে। অবস্থার উপর নির্ভর করে, এই সরবরাহকারীর কোনও অবস্থানের ফিক্স ফিরে পেতে কিছুটা সময় নিতে পারে। Android.permission.ACCESS_FINE_LOCATION অনুমতি দরকার।

নেটওয়ার্ক -> (এজিপিএস, সেলআইড, ওয়াইফাই ম্যাসিড): নেটওয়ার্ক অবস্থান সরবরাহকারীর নাম। এই সরবরাহকারী সেল টাওয়ার এবং ওয়াইফাই অ্যাক্সেস পয়েন্টগুলির উপলব্ধতার ভিত্তিতে অবস্থান নির্ধারণ করে। নেটওয়ার্ক দেখার জন্য ফলাফলগুলি পুনরুদ্ধার করা হয়। Android.permission.ACCESS_COARSE_LOCATION বা android.permission.ACCESS_FINE_LOCATION এর যে কোনও অনুমতি প্রয়োজন।

প্যাসিভ -> (সেলআইডি, ওয়াইফাই ম্যাকআইডি): কোনও অবস্থানের ফিক্স শুরু না করেই অবস্থানগুলি পাওয়ার জন্য একটি বিশেষ অবস্থান প্রদানকারী। এই অ্যাপ্লিকেশন বা পরিষেবাগুলি নিজেরাই অবস্থানগুলির জন্য অনুরোধ না করে যখন এই অ্যাপ্লিকেশন বা পরিষেবাদিগুলিকে অনুরোধ করে তখন তারা প্যাসিভ লোকেশন আপডেটগুলি গ্রহণ করতে ব্যবহার করা যেতে পারে। এই সরবরাহকারী অন্যান্য সরবরাহকারী দ্বারা উত্পাদিত অবস্থানগুলি ফেরত দেবে। অনুমতি দরকার Android.permission.ACCESS_FINE_LOCATION, যদিও জিপিএস সক্ষম না করা থাকলে এই সরবরাহকারী কেবল মোটা ফিক্সগুলিই ফিরিয়ে দিতে পারে। এটিকে অ্যান্ড্রয়েড এই অবস্থান সরবরাহকারীদের বলছে, তবে, এই স্টাফটিকে কাজ করার জন্য অন্তর্নিহিত প্রযুক্তিগুলি হার্ডওয়্যার এবং টেলকো সরবরাহের সক্ষমতার (নেটওয়ার্ক পরিষেবা) নির্দিষ্ট সেটগুলিতে ম্যাপ করা হয়।

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

এখানে চিত্র বর্ণনা লিখুন

নিবন্ধের উল্লেখ: অ্যান্ড্রয়েড অবস্থান সরবরাহকারী - জিপিএস, নেটওয়ার্ক, প্যাসিভ লিখেছেন নাজমুল ইদ্রিস Id

কোড রেফারেন্স: https://stackoverflow.com/a/3145655/28557

-----------------------হালনাগাদ-----------------------

এখন অ্যান্ড্রয়েডে ফিউজড লোকেশন সরবরাহকারী রয়েছে

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

ফিউজড অবস্থান সরবরাহকারী অবস্থান আনার জন্য তিনটি উপায় সরবরাহ করে

  1. শেষ অবস্থান: আপনি একবারে বর্তমান অবস্থান জানতে চাইলে ব্যবহার করুন।
  2. শ্রোতার সাহায্যে অবস্থানের অনুরোধ করুন : অ্যাপ্লিকেশনটি যখন স্ক্রিনে / সম্মুখভাগে থাকে এবং অবিরত অবস্থানের প্রয়োজন হয় তখন ব্যবহার করুন।
  3. মুলতুবি থাকা উদ্দেশ্য ব্যবহার করে অবস্থানের অনুরোধ করুন : পটভূমিতে অ্যাপ্লিকেশন করার সময় ব্যবহার করুন এবং অবিরত অবস্থানের প্রয়োজন require

তথ্যসূত্র:

অফিসিয়াল সাইট: http://developer.android.com/google/play-services/location.html

সংযুক্ত অবস্থান সরবরাহকারীর উদাহরণ: জিআইটি: https://github.com/kpbird/fused-location-provider-example

http://blog.lemberg.co.uk/fused-location-provider

-------------------------------------------------- ------


2
মনে রাখবেন যে গুগল প্লে সার্ভিসেস ফিউজড লোকেটার সরবরাহকারীও রয়েছে যা কেউ ব্যবহার করতে পারে।
রিচার্ড লে ম্যাসুরিয়ার

আপনার নিজস্ব কাস্টম অবস্থান সরবরাহকারীর তৈরি করা কি সম্ভব? android.permission.INSTALL_LOCATION_PROVIDER স্বাক্ষরিত বা সিস্টেম যার অর্থ আমি রুট ডিভাইসে একটি ইনস্টল করতে সক্ষম হব, না?
জনিটেক্স

1
সংযুক্ত অবস্থান সরবরাহকারী কেবলমাত্র API> = 19 এর জন্য উপলভ্য। আমাদের পুরানো পদ্ধতিটি ডিভাইসটি পুরানো সংস্করণে চলতে হবে, তাই না?
শোভিত পুরী

জিপিএস লোকেশন আনতে ব্যর্থ হলে এমন কোনও নমুনা কোড / বিদ্যমান এপিআই রয়েছে যা জিপিএস অবস্থানের সন্ধান করে এবং কিছুক্ষণ পরে নেটওয়ার্ক সরবরাহকারীর কাছে ফিরে যায়? বা কিছু টাইমার যুক্তি দিয়ে কোডটিতে পরিচালনা করা উচিত?
jrhamza

প্যাসিভ সরবরাহকারী "" "অন্যান্য অ্যাপ্লিকেশন বা পরিষেবাগুলি
নিজেরাই লোকেশনগুলির জন্য

7

জিপিএস সাধারণত নেটওয়ার্কের চেয়ে বেশি নির্ভুল তবে কখনও কখনও জিপিএস পাওয়া যায় না, তাই আপনার দুজনের মধ্যে স্যুইচ করার প্রয়োজন হতে পারে।

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

http://developer.android.com/guide/topics/location/obtaining-user-location.html


@ নোমান আপনি কি নিজের অবস্থান দ্রাঘিমাংশ এবং অক্ষাংশ পেতে চান?
নিকুঞ্জ প্যাটেল

নেটওয়র্ক প্রোভাইডার এবং জিপিএস প্রোভিডারগুলির মধ্যে কোন বিকল্পটি ভাল তা আমি সেকর্পিয়ো আমি আসলে জানতে চেয়েছিলাম। । .আর আমার প্রশ্নের উত্তর হিসাবে আমাকে একটি লিঙ্ক প্রেরণ করুন যে আহস আমাকে খুব সাহায্য করেছিল ... এখন আমি আমার অ্যাপ্লিকেশনটিতে নেটওয়ার্ক প্রোভিডার ব্যবহার করছি :-)
নোমান

3

এখানে কয়েকটি দুর্দান্ত উত্তর উল্লেখ করা হয়েছে। আপনি গ্রহণ করতে পারেন এমন অন্য পদ্ধতিটি হ'ল অটোমা, ট্র্যাঙ্কল এবং নিউউর মতো অনলাইনে উপলভ্য কয়েকটি ফ্রি এসডিকে ব্যবহার করা যা আপনার অ্যান্ড্রয়েড অ্যাপ্লিকেশনটির সাথে সংহত হতে পারে (এটি সংহত করতে 20 মিনিটেরও কম সময় নেয়)। আপনাকে আপনার ব্যবহারকারীর সঠিক অবস্থান দেওয়ার পাশাপাশি এটি আপনাকে আপনার ব্যবহারকারীর ক্রিয়াকলাপ সম্পর্কে ভাল অন্তর্দৃষ্টি দিতে পারে। এছাড়াও, তাদের মধ্যে কিছু আপনার ব্যাটারির 1% এরও কম ব্যবহার করে


1
আপনি যে এসডিকে উল্লেখ করছেন তাতে কি আমি রেফারেন্স পেতে পারি?
কিশোর রেলেঙ্গি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.