फ़ेंस रजिस्टर करना

जब भी किसी फ़ेंस की स्थिति बदलती है, तब आपका ऐप्लिकेशन PendingIntent से कॉलबैक पाता है. ऐप्लिकेशन का इस्तेमाल करने से पहले, हर फ़ेंस को रजिस्टर करना ज़रूरी है.

बाड़ रजिस्टर करना

फ़ेंस रजिस्टर करने के लिए, FenceClient का इस्तेमाल करें. साथ ही, FenceUpdateRequest बनाने के लिए, FenceClient.updateFences() का इस्तेमाल करें. हर फ़ेंस को जोड़ने के लिए, addFence() को कॉल करें.

किसी फ़ेंस को रजिस्टर करने और उसका रजिस्ट्रेशन रद्द करने के लिए, ये ज़रूरी हैं:

  • Google Play Services API Client का इंस्टेंस.
  • AwarenessFence इंस्टेंस, जो फ़ेंस होता है.
  • स्टेट में होने वाले बदलावों को मैनेज करने के लिए PendingIntent.
  • फ़ेंस की, एक स्ट्रिंग होती है. यह फ़ेंस की पहचान करती है और AwarenessFence-PendingIntent जोड़े पर मैप करती है.

यहां दिए गए कोड के उदाहरण में, फ़ेंस रजिस्टर करने के लिए updateFences() को कॉल करने का तरीका दिखाया गया है:

    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);
            }
        });

यूनीक फ़ेंस की के साथ एक से ज़्यादा फ़ेंस बनाने के लिए, addFence() को कई बार कॉल करें. अपनी ज़रूरत के हिसाब से, जितनी चाहें उतनी PendingIntent विधियों का इस्तेमाल किया जा सकता है. हालांकि, सभी फ़ेंस कॉलबैक के लिए एक ही PendingIntent का इस्तेमाल करना बेहतर होता है. अगर आपने ऐसी फ़ेंस की का इस्तेमाल किया है जो addFence() को कॉल करने के लिए पहले ही रजिस्टर की जा चुकी है, तो उस की के लिए AwarenessFence और PendingIntent वैल्यू बदल दी जाती हैं.

किसी फ़ेंस को अपंजीकृत करना

किसी फ़ेंस को अनरजिस्टर करने के लिए, getFenceClient().updateFences() को कॉल करें. साथ ही, फ़ेंस अपडेट करने का अनुरोध बनाने के लिए, FenceUpdateRequest.Builder() का इस्तेमाल करें. इसके बाद, removeFence() को कॉल करें. यहां दिए गए उदाहरण में दिखाया गया है कि इसे कैसे कॉल किया जाता है:

 Awareness.getFenceClient(this).updateFences(new FenceUpdateRequest.Builder()
     .removeFence(FENCE_KEY)
     .build())
     .addOnSuccessListener(new OnSuccessListener<Void>() {
         @Override
         public void onSuccess(Void aVoid) {
             Log.i(TAG, "Fence was successfully unregistered.");
         }
     })
     .addOnFailureListener(new OnFailureListener() {
         @Override
         public void onFailure(@NonNull Exception e) {
             Log.e(TAG, "Fence could not be unregistered: " + e);
         }
     });

अगला चरण: जियोफ़ेंसिंग के लिए कॉलबैक मैनेज करना.