Android Bluetooth-Verbindung ohne Benutzer die Eingabe der Pin und Bestätigung Mit Android-API
Ich bin ein Anfänger in der Android Programmierung, da ich erst angefangen vor 3 Monaten. Ich mache ein Projekt, das verbindet die android-app zum arduino über bluetooth. Ich habe bereits einen code für die android app (bluetooth.adapter,buchsen,.etc.). Der code für die Verbindung ist bereits in Arbeit. Eines der Ziele ist für die android-app automatisch geben Sie das Kennwort ein, wenn die Paarung mit dem bluetooth-Gerät ein, ohne zu Fragen, Benutzer zur Eingabe der PIN.
Die alten Beiträge in diesem forum nicht viel helfen. (viele meinten, die Verwendung unsicherer Modus, aber ich habe den sicheren Modus auch in meinem Fall, der arduino ist der server während der Handy-app ist der client, also die createInsecureRfcommSocketToServicerecord () - server-Methode funktioniert bei mir nicht)
Suchte ich und fand diese in android-Entwickler-Website über das bluetoothdevice Klasse:
setPairingConfirmation(boolean bestätigen)
Bestätigen Sie den Zugangsschlüssel für PAIRING_VARIANT_PASSKEY_CONFIRMATION koppeln.
PAIRING_VARIANT_PIN = "Der Benutzer wird aufgefordert, einen pin oder ein app geben Sie eine pin für den Benutzer".
PAIRING_VARIANT_PASSKEY_CONFIRMATION = "Der Benutzer wird dazu aufgefordert werden, bestätigen Sie das Kennwort auf dem Bildschirm angezeigt oder eine app, bestätigen Sie das Kennwort für den Benutzer"
Scheint mit dem code, der app werden die eins-zu-Kennwort eingeben und bestätigen
das Passwort, so dass es eine "auto-connect" - Funktionen, aber die android-Website nicht geben, ein Beispiel-code wie diesen verwenden. Kennt einer von Euch ein Beispielcode in der Verwendung dieser oder verwandter Verfahren? Ich Schätze Ihre Hilfe!
InformationsquelleAutor ian | 2016-02-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Zunächst zu klären, diese Lösung ist speziell für die neuere version der API (15 oder erst später?)
Fand ich die Antwort geschrieben in einem anderen post (siehe Roldofo Antwort in Hier). Hier ist mein reorganisiert Antwort mit detaillierten code.
Kurz gesagt, müssen Sie setup ein broadcast-receiver Falle der ACTION_PAIRING_REQUEST, und dann programmatisch übergeben Sie die PIN ein und bestätigen Sie.
Registrieren Sie einen broadcast-receiver:
Die definition des Empfängers:
Dann auf Ihre Aktivität oder fragment (wo auch immer Sie möchten, initiieren Sie die Kopplung), können Sie die folgenden definiert pairDevice () - Methode aufrufen pairing-Versuch (um eine ACTION_PAIRING_REQUEST)
Warum ist setPairingConfirmation() benötigt ? Android docs sagen, dass es gilt nur für PAIRING_VARIANT_PASSKEY_CONFIRMATION, nicht-legacy-Paarung. Darüber hinaus Android6 es erfordert BLUETOOTH_PRIVILEGED
Leider in der aktuellen API-Ebene die BLUETOOTH_PRIVILEGED ist nicht verfügbar. Doc:
This is not available to third party applications.
was ist zu tun, wenn ich nicht wollen, dass die pairing-Taste input-pop-up sichtbar zu sein?
Ich sehe Sie in der Dokumentation
BluetoothDevice.setPairingConfirmation
und erkennen, es Bedarf der Zustimmung BLUETOOTH_ADMIN statt BLUETOOTH_PRIVILEGEDInformationsquelleAutor ian
Ich auch vor dem gleichen problem und nach all den Recherchen habe ich herausgefunden, das unterhalb Lösung.
(Getestet und funktioniert!!!)
Ich bin im Grunde auf der Suche für ein bestimmtes bluetooth-Gerät (ich weiß, MAC-Adresse) und ein paar mal gefunden. Das erste, was zu tun ist, zu erstellen pair Anfrage über boradcast-Empfänger und die Anforderung verarbeitet, wie unten beschrieben.
Den Sie schreiben müssen, der broadcastReceiver und handhaben es wie folgt.
Voila! Sie sollten in der Lage sein zu koppeln um bluetooth-Gerät ohne MANUELLE EINGRIFFE.
Hoffe, das hilft 🙂 Bitte stellen Sie es richtig beantworten, wenn es für Sie funktioniert.
Ja. Soweit ich weiß, funktioniert es. Können Sie bitte versuchen Sie es und posten Sie Ihre update hier.
können Sie etwas Licht auf meine Frage
InformationsquelleAutor Varun A M