在安卓6+中,以编程方式扫描蓝牙设备找不到任何东西可能是由以下几个原因引起的:
<uses-permission android:name="android.permission.BLUETOOTH"/>
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
同时,在运行时请求权限:
if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION)
!= PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this,
new String[]{Manifest.permission.ACCESS_COARSE_LOCATION},
REQUEST_CODE_LOCATION_PERMISSION);
}
BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
if (bluetoothAdapter == null || !bluetoothAdapter.isEnabled()) {
Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT);
}
private final BroadcastReceiver scanReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (BluetoothAdapter.ACTION_DISCOVERY_STARTED.equals(action)) {
// 扫描开始
} else if (BluetoothAdapter.ACTION_DISCOVERY_FINISHED.equals(action)) {
// 扫描结束
} else if (BluetoothDevice.ACTION_FOUND.equals(action)) {
// 发现蓝牙设备
BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
// 处理设备信息
} else if (BluetoothAdapter.ACTION_STATE_CHANGED.equals(action)) {
// 蓝牙状态改变
int state = intent.getIntExtra(BluetoothAdapter.EXTRA_STATE, BluetoothAdapter.ERROR);
if (state == BluetoothAdapter.STATE_OFF) {
// 蓝牙关闭
} else if (state == BluetoothAdapter.STATE_ON) {
// 蓝牙开启
}
}
}
};
// 注册广播接收器
IntentFilter filter = new IntentFilter();
filter.addAction(BluetoothAdapter.ACTION_DISCOVERY_STARTED);
filter.addAction(BluetoothAdapter.ACTION_DISCOVERY_FINISHED);
filter.addAction(BluetoothDevice.ACTION_FOUND);
filter.addAction(BluetoothAdapter.ACTION_STATE_CHANGED);
registerReceiver(scanReceiver, filter);
// 开始扫描
BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
bluetoothAdapter.startDiscovery();
以上是一般情况下解决扫描蓝牙设备找不到任何东西的方法。如果问题仍然存在,可能是由于设备本身的问题或其他未知原因引起的。建议尝试在其他设备上进行测试,或者查阅安卓开发文档和相关论坛以获取更多帮助。
关于腾讯云相关产品,腾讯云提供了一系列与蓝牙设备相关的解决方案,例如:
请注意,以上仅为示例,具体的产品选择应根据实际需求和情况进行评估和选择。
领取专属 10元无门槛券
手把手带您无忧上云