iOS 和 Google Nearby API : how to publish and subscribe in the right way?

标签 ios google-nearby

我已经完成了 the guide says

这是消息管理器

[GNSMessageManager setDebugLoggingEnabled:YES];
messageManager = [[GNSMessageManager alloc] initWithAPIKey:API_KEY paramsBlock:^(GNSMessageManagerParams *params) {
        params.bluetoothPowerErrorHandler = ^(BOOL hasError) {
            // Update the UI for Bluetooth power
        };
        params.bluetoothPermissionErrorHandler = ^(BOOL hasError) {
            // Update the UI for Bluetooth permission
        };
    }];

这些是我使用 Nearby API 发布和订阅的方法。
- (IBAction)onPublish:(id)sender {
    NSLog(@"publish");
    NSString* str = @"hello world";
    NSData* data = [str dataUsingEncoding:NSUTF8StringEncoding];
    GNSMessage* message = [GNSMessage messageWithContent:data];
    id<GNSPublication> publication = [messageManager publicationWithMessage:message paramsBlock:^(GNSPublicationParams *publicationParams) {
        publicationParams.strategy = [GNSStrategy strategyWithParamsBlock:^(GNSStrategyParams * strategyParams) {
            strategyParams.allowInBackground = YES;
            strategyParams.discoveryMediums = kGNSDiscoveryMediumsBLE;
            strategyParams.discoveryMode = kGNSDiscoveryModeDefault;
        }];;
    }];
}

- (IBAction)onSubscribe:(id)sender {
    NSLog(@"subscribe");
    id<GNSSubscription> subscription = [messageManager subscriptionWithMessageFoundHandler:^(GNSMessage *msg) {
        // Add the name to a list for display
        NSLog(@"message found %@", [msg description]);
    } messageLostHandler:^(GNSMessage *msg) {
        // Add the name to a list for display
        NSLog(@"message lost %@", [msg description]);
    } paramsBlock:^(GNSSubscriptionParams *subscriptionParams) {
        subscriptionParams.strategy = [GNSStrategy strategyWithParamsBlock:^(GNSStrategyParams * strategyParams) {
            strategyParams.allowInBackground = YES;
            strategyParams.discoveryMediums = kGNSDiscoveryMediumsBLE;
            strategyParams.discoveryMode = kGNSDiscoveryModeDefault;
        }];;
    }];
}

Bletooth 中央和外围后台功能均已启用,并且已设置外围设备的权限字符串。
最后,我在 iOS 设备上订阅并从另一台设备发布,但没有任何 react 。

最佳答案

请务必保留发布和订阅对象。当它们被释放时,它们会停止发布/订阅。通常的方法是将它们作为属性/变量存储在您的一个类中。

开发人员文档在这一点上具有误导性,我深表歉意。我们将在下一个版本中改进文档。

关于iOS 和 Google Nearby API : how to publish and subscribe in the right way?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44269066/

相关文章:

iphone - iOS 按住手势 + 点击

ios - 为什么默认调用父类(super class)指定的初始值设定项?

iOS 11 App Store 我的应用程序没有出现在搜索中

android - 适用于 Android 的 Google Nearby Publish 在后台

java - 如何计算最近的餐厅,但我的代码显示了附近的所有餐厅

android - 附近的连接和前台/后台服务

iphone - AFImageRequestOperation 返回未完全下载的图像

javascript - 如何在iOS webview中控制iOS状态栏背景颜色

android - 两台安卓设备离线连接

android - 接近信标 API : Android and Nearby