Updates für Android 12 Bluetooth-Berechtigungen
Entwickler-Community-Updates by Long PanÜbersetzt über Amazon Translate
Wie Sie vielleicht wissen, hat Google Entwickler dazu gedrängt, ihre Apps für Android 12 und neuere Betriebssysteme zu aktualisieren. Zu den vielen Änderungen gehörten eine Reihe von Änderungen der Bluetooth-Berechtigungen. Die in Android 11 und älteren Versionen erforderliche einzelne Bluetooth-Berechtigung wurde geändert zu drei verschiedenen Bluetooth-Berechtigungen, die Geräteerkennung, Werbung und Verbindung separat abdecken. Außerdem, wenn ein App-Update auf API 31 abzielt oder höher, die Bluetooth-Berechtigung wird nicht automatisch verlängert. Die aktualisierte App benötigt die ausdrückliche Zustimmung der Benutzer.
Während wir uns darauf vorbereiten, unsere Socket Mobile Companion App und CaptureSDK auf die Unterstützung von Android 12 zu aktualisieren, haben wir erkannt, dass der Übergang möglicherweise zu Geräteverbindungsproblemen führen kann, die den Arbeitsablauf des Endbenutzers unterbrechen. Um diese Unterbrechungen so gut wie möglich zu vermeiden so weit wie möglich nehmen wir zusätzliche Änderungen vor, um sicherzustellen, dass die Endbenutzer den Übergang reibungslos durchführen können:
- Zunächst möchten wir sicherstellen, dass ein Benutzer, wenn er seine Companion-App aktualisiert, aufgefordert wird, die Erlaubnis für Bluetooth zu erteilen. Die Companion-App sendet beim Start außerdem eine dringende Benachrichtigung, wenn der Companion-Dienst gestartet wird. Jedoch Wenn Benutzer bereits einen angeschlossenen und funktionierenden Scanner haben, dürfen sie die Companion-App nicht erneut aufrufen und die Scanner-Verbindung kann trotzdem unterbrochen werden. Dies gilt insbesondere, wenn sie die Companion-App für automatische Updates einstellen.
- Um dieses Problem zu vermeiden, empfehlen wir Ihnen dringend, bei der Aktualisierung Ihrer App auch proaktive Maßnahmen zu ergreifen, um die von uns vorgenommenen SDK-Änderungen zu nutzen:
Der über die Companion-App bereitgestellte Capture Service versucht zu erkennen, wann die erforderliche Bluetooth-Berechtigung fehlt, und gibt einen Fehler zurück (mit einem neuen Fehlercode ESKT_BLUETOOTHPERMISSIONMISSING). Ihre App sollte diesen Fehler ordnungsgemäß behandeln und dazu auffordern der Benutzer, um die Erlaubnis in der Companion-App zu erteilen. Ihre App kann auch den Bluetooth-Berechtigungsstatus überprüfen, bevor Sie Capture starten. Hier ist ein Codeausschnitt:
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;
}
}
}
});
Der aktualisierte Companion und das SDK werden voraussichtlich Mitte März veröffentlicht. Auf Anfrage haben wir eine Beta-Version zum Testen bereit. Wenn Sie Bedenken oder Fragen haben, wenden Sie sich bitte über die normale E-Mail-Adresse des Entwicklersupports oder über das Feedback-Formular an uns.