هنگامی که کاربر تمام مجوزهای لازم را اعطا کرد، برنامه شما میتواند شروع به تبلیغ و کشف کند تا دستگاههای اطراف را پیدا کند.
ابتدا یک Strategy
برای مورد استفاده خود انتخاب کنید . Strategy
که انتخاب میکنید توپولوژی اتصال برنامه شما را تعیین میکند (یک تبلیغکننده به N کشفکننده یا M تبلیغکننده به N کشفکننده).
در دستگاههایی که تبلیغ میکنند، startAdvertising()
را با Strategy
مورد نظر و پارامتر serviceId
که برنامه شما را شناسایی میکند، فراخوانی کنید.
در دستگاههایی که تبلیغکنندگان نزدیک را پیدا میکنند، با همان Strategy
و serviceId
با startDiscovery()
تماس بگیرید.
مقدار 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()
تماس بگیرید.