Я пытаюсь разработать приложение для Android, в котором я сканирую близлежащие устройства Bluetooth. Но когда я запускаюJAVA

Программисты JAVA общаются здесь
Ответить
Гость
 Я пытаюсь разработать приложение для Android, в котором я сканирую близлежащие устройства Bluetooth. Но когда я запускаю

Сообщение Гость »


Я разрабатываю приложение для Android на Java для поиска ближайших устройств Bluetooth. Все разрешения были предоставлены, ошибок в коде нет, но когда я запускаю его, результатов нет. Учебники, которым я следовал, кажутся старыми. Может ли кто-нибудь указать, что можно сделать, или показать мне какой-нибудь новый учебник. Заранее спасибо.

публичный класс ThirdActivity расширяет AppCompatActivity { частный Bluetooth-адаптер Bluetooth-адаптер; частный финал int REQUEST_ENABLE_BT = 1; частный финал int REQUEST_PERMISSION = 2; @Override protected void onCreate (Bundle saveInstanceState) { super.onCreate(saveInstanceState); setContentView(R.layout. Third_activity); Кнопка scanButton = findViewById(R.id.scanButton); bluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); если (bluetoothAdapter == null) { // Устройство не поддерживает Bluetooth Toast.makeText(this, «Bluetooth недоступен на этом устройстве.», Toast.LENGTH_SHORT).show(); заканчивать(); возвращаться; } scanButton.setOnClickListener(новый View.OnClickListener() { @Override public void onClick (Просмотр) { проверитьBluetoothPermission(); } }); } частная недействительная проверкаBluetoothPermission () { // Проверяем, предоставлены ли разрешения BLUETOOTH и BLUETOOTH_CONNECT int bluetoothPermission = ContextCompat.checkSelfPermission(this, Manifest.permission.BLUETOOTH); int bluetoothConnectPermission = ContextCompat.checkSelfPermission(this, Manifest.permission.BLUETOOTH_CONNECT); если (bluetoothPermission == PackageManager.PERMISSION_GRANTED && bluetoothConnectPermission == PackageManager.PERMISSION_GRANTED) { // Разрешения предоставлены, начинаем сканирование начатьBluetoothScan(); } еще { // Запрос разрешений ActivityCompat.requestPermissions( этот, новая строка[]{Manifest.permission.BLUETOOTH, Manifest.permission.BLUETOOTH_CONNECT}, ПРОСИТЬ РАЗРЕШЕНИЕ ); } } @Override public void onRequestPermissionsResult(int requestCode, разрешения @NonNull String[], @NonNull int[]grantResults) { super.onRequestPermissionsResult(requestCode, разрешения, GrantResults); // Вызов супер если (requestCode == REQUEST_PERMISSION) { если (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED && grantResults[1] == PackageManager.PERMISSION_GRANTED) { // Разрешения предоставлены начатьBluetoothScan(); } еще { // Разрешение(я) отклонено Toast.makeText(this, «Разрешения отклонены. Невозможно выполнить поиск устройств Bluetooth.», Toast.LENGTH_SHORT).show(); } } int bluetoothPermission = ContextCompat.checkSelfPermission(this, Manifest.permission.BLUETOOTH); int bluetoothConnectPermission = ContextCompat.checkSelfPermission(this, Manifest.permission.BLUETOOTH_CONNECT); int bluetoothScanPermission = ContextCompat.checkSelfPermission(this, Manifest.permission.BLUETOOTH_SCAN); если (bluetoothPermission == PackageManager.PERMISSION_GRANTED && bluetoothConnectPermission == PackageManager.PERMISSION_GRANTED && bluetoothScanPermission == PackageManager.PERMISSION_GRANTED) { // Разрешения предоставлены, начинаем сканирование начатьBluetoothScan(); } еще { // Запрос разрешений ActivityCompat.requestPermissions( этот, новая строка[]{ Манифест.разрешение.BLUETOOTH, Манифест.permission.BLUETOOTH_CONNECT, Манифест.permission.BLUETOOTH_SCAN }, ПРОСИТЬ РАЗРЕШЕНИЕ ); } } частный недействительный startBluetoothScan () { // Убедитесь, что Bluetooth включен если (!bluetoothAdapter.isEnabled()) { Намерение EnableBtIntent = новое намерение (BluetoothAdapter.ACTION_REQUEST_ENABLE); if (ActivityCompat.checkSelfPermission(this, Manifest.permission.BLUETOOTH_CONNECT) != PackageManager.PERMISSION_GRANTED) { // ЗАДАЧА: рассмотреть возможность вызова // ActivityCompat#requestPermissions // здесь, чтобы запросить недостающие разрешения, а затем переопределить // public void onRequestPermissionsResult(int requestCode, String[] разрешения, // int[] GrantResults) // для обработки случая, когда пользователь предоставляет разрешение. См. документацию // для ActivityCompat#requestPermissions для более подробной информации. возвращаться; } startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT); } еще { // Bluetooth включен, начинаем сканирование сделатьBluetoothDiscovery(); } } @Override protected void onActivityResult (int requestCode, int resultCode, данные намерения) { super.onActivityResult(requestCode, resultCode, data); если (requestCode == REQUEST_ENABLE_BT) { если (resultCode == Activity.RESULT_OK) { // Bluetooth включен, начинаем сканирование сделатьBluetoothDiscovery(); } еще { // Пользователь отменил включение Bluetooth Toast.makeText(это: «Для сканирования устройств необходимо включить Bluetooth.», Toast.LENGTH_SHORT).show(); } } } частная пустота doBluetoothDiscovery () { // Регистрируем BroadcastReceiver для прослушивания обнаруженных устройств Фильтр IntentFilter = новый IntentFilter(BluetoothDevice.ACTION_FOUND); RegisterReceiver(приемник, фильтр); // Начать обнаружение if (ActivityCompat.checkSelfPermission(this, Manifest.permission.BLUETOOTH_SCAN) != PackageManager.PERMISSION_GRANTED) { // ЗАДАЧА: рассмотреть возможность вызова // ActivityCompat#requestPermissions // здесь, чтобы запросить недостающие разрешения, а затем переопределить // public void onRequestPermissionsResult(int requestCode, String[] разрешения, // int[] GrantResults) // для обработки случая, когда пользователь предоставляет разрешение. См. документацию // для ActivityCompat#requestPermissions для более подробной информации. возвращаться; } если (bluetoothAdapter.isDiscovering()) { if (ActivityCompat.checkSelfPermission(this, Manifest.permission.BLUETOOTH_SCAN) != PackageManager.PERMISSION_GRANTED) { // ЗАДАЧА: рассмотреть возможность вызова // ActivityCompat#requestPermissions // здесь, чтобы запросить недостающие разрешения, а затем переопределить // public void onRequestPermissionsResult(int requestCode, String[] разрешения, // int[] GrantResults) // для обработки случая, когда пользователь предоставляет разрешение. См. документацию // для ActivityCompat#requestPermissions для более подробной информации. возвращаться; } bluetoothAdapter.cancelDiscovery(); } bluetoothAdapter.startDiscovery(); } частный окончательный приемник BroadcastReceiver = новый BroadcastReceiver() { public void onReceive (контекст контекста, намерение намерения) { Строковое действие = намерение.getAction(); если (BluetoothDevice.ACTION_FOUND.equals(действие)) { // Устройство найдено Устройство BluetoothDevice = Intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE); if (ActivityCompat.checkSelfPermission(ThirdActivity.this, Manifest.permission.BLUETOOTH_CONNECT) != PackageManager.PERMISSION_GRANTED) { // ЗАДАЧА: рассмотреть возможность вызова // ActivityCompat#requestPermissions // здесь, чтобы запросить недостающие разрешения, а затем переопределить // public void onRequestPermissionsResult(int requestCode, String[] разрешения, // int[] GrantResults) // для обработки случая, когда пользователь предоставляет разрешение. См. документацию // для ActivityCompat#requestPermissions для более подробной информации. возвращаться; } Строка имя_устройства = устройство.getName(); Строка deviceAddress = device.getAddress(); // Обработка обнаруженного устройства, например, добавление его в список или отображение System.out.println(имяустройства+адрес устройства); Toast.makeText(ThirdActivity.this, "Найдено устройство Bluetooth: " + имя_устройства + " (" + адрес устройства + ")", Toast.LENGTH_SHORT).show(); } } }; @Override защищенная пустота onDestroy() { супер.onDestroy(); // Отменяем регистрацию BroadcastReceiver при уничтожении активности отменить регистрациюReceiver (получатель); } } Я подумал, что, возможно, это ошибка в способе отображения результатов, поэтому заменил тост объектом просмотра списка. Но и это не помогло.
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»