菜鸟教程小白 发表于 2022-12-13 02:43:27

iOS - CoreBluetooth didDiscoverPeripheral 未被调用


                                            <p><p>我在 Xcode 6 中制作了一个非常简单的 iOS 应用程序来试用 CoreBluetooth 并与我的 Polar H6 心率监测器进行通信。由于某种原因,没有调用 didDiscoverPeripheral 方法。</p>

<p>我在 StackOverflow 上发现了以下类似问题,但您的问题要么有点不同,要么并没有真正为我回答:</p>

<ul>
<li> <a href="https://stackoverflow.com/questions/25039103/corebluetooth-diddiscoverperipheral-not-being-called-in-swift" title="corebluetooth-diddiscoverperipheral-not-being-called-in-swift" rel="noreferrer noopener nofollow">corebluetooth-diddiscoverperipheral-not-being-called-in-swift</a> </li>
<li> <a href="https://stackoverflow.com/questions/21826693/not-working-call-to-centralmanager-diddiscoverperipheral-advertisementdata-rs" rel="noreferrer noopener nofollow">not-working-call-to-centralmanager-diddiscoverperipheral-advertisementdata</a> </li>
<li> <a href="https://stackoverflow.com/questions/17337604/diddiscoverperipheral-delegate-method-is-not-called" rel="noreferrer noopener nofollow">diddiscoverperipheral-delegate-method-is-not-called</a> </li>
</ul>

<p>我在 viewDidLoad 中的代码:</p>

<pre><code>NSArray *services = @[];
CBCentralManager *centralManager = [ initWithDelegate:self queue:nil];
;
self.centralManager = centralManager;
</code></pre>

<p>方法 <code>centralManagerDidUpdateState</code> 被调用,它告诉我状态等于 <code>CBCentralManagerStatePoweredOn</code>。
<code>didDiscoverPeripheral</code> 方法永远不会被调用,即使我将 <code>nil</code> 传递给 <code>scanForPeripheralsWithServices</code> 方法也是如此。</p>

<p>在应用商店中,我下载了一个名为 LightBlue 的应用。它是一个非常简单的应用程序,可以测试任何使用蓝牙 4.0 LowEnergy 的设备。它扫描外围设备并显示有关设备及其服务的详细信息。
LightBlue 应用程序确实可以看到我的心率监测器,而我自己的小应用程序没有..</p>

<p>有没有人有任何提示或线索如何推进这个? </p>

<p>(我在 iOS 8 中使用 Xcode 6 和 iPhone 6)</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>我正在使用 Swift,看起来蓝牙队列需要使用主队列</p>

<pre><code>myCentralManager = CBCentralManager(delegate: self, queue: dispatch_get_main_queue())
</code></pre>

<p>这里是 objective-c </p>

<pre><code>myCentralManager = [
    initWithDelegate:self queue:dispatch_get_main_queue()];
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于iOS - CoreBluetooth didDiscoverPeripheral 未被调用,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/26452691/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/26452691/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: iOS - CoreBluetooth didDiscoverPeripheral 未被调用