Android startDiscovery不会启动

Android startDiscovery不会启动,android,bluetooth,discovery,Android,Bluetooth,Discovery,我有一段代码可以在大多数手机上使用,除了一部。这是一些发现蓝牙设备的代码 这是接收者的注册: IntentFilter filter = new IntentFilter(); filter.addAction(BluetoothDevice.ACTION_FOUND); filter.addAction(BluetoothAdapter.ACTION_DISCOVERY_FINISHED); filter.addAction(BluetoothAdapter.ACTION_DISCOVERY_

我有一段代码可以在大多数手机上使用,除了一部。这是一些发现蓝牙设备的代码

这是接收者的注册:

IntentFilter filter = new IntentFilter();
filter.addAction(BluetoothDevice.ACTION_FOUND);
filter.addAction(BluetoothAdapter.ACTION_DISCOVERY_FINISHED);
filter.addAction(BluetoothAdapter.ACTION_DISCOVERY_STARTED);
_ctx.registerReceiver(mReceiver, filter);
private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
    public void onReceive(Context context, Intent intent) {
        String action = intent.getAction();

        // When discovery finds a device
        if (BluetoothAdapter.ACTION_DISCOVERY_STARTED.equals(action)) {
            Log.i(SapphireApplication.TAG, "Discovery started.");
        } else if (BluetoothAdapter.ACTION_DISCOVERY_FINISHED.equals(action)) {
            Log.i(SapphireApplication.TAG, "Discovery finished.");
        }
    }
}
这是接收器:

IntentFilter filter = new IntentFilter();
filter.addAction(BluetoothDevice.ACTION_FOUND);
filter.addAction(BluetoothAdapter.ACTION_DISCOVERY_FINISHED);
filter.addAction(BluetoothAdapter.ACTION_DISCOVERY_STARTED);
_ctx.registerReceiver(mReceiver, filter);
private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
    public void onReceive(Context context, Intent intent) {
        String action = intent.getAction();

        // When discovery finds a device
        if (BluetoothAdapter.ACTION_DISCOVERY_STARTED.equals(action)) {
            Log.i(SapphireApplication.TAG, "Discovery started.");
        } else if (BluetoothAdapter.ACTION_DISCOVERY_FINISHED.equals(action)) {
            Log.i(SapphireApplication.TAG, "Discovery finished.");
        }
    }
}
以及我是如何开始探索的

if (theAdapter.isDiscovering()) {
    theAdapter.cancelDiscovery();
}

theAdapter.startDiscovery();
我有
android.permission.ACCESS\u rough\u LOCATION
android.permission.BLUETOOTH\u ADMIN
权限。在运行安卓11的Pixel 3上,该代码可以正常工作,但在装有安卓10的阿尔卡特5030D上,则不行。这就像发现从未启动一样(即,
Log.i
语句从未执行)

更新:我检查了返回值,它是
false
,但是
BluetoothAdapter.getState
返回12,它是
STATE\u ON
。哪种类型的人否认他说的话

我错过了什么