Sé que Android 12 tiene nuevos permisos de Bluetooth. En los permisos de información de la aplicación, parece que ahora se llama Dispositivos cercanos. tengo esta logica:
if (ContextCompat.checkSelfPermission(this, Manifest.permission.BLUETOOTH_CONNECT) == PackageManager.PERMISSION_GRANTED) { viewModel.connectDevice(macAddressDropdown.selectedItem.toString()) } else { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) { ActivityCompat.requestPermissions( this, arrayOf(Manifest.permission.BLUETOOTH_CONNECT), 1 ) } } }En el lanzamiento inicial, esto parece funcionar bien, solicitará el permiso de dispositivo cercano como se ve en la documentación de Google. Después de esto, entro en Permisos en Información de la aplicación y rechazo el permiso Dispositivos cercanos. Cuando depuro esta lógica, dice que BLUETOOTH_CONNECT todavía está permitido.
s = ContextCompat.checkSelfPermission(this, Manifest.permission.BLUETOOTH_CONNECT) == PackageManager.PERMISSION_GRANTED a = ContextCompat.checkSelfPermission(this, Manifest.permission.BLUETOOTH_SCAN) == PackageManager.PERMISSION_GRANTED b = ContextCompat.checkSelfPermission(this, Manifest.permission.BLUETOOTH) == PackageManager.PERMISSION_GRANTED c = ContextCompat.checkSelfPermission(this, Manifest.permission.BLUETOOTH_ADMIN) == PackageManager.PERMISSION_GRANTED d = ContextCompat.checkSelfPermission(this, Manifest.permission_group.NEARBY_DEVICES) == PackageManager.PERMISSION_GRANTEDCuando depuro esto, BLUETOOTH_CONNECT es el único que se muestra como verdadero, el resto son falsos. ¿Alguna idea de por qué sucede esto y cómo se puede solucionar? ¿Potencialmente un error? Gracias
Encontré el mismo problema con
minSdkVersion 21 targetSdkVersion 30 compileSdkVersion 31cambiar la versión de destino a 31 arreglarlo para mí
minSdkVersion 21 targetSdkVersion 31 compileSdkVersion 31