Actualizaciones para los permisos de Bluetooth de Android 12
Noticias de la comunidad de desarrolladores by Long PanTraducido a través de Amazon Translate
Como ya sabrás, Google ha estado presionando a los desarrolladores para que actualicen sus aplicaciones para Android 12 y sistemas operativos más recientes. Entre los muchos cambios se encuentra un conjunto de cambios en los permisos de Bluetooth. Se ha cambiado el permiso Bluetooth único requerido en Android 11 y versiones anteriores. a tres permisos Bluetooth diferentes que cubren la detección del dispositivo, la publicidad y la conexión por separado. Además, si una actualización de la aplicación tiene como objetivo la API 31 o superior, el permiso de Bluetooth no se renovará automáticamente. La aplicación actualizada necesita la aprobación explícita de los usuarios.
Mientras nos preparábamos para actualizar nuestra aplicación Socket Mobile Companion y CaptureSDK para que fueran compatibles con Android 12, nos dimos cuenta de que la transición podría provocar problemas de conexión del dispositivo que interrumpieran el flujo de trabajo del usuario final. Para evitar estas interrupciones tanto en la medida de lo posible, estamos realizando cambios adicionales para garantizar que los usuarios finales tengan una experiencia fluida durante la transición:
- En primer lugar, queremos asegurarnos de que cuando un usuario actualice su aplicación complementaria, se le pida que dé permiso para usar Bluetooth. La aplicación Companion también enviará una notificación urgente en el momento del lanzamiento cuando inicie el servicio Companion. Sin embargo, si los usuarios ya tienen un escáner conectado y en funcionamiento, es posible que no vuelvan a visitar la aplicación Companion y la conexión del escáner aún se puede interrumpir. Esto es especialmente cierto si configuran la aplicación Companion para que se actualice automáticamente.
- Para evitar este problema, te recomendamos encarecidamente que también tomes medidas proactivas al actualizar tu aplicación a fin de aprovechar los cambios que estamos realizando en el SDK:
El servicio de captura que se proporciona a través de la aplicación complementaria intentará detectar si falta el permiso Bluetooth requerido y devolverá un error (con un nuevo código de error ESKT_BLUETOOTHPERMISSIONMISSING). Tu aplicación debería gestionar este error correctamente y avisar el usuario para dar permiso en la aplicación Companion. La aplicación también puede comprobar el estado de los permisos de Bluetooth antes de iniciar Capture. He aquí un fragmento de código:
if (captureError.getCode() == CaptureError.ESKT_BLUETOOTHPERMISSIONMISSING) {
Intent intent = new Intent();
intent.putExtra(EXTRA_ERROR_CODE, CaptureError.ESKT_BLUETOOTHPERMISSIONMISSING);
intent.setClassName("com.socketmobile.companion", "com.socketmobile.companion.GetPermission");
permissionActivityResultLauncher.launch(intent);
}
//Start activity result
ActivityResultLauncher < Intent > permissionActivityResultLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback < ActivityResult > () {
@Override
public void onActivityResult(ActivityResult result) {
if (result.getResultCode() == Activity.RESULT_OK) {
Intent data = result.getData();
int permissionResult = data.getIntExtra(Permissions.EXTRA_GRANT_RESULT, PackageManager.PERMISSION_DENIED);
switch (permissionResult) {
case PackageManager.PERMISSION_GRANTED:
// Continue using the Capture SDK to scan barcodes
break;
case PackageManager.PERMISSION_DENIED:
// Notify user that permission is required to use bluetooth scanner
break;
}
}
}
});
Está previsto que el Companion y el SDK actualizados se publiquen a mediados de marzo. Tenemos una versión beta lista para probarla a pedido. Si tienes alguna duda o pregunta, ponte en contacto con nosotros a través del correo normal de soporte para desarrolladores o mediante el formulario de comentarios.