רישום גדר

האפליקציה מקבלת קריאה חוזרת (callback) באמצעות 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 לכל הקריאות החוזרות (callback) של הגדר. אם משתמשים במפתח גדר שכבר נרשם כדי להתקשר אל 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);
         }
     });

השלב הבא: ניהול של התקשרות חזרה (callback) לגדר וירטואלי.