iOS中的无线配件配置:EAWiFiUnconfiguredAccessoryBrowser仅检测一次未配置的配件

mm2*_*m24 9 configuration objective-c accessory wifi ios

我正在使用EAWiFiUnconfiguredAccessoryBrowser来检测EAWiFiUnconfiguredAccessory.启动附件搜索的代码如下:

- (void)viewDidLoad {
    [super viewDidLoad];

    if (_accessories == nil) {
        _accessories = [[NSMutableArray alloc] init];
    }

    if (_browser == nil) {
        _browser = [[EAWiFiUnconfiguredAccessoryBrowser alloc] initWithDelegate:self queue:nil];
        _browser.delegate = self;
    }
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,它只在第一次加载View时才找到配件.如果我回到上一个视图,然后重新加载视图,它就找不到它们.

我试过了:

  • 重新创建浏览器附件并重新开始搜索(不起作用)
  • 停止搜索并重新启动它(不起作用)

这是我得到的最新代码(与上面的代码一起参考):

- (void) viewWillAppear:(BOOL)animated{
    NSLog(@"view will appear");

    if (_accessories != nil) {
        [_accessories removeAllObjects];
    }

    [self.tableView reloadData];
    [self initializeBrowswerAndStartSearch];
}

- (void) initializeBrowswerAndStartSearch{
    if (_browser != nil) {
        [_browser stopSearchingForUnconfiguredAccessories];
    }

    [_browser startSearchingForUnconfiguredAccessoriesMatchingPredicate:nil];
}

- (void) viewWillDisappear:(BOOL)animated{
    [_browser stopSearchingForUnconfiguredAccessories];
}
Run Code Online (Sandbox Code Playgroud)

似乎附件列表信息被缓存在APP内的某处.如果我重新启动APP,它会找到它们,所以我猜有些东西我不知道了.

有帮助吗?

Tus*_*oul 5

所以我有同样的问题..你应该使用unconfiguredAccessories数组。另外,请尝试保持浏览器实例处于活动状态。如果您发现该设备一次,然后重新实例化浏览器,您将无法再次找到它