首页 > 解决方案 > CompanionDeviceManager 关联方法不调用回调方法

问题描述

我正在尝试使用 CompanionDeviceManager 类将我们的 BLE 设备与我们的 Android(版本 10)手机配对,而无需位置许可。在这里我使用下面的代码:

 private void initialiseCompanionDeviceManager() {
    if (equalOrGreaterThanOreo()) {
        companionDeviceManager = getSystemService(CompanionDeviceManager.class);

        deviceFilter = new BluetoothLeDeviceFilter.Builder()/*.setNamePattern(Pattern.compile("fret zealot"))*/.build();
        pairingRequest = new AssociationRequest.Builder()
                .addDeviceFilter(deviceFilter)
               //.setSingleDevice(true)
                .build();
        associateDevice();
    }


}

private void associateDevice() {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
        companionDeviceManager.associate(pairingRequest, new CompanionDeviceManager.Callback() {
            @Override
            public void onDeviceFound(IntentSender chooserLauncher) {
                try {
                    Log.e("BLEDevice", "Device found");
                    startIntentSenderForResult(chooserLauncher,
                            SELECT_DEVICE_REQUEST_CODE, null, 0, 0, 0);
                } catch (IntentSender.SendIntentException e) {
                    e.printStackTrace();
                    Log.e("BLEDevice", "EXception");
                }
            }

            @Override
            public void onFailure(CharSequence error) {
                Log.e("BLEDevice", "Device error: "+error);
            }

        }, null);
    }
}

但这两种方法都没有给出任何回调。什么都没发生。如果有人对此有想法,请带我离开。

标签: android

解决方案


推荐阅读