Не могу найти устройства Bluetooth
Делаю НИР по теме "Чатик на bluetooth", столкнулась с проблемой: не получается найти устройства по Bluetooth рядом.
Поиск должен происходить по нажатию кнопки.
Код MainActivity
public class MainActivity extends AppCompatActivity {
Switch switch_bt;
Switch switch_visible;
Button button_search;
ListView List_bt;
private BluetoothAdapter My_Bluetooth;
private ArrayList list_arr = new ArrayList();
private ArrayAdapter<String> adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
List_bt = findViewById(R.id.List_bt);
button_search = findViewById(R.id.button_search);
My_Bluetooth = BluetoothAdapter.getDefaultAdapter();
button_search.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
adapter = new ArrayAdapter<>(MainActivity.this, R.layout.listitems, R.id.list_content, list_arr);
if (adapter.getCount()!= 0)
adapter.clear();
list_arr.clear();
My_Bluetooth.startDiscovery();
IntentFilter myFilter = new IntentFilter(BluetoothDevice.ACTION_FOUND);
registerReceiver(mResiver, myFilter);
myFilter = new IntentFilter((BluetoothAdapter.ACTION_DISCOVERY_FINISHED));
registerReceiver(mResiver, myFilter);
}
});
}
private final BroadcastReceiver mResiver = new BroadcastReceiver() {
@SuppressLint("MissingPermission")
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (BluetoothDevice.ACTION_FOUND.equals(action)) {
BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
if (device.getName() != null) {
list_arr.add(device.getName() + " - " + device.getAddress());
}
} else if (BluetoothAdapter.ACTION_DISCOVERY_FINISHED.equals(action)) {
My_Bluetooth.cancelDiscovery();
}
adapter = new ArrayAdapter<>(MainActivity.this, R.layout.listitems, R.id.list_content, list_arr);
List_bt.setAdapter(adapter);
}
};
}
Это конкретно кусок кода, который должен отвечать за поиск и вывод.
Манифесты:
<uses-permission android:name="android.permission.BLUETOOTH"/>
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
<uses-permission android:name="android.permission.BLUETOOTH_ADVERTISE" />
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION " />
В консоли при запуске приложения (запускаю на устройстве через отладку) выглядит так, как будто ловит только ACTION_DISCOVERY_FINISHED, т.е. не то что не выводит найденное, но даже не находит. ACTION_FOUND Не выводится ни разу. При этом когда в настройках самого телефона включаю "Поиск устройств" оно все прекрасно находит.
Вывод уже сопряженных устройств работает прекрасно, а поиск новых - нет.
Собственно, вопрос: как реализовать поиск новых, еще не сопряженных устройств Bluetooth?