هنگامی که کاربر تمام مجوزهای لازم را اعطا کرد، برنامه شما میتواند شروع به تبلیغ و کشف کند تا دستگاههای اطراف را پیدا کند.
ابتدا یک 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() تماس بگیرید.