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

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

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

إذا أردت التوقف عن عرض الإعلانات، يمكنك الاتصال بـ stopAdvertising() وstopDiscovery() إذا لم تعد بحاجة إلى استكشافها.