פרסום וגילוי

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

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

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

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() כשלא צריך יותר לגלות.