Как лучше получить список всех Bluetooth-устройств на Android?

Ссылка скопирована
0 ответов

Сейчас ситуация такая: точнее задача: нужно получать через колбэк bt-устройство и уже с ним работать, но на такой изи задаче что то застрял. Никогда не удавалась работать с блютузом, буду благодарен в любом участии в вопросе!

Вот класс с логикой:

package com.arturprgr.meshmessenger.manager import android.Manifest import android.app.Activity import android.bluetooth.BluetoothAdapter import android.bluetooth.BluetoothManager import android.bluetooth.le.ScanCallback import android.bluetooth.le.ScanResult import android.content.Context import android.content.pm.PackageManager import android.widget.Toast import androidx.core.app.ActivityCompat class MeshManager(private val context: Context) { private var btAdapter: BluetoothAdapter? = null private val message = mutableListOf<Pair<String, String>>() fun tryConnectToDevice() { if (btAdapter == null) { val service = context.getSystemService(Context.BLUETOOTH_SERVICE) as BluetoothManager btAdapter = service.adapter } if (btAdapter?.isEnabled == true) { if (ActivityCompat.checkSelfPermission( context, Manifest.permission.BLUETOOTH_SCAN ) != PackageManager.PERMISSION_GRANTED ) ActivityCompat.requestPermissions( context as Activity, arrayOf(Manifest.permission.BLUETOOTH_SCAN), 1 ) } else return Toast.makeText(context, "Scan", Toast.LENGTH_LONG).show() btAdapter?.bluetoothLeScanner?.startScan(object : ScanCallback() { override fun onScanResult(callbackType: Int, result: ScanResult) { super.onScanResult(callbackType, result) Toast.makeText(context, "${result.device.address}", Toast.LENGTH_LONG).show() } }) } fun sendMessage(targetDeviceId: String, message: String) { this.message.add(targetDeviceId to message) tryConnectToDevice() } }

Вот код активности:

package com.arturprgr.meshmessenger import android.os.Bundle import androidx.activity.enableEdgeToEdge import androidx.appcompat.app.AppCompatActivity import androidx.core.view.ViewCompat import androidx.core.view.WindowInsetsCompat import com.arturprgr.meshmessenger.databinding.ActivityMainBinding import com.arturprgr.meshmessenger.manager.MeshManager class MainActivity : AppCompatActivity() { private lateinit var binding: ActivityMainBinding private lateinit var meshManager: MeshManager override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) binding = ActivityMainBinding.inflate(layoutInflater) meshManager = MeshManager(this@MainActivity) enableEdgeToEdge() setContentView(binding.root) ViewCompat.setOnApplyWindowInsetsListener(binding.root) { v, insets -> val systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars()) v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom) insets } meshManager.tryConnectToDevice() } }
Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно