这是我第一次在Android项目中进行蓝牙低功耗.我正在做的项目基本上是检测所有蓝牙LE设备并连接它们以发现它们的服务.
我想问一下是否有人知道如何在ScanCallback中调用onScanResult(),onBatchScanResults()和onScanFailed()方法?
首先,运行scanLeDevice()方法.
BluetoothLeScanner mLEScanner = mBluetoothAdapter.getBluetoothLeScanner();
ScanSettings settings = new ScanSettings.Builder()
.setScanMode(ScanSettings.SCAN_MODE_LOW_POWER)
.setCallbackType(ScanSettings.CALLBACK_TYPE_ALL_MATCHES)
.build();
List<ScanFilter> filters = new ArrayList<ScanFilter>();
scanLeDevice(true);
Run Code Online (Sandbox Code Playgroud)
在这种方法中,它将启动扫描.所以我假设扫描结果是使用这些回调传递的.
@TargetApi(21)
private void scanLeDevice(final boolean enable) {
if (enable) {
//stops scanning after a pre-defined scan period
mHandler.postDelayed(new Runnable() {
@Override
public void run() {
System.out.println("BLE// mLEScanner.stopScan(mScanCallback) ");
mLEScanner.stopScan(mScanCallback);
}
}
}, SCAN_PERIOD);
System.out.println("BLE// mLEScanner.startScan(filters, settings, mScanCallback)");
mLEScanner.startScan(filters, settings, mScanCallback);
} else {
System.out.println("BLE// mLEScanner.stopScan(mScanCallback)");
mLEScanner.stopScan(mScanCallback);
}
}
Run Code Online (Sandbox Code Playgroud)
但是,在ScanCallback中,我不知道它如何触发onScanResult并使用回调传递扫描结果.在我的测试中(如下所示),既不调用onScanResult()也不调用onBatchScanResults()和onScanFailed().有人可以向我解释这个概念吗?它会帮助我很多!
/* Scan result for SDK >= 21 */
private …
Run Code Online (Sandbox Code Playgroud) 救命啊!我只是想让我的管道成功运行TT任何人都可以帮助我~
情况:我正在将 Apollo 客户端集成到我的 iOS 项目中,并遵循 Apollo 官方提供的说明 - https://www.apollographql.com/docs/ios/installation(使用 SPM 方式设置)。在 Xcode 手动编译和测试中,它对我来说一切正常。然而,当我使用命令运行单元测试时,我在生成 Apollo GraphQL API 时遇到了困难。以下是我在运行时收到的错误
xcodebuild test -scheme ${CI_PROJECT_NAME} -project ${CI_PROJECT_NAME}.xcodeproj -destination "${XCODE_APPLICATION_PLATFORM}" -enableCodeCoverage YES| xcpretty -s
错误: xcodebuild[10347:2192409] NSFileHandle couldn't write. Exception: *** -[_NSStdIOFileHandle writeData:]: Broken pipe
注意:当我在 Gitlab 管道中通过命令行运行单元测试时,会发生此错误。使用 Xcode 13.2.1。