bluetoothAdapter.startDiscovery();搜索不到设备
雕·不懒惰 2019-09-03 03:38:46 项目需求手机之间蓝牙通信,一个client,一个server,另有自己手机华为
client代码如下
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.bluetooth_list);
Butterknife.bind(this);
.......
registReceiver();
getBlueList();
}
private void getBlueList() {
new Thread(new Runnable() {
@Override
public void run() {
if (bluetoothAdapter.isDiscovering())
bluetoothAdapter.cancelDiscovery();
bluetoothAdapter.startDiscovery();
}
}).start();
}
private void registReceiver() {
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction(BluetoothDevice.ACTION_FOUND);
intentFilter.addAction(BluetoothAdapter.ACTION_DISCOVERY_FINISHED);
intentFilter.addAction(BluetoothDevice.ACTION_ACL_CONNECTED);
intentFilter.addAction(BluetoothDevice.ACTION_ACL_DISCONNECTED);
registerReceiver(broadcastReceiver, intentFilter);
}
private BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
if (intent == null)
return;
BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
if (device != null) {
LogUtils.e(" getAddress: " + device.getAddress() + " name: " + device.getName());
names.add(device.getAddress());
}
if (TextUtils.equals(intent.getAction(), BluetoothAdapter.ACTION_DISCOVERY_FINISHED)) {
if (names.size() == 0) {
Toast.makeText(BlueClientActivity.this, "未发现可连接的蓝牙设备", Toast.LENGTH_SHORT).show();
} else {
arrayAdapter.notifyDataSetChanged();
}
}
LogUtils.e没有输出,说明device=null,在系统设置蓝牙里面列表里有华为,但是代码里面就是搜索不到任何设备