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

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

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

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

एक फ़ेंस और रजिस्टर करने के लिए इन ज़रूरी शर्तों का पालन करना ज़रूरी है:

  • Google Play सेवाएं एपीआई क्लाइंट इंस्टेंस.
  • 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);
         }
     });

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