Android Bluetooth-Verbindung Zu Sichern Unsicher
Ich habe das Spiel mit der bluetooth-API für Android 2.2 (API level 8, HTC Desire) und habe eine app die Verbindung zu einem eingebetteten Bluetooth-Gerät mithilfe:
device.createRfcommSocketToServiceRecord(DEV_UUID);
Dieser erzeugt eine pairing-Anfrage, wie erwartet, jedoch, um zu rationalisieren die Verbindung Prozess, den ich vermeiden wollte, die Interaktion mit dem Benutzer bei der Paarung kamen so nach API-level 10 (HTC Desire mit CyanogenMod 7), so dass ich verwenden könnte:
device.createInsecureRfcommSocketToServiceRecord(DEV_UUID);
Beim testen dieser auch wie erwartet funktioniert (anschließen, ohne dass der Benutzer das paar), aber wenn ich versuche zu erstellen, die die sichere RfcommSocket unter API-level 10 als vorher mit 2.2 bekomme ich ein connection refused exception...
java.io.IOException: Connection refused
at android.bluetooth.BluetoothSocket.connectNative(Native Method)
at android.bluetooth.BluetoothSocket.connect(BluetoothSocket.java:204)
Soweit ich sagen kann, dies sollte immer noch funktionieren in der gleichen Weise, dass der Benutzer zu koppeln?
EDIT:
Wieder mal versucht mit dem folgenden code, und das Ergebnis ist das gleiche (arbeiten für unsicher zu sein, aber nicht für sicher), werde ich versuchen, meine Hände auf einen stock 2.3-Gerät zu testen.
try {
Method m = dev.getClass().getMethod("createInsecureRfcommSocketToServiceRecord", new Class[] { UUID.class } );
BluetoothSocket bs = (BluetoothSocket)m.invoke(dev, devUUID);
Log.d("TEST", "Method Invoked");
bs.connect();
Log.d("TEST", "Connected to socket");
bs.close();
Log.d("TEST", "Closed Socket");
}
Dank Jack, der Probleme zu sein scheinen, verursacht durch 2.1 ja hoffentlich, ich sollte nicht betroffen sein, werde ich versuchen, die Verbindung mit der spiegelung und sehen, ob das hilft.
InformationsquelleAutor DarkRyuu | 2011-11-26
Du musst angemeldet sein, um einen Kommentar abzugeben.
Während der Suche nach der Lösung eines ähnlichen Problems in meine app, die ich gefunden habe, dieses blog aus code.google.com
Wird es helfen, alle diejenigen, die noch auf der Suche für dieses problem die Lösung auf SO
http://mobisocial.stanford.edu/news/2011/03/bluetooth-reflection-and-legacy-nfc/ (link nicht mehr funktioniert)
Ist die Lösung sehr einfach werden jetzt. Nur sind InsecureBluetooth.java in Ihrem Projekt an, und ändern 2 Zeilen in BluetoothChatService.java.
und
Thats it !
Ich habe versucht, mit tmp = InsecureBluetooth.listenUsingRfcommWithServiceRecord(mAdapter, NAME, MY_UUID, true); aber es wirft eine Ausnahme "mHandler".... Weiss jemand wie man dieses Problem beheben
Hi @Sourab Sharma, es scheint, dass der link, den Sie aktuell nicht verfügbar ist, gibt es eine andere Website, wir könnten den code? oder könnten Sie mailen Sie mir eine Kopie davon, bitte? Meine mail ist yttyhf2006#gmail.com. Danke.
Hi @Sourab Sharma, ich habe eine Kopie von dem code @ stanford.edu/~tpurtell/InsecureBluetooth.java. Vielen Dank an alle die gleiche. Aber ich habe das problem gemeldet 'connect: Verbindung wird nicht erstellt" wenn ich rufen Sie die Funktion verbinden des BluetoothSocket.
InformationsquelleAutor Sourab Sharma