Mises à jour pour les autorisations Bluetooth d'Android 12
Actualités de la communauté des développeurs by Long PanTraduit via Amazon Translate
Comme vous le savez peut-être, Google a poussé les développeurs à mettre à jour leurs applications pour Android 12 et les systèmes d'exploitation plus récents. Parmi les nombreuses modifications figuraient une série de modifications des autorisations Bluetooth. L'autorisation Bluetooth unique requise dans Android 11 et les versions antérieures a été modifiée à trois autorisations Bluetooth différentes qui couvrent séparément la découverte de l'appareil, la publicité et la connexion De plus, si une mise à jour d'application cible l'API 3.1 ou supérieur, l'autorisation Bluetooth ne sera pas automatiquement renouvelée. L'application mise à jour nécessite l'approbation explicite des utilisateurs.
Alors que nous nous préparons à mettre à jour notre application Socket Mobile Companion et CaptureSDK pour qu'elles soient compatibles avec Android 12, nous avons réalisé que la transition pourrait potentiellement entraîner des problèmes de connexion des appareils interrompant le flux de travail de l'utilisateur final. Pour éviter au maximum ces interruptions dans la mesure du possible, nous apportons des modifications supplémentaires afin de garantir aux utilisateurs finaux une expérience fluide pendant la transition :
- Tout d'abord, nous voulons nous assurer que lorsqu'un utilisateur met à jour son application Companion, il est invité à autoriser le Bluetooth. L'application Companion enverra également une notification urgente au lancement lorsqu'elle démarrera le service Companion. Toutefois, si les utilisateurs ont déjà connecté un scanner et qu'ils fonctionnent, ils ne peuvent pas accéder à nouveau à l'application Companion et la connexion du scanner peut toujours être interrompue. Cela est particulièrement vrai s'ils configurent l'application Companion pour des mises à jour automatiques.
- Pour éviter ce problème, nous vous recommandons vivement de prendre également des mesures proactives lors de la mise à jour de votre application afin de tirer parti des modifications apportées au SDK :
Le service de capture fourni via l'application Companion essaiera de détecter quand l'autorisation Bluetooth requise est manquante et renverra une erreur (avec un nouveau code d'erreur ESKT_BLUETOOTHPERMISSIONMISSING). Votre application doit gérer correctement cette erreur et vous demander à l'utilisateur de fournir l'autorisation dans l'application Companion. Votre application peut également vérifier l'état de l'autorisation Bluetooth avant de démarrer Capture. Voici un extrait de code :
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;
}
}
}
});
Le Companion et le SDK mis à jour devraient être publiés vers la mi-mars. Nous avons une version bêta prête à être testée sur demande. Si vous avez des préoccupations ou des questions, veuillez nous contacter via l'e-mail d'assistance aux développeurs normal ou en utilisant le formulaire de commentaires.