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
。哪种类型的人否认他说的话
我错过了什么