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

जब भी किसी फ़ेंस की स्थिति बदलती है, तब आपका ऐप्लिकेशन 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);
         }
     });

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