বাংলায় অ্যান্ড্রয়েড সহায়িকা - Bangla Android Guide

আপডেট প্যারামিটার নির্দিষ্ট করা

লোকেশন সার্ভিস, একটি LocationRequest অবজেক্টে ভ্যালু সেট করার মাধ্যমে এবং তারপর আপডেট শুরু করতে আপনার রিকোযেস্টের অংশ হিসাবে এই অবজেক্ট পাঠানোর মাধ্যমে আপনাকে আপনার চাওয়া আপডেট এবং লোকেশনের সঠিকতার মধ্যেকার অন্তর্বতীকালের (ইন্টারভ্যাল) নিয়ন্ত্রণ করতে দেয়।

প্রথমে, নিচের ইন্টারভ্যাল (অন্তর্বতীকাল) প্যারামিটার (মানদন্ড) সেট করুন:

ইন্টারভ্যাল আপডেট

LocationRequest.setInterval() সেট করার মাধ্যমে। এই পদ্ধতি মিলি সেকেন্ডে রেট (হার) সেট করে যেটাতে আপনার অ্যাপ লোকেশন আপডেট গ্রহণ করতে পছন্দ করে। যদি অন্য কোন অ্যাপ লোকেশন থেকে আপডেট গ্রহণ করে না থাকে, আপনার অ্যাপ এই রেটে (হারে) আপডেট গ্রহণ করতে থাকবে।

দ্রুততম ইন্টারভ্যাল আপডেট

LocationRequest.setFastestInterval()সেট করার মাধ্যমে। এই পদ্ধতি মিলি সেকেন্ডে দ্রুততম রেট (হার) সেট করে যেটাতে আপনার লোকেশন আপডেট পরিচালনা করতে পারবে। আপনার এই রেট ঠিক করা উচিত কারন অন্য অ্যাপ যেটাতে আপডেট পাঠানো হয়েছে সেটা রেটকে প্রভাবিত করতে পারে। লোকেশন সার্ভিস দ্রুততম রেটে আপডেট পাঠায় যা যে কোন অ্যাপ LocationRequest.setInterval()কল করার মাধ্যমে রিকোয়েস্ট করতে পারে। যদি এই রেটের দ্রুততা আপনার অ্যাপের ধারন ক্ষমতার বাইরে হয়, আপনি হয়তো ইউআই ফ্লিকার বা ডাটা ওভারফ্লো সমস্যার সম্মুখিন হতে পারেন। এই সমস্যা নিরসনের জন্য, আপডেট রেটে আপার লিমিট (সর্বোচ্চ মাত্রা) ঠিক করতে LocationRequest.setFastestInterval()কল করুন।

LocationRequest.setFastestInterval()কল করা পাওয়ারও সেভ করে। যখন আপনি LocationRequest.setInterval()কল করার মাধ্যমে পছন্দনীয় আপডেট রেট রিকোয়েস্ট করেন, এবং LocationRequest.setFastestInterval() কল করার মধ্যমে সর্বোচ্চ রেট রিকোয়েস্ট করেন, তখন আপনার অ্যাপ সিস্টেমে দ্রুততম রেট হিসাবে একই আপডেট রেট পায়। যদি অন্য অ্যাপ দ্রুততম রেট রিকোয়েস্ট করে, আপনি একটি দ্রুততম রেটের সুবিধা পাবেন। যদি কোন অ্যাপের দ্রুততম রিকোয়েস্ট অসমাপ্ত না থাকে আপনি LocationRequest.setInterval() দিয়ে যে রেট নির্দিষ্ট করেছেন সেই অনুসারে আপডেট গ্রহণ করতে পারবেন।

পরবর্তীতে, সঠিকতার মাপকাঠি (অ্যাক্যুরেসি প্যারামিটার) সেট করুন। ফোরগ্রউন্ড অ্যাপে, আপনার প্রয়োজন অতি উচ্চ সঠিকতা (অ্যাক্যুরেসি)সহ কনসট্যান্ট (অবিচল) লোকেশন আপডেট, তাই সেটিং LocationRequest.PRIORITY_HIGH_ACCURACY ব্যবহার করুন।

নিচের কোড চিত্রটি দেখায় কীভাবে onCreate()এ আপডেট ইন্টারভ্যাল (অন্তর্বর্তী কাল) এবং অ্যাক্যুরেসি (সঠিকতা) সেট করতে হয়:

public class MainActivity extends FragmentActivity implements
        GooglePlayServicesClient.ConnectionCallbacks,
        GooglePlayServicesClient.OnConnectionFailedListener,
        LocationListener {
    ...
    // Global constants
    ...
    // Milliseconds per second
    private static final int MILLISECONDS_PER_SECOND = 1000;
    // Update frequency in seconds
    public static final int UPDATE_INTERVAL_IN_SECONDS = 5;
    // Update frequency in milliseconds
    private static final long UPDATE_INTERVAL =
            MILLISECONDS_PER_SECOND * UPDATE_INTERVAL_IN_SECONDS;
    // The fastest update frequency, in seconds
    private static final int FASTEST_INTERVAL_IN_SECONDS = 1;
    // A fast frequency ceiling in milliseconds
    private static final long FASTEST_INTERVAL =
            MILLISECONDS_PER_SECOND * FASTEST_INTERVAL_IN_SECONDS;
    ...
    // Define an object that holds accuracy and frequency parameters
    LocationRequest mLocationRequest;
    ...
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // Create the LocationRequest object
        mLocationRequest = LocationRequest.create();
        // Use high accuracy
        mLocationRequest.setPriority(
                LocationRequest.PRIORITY_HIGH_ACCURACY);
        // Set the update interval to 5 seconds
        mLocationRequest.setInterval(UPDATE_INTERVAL);
        // Set the fastest update interval to 1 second
        mLocationRequest.setFastestInterval(FASTEST_INTERVAL);
        ...
    }
    ...
}

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