Bluetooth module | #6

DeviceListFragment

import android.app.Activity
import android.bluetooth.BluetoothAdapter
import android.bluetooth.BluetoothManager
import android.content.Context
import android.content.Intent
import android.graphics.Color
import android.os.Bundle
import androidx.fragment.app.Fragment
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.activity.result.ActivityResultLauncher
import androidx.activity.result.contract.ActivityResultContracts
import com.google.android.material.snackbar.Snackbar
import com.neco_dev.bt_def.databinding.FragmentListBinding

class DeviceListFragment : Fragment() {
private var bAdapter: BluetoothAdapter? = null
private lateinit var binding: FragmentListBinding
private lateinit var btLauncher: ActivityResultLauncher<Intent>

override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View {
binding = FragmentListBinding.inflate(inflater, container, false)
return binding.root
}

override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
binding.imBluetoothOn.setOnClickListener {
btLauncher.launch(Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE))
}
registerBtLauncher()
initBtAdapter()
bluetoothState()
}

private fun initBtAdapter(){
val bManager = activity?.getSystemService(Context.BLUETOOTH_SERVICE) as BluetoothManager
bAdapter = bManager.adapter
}

private fun bluetoothState(){
if (bAdapter?.isEnabled == true){
changeButtonColor(binding.imBluetoothOn, Color.GREEN)
}
}

private fun registerBtLauncher(){
btLauncher = registerForActivityResult(
ActivityResultContracts.StartActivityForResult()
){
if (it.resultCode == Activity.RESULT_OK){
changeButtonColor(binding.imBluetoothOn, Color.GREEN)
Snackbar.make(binding.root, "Блютуз включен!", Snackbar.LENGTH_LONG).show()
} else {
Snackbar.make(binding.root, "Блютуз выключен!", Snackbar.LENGTH_LONG).show()
}
}
}

}

2 комментария для “Bluetooth module | #6”

  1. Здравствуйте! Спасибо за уроки!
    Хотелось бы задать вопрос чуть-чуть не по теме данного урока. Есть собственный сервер, на котором “лежит” мой сайт, на самом сайте есть десяток обучающих видео и создано приложение на котлин, которое получает информацию с сайта и отображает видео уже в самом приложении, смотреть можно при наличии интернета, а можно сделать ли сохранения видео в офлайн, чтоб при отсутствии интернета у пользователя он смог смотреть это видео, что-то похожее на YouTube Premium, когда ты сохраняешь и смотреть когда удобно.

  2. Здравствуйте. Огромное спасибо за Ваш труд.
    Подскажите, в чем может быть причина, код включения блютуз не работает на 12 Андроиде (программа запускается но при нажатии на значок ни чего не происходит, при повторном нажатии система создаёт отчет об ошибке и предлагает его куда то отправить), на 10 Андроиде все работает. Спасибо.

Добавить комментарий

Ваш адрес email не будет опубликован.