mirror of
https://github.com/permissionlesstech/bitchat-android.git
synced 2026-07-25 03:45:21 +00:00
41 lines
1.3 KiB
Kotlin
41 lines
1.3 KiB
Kotlin
package com.bitchat.android.mesh
|
|
|
|
import android.Manifest
|
|
import android.content.Context
|
|
import android.content.pm.PackageManager
|
|
import androidx.core.app.ActivityCompat
|
|
|
|
/**
|
|
* Handles all Bluetooth permission checking logic
|
|
*/
|
|
class BluetoothPermissionManager(private val context: Context) {
|
|
|
|
/**
|
|
* Check if all required Bluetooth permissions are granted
|
|
*/
|
|
fun hasBluetoothPermissions(): Boolean {
|
|
val permissions = mutableListOf<String>()
|
|
|
|
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.S) {
|
|
permissions.addAll(listOf(
|
|
Manifest.permission.BLUETOOTH_ADVERTISE,
|
|
Manifest.permission.BLUETOOTH_CONNECT,
|
|
Manifest.permission.BLUETOOTH_SCAN
|
|
))
|
|
} else {
|
|
permissions.addAll(listOf(
|
|
Manifest.permission.BLUETOOTH,
|
|
Manifest.permission.BLUETOOTH_ADMIN
|
|
))
|
|
}
|
|
|
|
permissions.addAll(listOf(
|
|
Manifest.permission.ACCESS_COARSE_LOCATION,
|
|
Manifest.permission.ACCESS_FINE_LOCATION
|
|
))
|
|
|
|
return permissions.all {
|
|
ActivityCompat.checkSelfPermission(context, it) == PackageManager.PERMISSION_GRANTED
|
|
}
|
|
}
|
|
} |