বেড়া API ওভারভিউ

সচেতনতা এপিআই-এ, বেড়ার ধারণাটি জিওফেন্সিং থেকে নেওয়া হয়, যেখানে একটি ভৌগলিক অঞ্চল বা জিওফেন্সকে সংজ্ঞায়িত করা হয়, এবং যখন কোনও ব্যবহারকারী জিওফেন্স অঞ্চলে প্রবেশ করে বা ছেড়ে যায় তখন একটি অ্যাপ কলব্যাক গ্রহণ করে। Fence API ভৌগলিক নৈকট্য ছাড়াও অন্যান্য অনেক প্রসঙ্গ শর্ত অন্তর্ভুক্ত করতে জিওফেন্সিংয়ের ধারণার উপর প্রসারিত হয়। একটি অ্যাপ কলব্যাক গ্রহণ করে যখনই প্রসঙ্গ অবস্থার পরিবর্তন হয়। উদাহরণস্বরূপ, যদি আপনার অ্যাপটি হেডফোনগুলির জন্য একটি বেড়া সংজ্ঞায়িত করে, তাহলে হেডফোনগুলি প্লাগ ইন করা হলে এবং যখন সেগুলি আনপ্লাগ করা হয় তখন এটি কলব্যাক পায়৷

আপনি প্রসঙ্গ সংকেতের উপর ভিত্তি করে বেড়া সংজ্ঞায়িত করতে Fence API ব্যবহার করতে পারেন, যেমন নিম্নলিখিত:

  • ব্যবহারকারীর বর্তমান অবস্থান (অক্ষাংশ/দ্রাঘিমাংশ)
  • ব্যবহারকারীর বর্তমান কার্যকলাপ, যেমন হাঁটা বা গাড়ি চালানো।
  • ডিভাইস-নির্দিষ্ট শর্ত, যেমন হেডফোন প্লাগ ইন করা আছে কিনা।
  • কাছাকাছি বীকন নৈকট্য

Fence API আপনাকে AND , OR , এবং NOT বুলিয়ান অপারেটরগুলির সাথে বেড়া তৈরি করতে একাধিক প্রসঙ্গ সংকেত একত্রিত করতে দেয়৷ যখনই বেড়া শর্ত পূরণ হয় তখন আপনার অ্যাপ কলব্যাক গ্রহণ করে। সম্ভাব্য বেড়া কিছু উদাহরণ নিম্নলিখিত অন্তর্ভুক্ত:

  • ব্যবহারকারী হেডফোন লাগিয়ে হাঁটতে শুরু করেন।
  • ব্যবহারকারী একটি সপ্তাহের দিনে বিকাল 5 টার আগে 100-মিটার জিওফেন্সে প্রবেশ করে।
  • ব্যবহারকারী একটি নির্দিষ্ট BLE বীকনের পরিসরে প্রবেশ করে।

নিম্নলিখিত উদাহরণটি দেখায় কিভাবে একটি বেড়া সংজ্ঞায়িত করতে হয় যা ব্যবহারকারী যখনই হাঁটে তখন সক্রিয় হয়:

AwarenessFence walkingFence = DetectedActivityFence.during(DetectedActivityFence.WALKING);

একবার আপনি একটি বেড়া সংজ্ঞায়িত করেছেন, আপনাকে অবশ্যই নিম্নলিখিতগুলি করতে হবে:

  • কলব্যাক পেতে বেড়া নিবন্ধন করতে updateFences কে কল করুন।
  • একটি কলব্যাক সংজ্ঞায়িত করুন যা বেড়ার অবস্থার পরিবর্তন হলে আহ্বান করা যেতে পারে।

নিম্নলিখিত উদাহরণটি এমন একটি পদ্ধতি দেখায় যা একটি বেড়া তৈরি এবং নিবন্ধন করে। এই উদাহরণে, যখন বেড়া ট্রিগার করা হয় তখন অভিপ্রায় পরিচালনা করতে BroadcastReceiver এর একটি কাস্টম সাবক্লাস ব্যবহার করা হয়।

Awareness.getFenceClient(this).updateFences(new FenceUpdateRequest.Builder()
    .addFence(FENCE_KEY, exercisingWithHeadphonesFence, mPendingIntent)
    .build())
    .addOnSuccessListener(new OnSuccessListener<Void>() {
        @Override
        public void onSuccess(Void aVoid) {
            Log.i(TAG, "Fence was successfully registered.");
        }
    })
    .addOnFailureListener(new OnFailureListener() {
        @Override
        public void onFailure(@NonNull Exception e) {
            Log.e(TAG, "Fence could not be registered: " + e);
        }
    });
public class FenceReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {

        FenceState fenceState = FenceState.extract(intent);

        if (TextUtils.equals(fenceState.getFenceKey(), FENCE_KEY)) {
            String fenceStateStr;
            switch (fenceState.getCurrentState()) {
                case FenceState.TRUE:
                    fenceStateStr = "true";
                    break;
                case FenceState.FALSE:
                    fenceStateStr = "false";
                    break;
                case FenceState.UNKNOWN:
                    fenceStateStr = "unknown";
                    break;
                default:
                    fenceStateStr = "unknown value";
            }
            mLogFragment.getLogView().println("Fence state: " + fenceStateStr);
        }
    }
}