פרסום וגילוי

לאחר שהמשתמש יעניק את כל ההרשאות הנדרשות, האפליקציה שלכם תוכל להתחיל לפרסם ולגלות דברים חדשים כדי למצוא מכשירים בקרבת מקום.

בשלב הראשון, בוחרים Strategy לתרחיש לדוגמה. הStrategy שבחרתם קובע את הטופולוגיה של החיבור לאפליקציה (מפרסם אחד ל-N גילויים, או M ל-N גילויים).

במכשירים שמפרסמים, צריך להפעיל את startAdvertising() עם Strategy הרצוי ופרמטר serviceId שמזהה את האפליקציה.

במכשירים שבהם יזוהו מפרסמים בקרבת מקום, צריך להתקשר למספר startDiscovery() עם אותם Strategy ו-serviceId.

הערך של serviceId חייב לזהות את האפליקציה שלכם באופן ייחודי. השיטה המומלצת היא להשתמש בשם החבילה של האפליקציה (לדוגמה, com.google.example.myapp).

הדוגמה הבאה מראה איך לפרסם:

private void startAdvertising() {
  AdvertisingOptions advertisingOptions =
      new AdvertisingOptions.Builder().setStrategy(STRATEGY).build();
  Nearby.getConnectionsClient(context)
      .startAdvertising(
          getLocalUserName(), SERVICE_ID, connectionLifecycleCallback, advertisingOptions)
      .addOnSuccessListener(
          (Void unused) -> {
            // We're advertising!
          })
      .addOnFailureListener(
          (Exception e) -> {
            // We were unable to start advertising.
          });
}

הפרמטר ConnectionLifecycleCallback הוא הקריאה החוזרת מופעלת כאשר משתמשים מבקשים להתחבר למפרסם. לפרטים נוספים על הגדרת הקריאה החוזרת, קראו את המאמר ניהול חיבורים.

הדוגמה הבאה מראה איך לגלות:

private void startDiscovery() {
  DiscoveryOptions discoveryOptions =
      new DiscoveryOptions.Builder().setStrategy(STRATEGY).build();
  Nearby.getConnectionsClient(context)
      .startDiscovery(SERVICE_ID, endpointDiscoveryCallback, discoveryOptions)
      .addOnSuccessListener(
          (Void unused) -> {
            // We're discovering!
          })
      .addOnFailureListener(
          (Exception e) -> {
            // We're unable to start discovering.
          });
}

הפרמטר EndpointDiscoveryCallback הוא הקריאה החוזרת (callback) שיופעל כשמפרסמים בסביבה יתגלו או יאבדו. לפרטים נוספים על הגדרת הקריאה החוזרת, קראו את המאמר ניהול חיבורים.

אפשר להתקשר לstopAdvertising() כשאין צורך לפרסם יותר, ו-stopDiscovery() כשאין צורך יותר לגלות.