服務(wù)端使用實(shí)例
請(qǐng)求檢測(cè)權(quán)限,啟動(dòng)服務(wù)監(jiān)聽
class MasterActivity : AppCompatActivity() {
private var bluetoothManager: BluetoothServerManger? = null
companion object {
const val TAG: String = "MasterActivity"
}
private lateinit var searchDeviceLauncher: ActivityResultLauncher<Intent>
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_master)
searchDeviceLauncher = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) {
bluetoothManager!!.startAdvertiser()
}
startLis()
}
private fun startLis() {
bluetoothManager = BluetoothServerManger(this)
bluetoothManager!!.registerEvent()
bluetoothManager!!.let {
if (!it.bluetoothEnable()) {
Log.i(TAG, "藍(lán)牙不可用")
return
}
if (!it.bluetoothIsOpen()) {
Log.i(TAG, "藍(lán)牙未開啟")
return
}
// 權(quán)限
if (it.havePermission()) {
startDiscoverable()
} else {
requestBTPermissions()
}
}
}
/**
* 請(qǐng)求權(quán)限
*/
private fun requestBTPermissions() {
// 掃描權(quán)限請(qǐng)求
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.S) {
ActivityCompat.requestPermissions(this, arrayOf(Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.ACCESS_FINE_LOCATION), 10086);
} else {
ActivityCompat.requestPermissions(this, arrayOf(Manifest.permission.BLUETOOTH_CONNECT, Manifest.permission.BLUETOOTH_SCAN), 10086);
}
}
/**
* 權(quán)限請(qǐng)求結(jié)果
*/
override fun onRequestPermissionsResult(
requestCode: Int,
permissions: Array<out String>,
grantResults: IntArray
) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults)
if (requestCode == 10086 && grantResults.sum() == 0) {
startDiscoverable()
}
}
private fun startDiscoverable() {
var requestDiscoverIntent = Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE)
requestDiscoverIntent.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION, 0)
searchDeviceLauncher.launch(requestDiscoverIntent)
}
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。