الإعلان والاستكشاف

بعد أن يمنح المستخدِم جميع الأذونات المطلوبة، يمكن أن يبدأ تطبيقك في الإعلان والاكتشاف حتى تتمكن من العثور على الأجهزة المجاورة.

أولاً، اختَر 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 هي معاودة الاتصال التي سيتم استدعاؤها عندما يطلب المكتشفون الاتصال بالمعلن. الاطّلاع على إدارة صفحة Connections (Connections) للاطّلاع على تفاصيل حول في تحديد معاودة الاتصال هذه.

يوضّح المثال التالي كيفية اكتشاف ما يلي:

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 هي معاودة الاتصال التي سيتم استدعاؤها عند العثور على المعلنين القريبين أو فقدانهم الاطّلاع على إدارة صفحة Connections (Connections) للاطّلاع على تفاصيل حول في تحديد معاودة الاتصال هذه.

يمكنك الاتصال بالرقم stopAdvertising() عندما لا تكون بحاجة إلى الإعلانات بعد الآن. يمكنك stopDiscovery() عندما لا تريد استكشاف المزيد من المحتوى.