2016-10-11 2 views
0

Ich schreibe eine Android/iOS-Anwendung, die ein anderes Telefon erkennt/sucht, das Bluetooth aktiviert hat, und diesen Namen und die MAC-Adresse für die weitere Entwicklung von Funktionen abruft. Die Anwendung wird als Hintergrunddienst ausgeführt, der das Bluetooth-Gerät weiterhin scannt.Ist es möglich, dass die Verbindungsanfrage von Android/ios Bluetooth im erkennbaren Modus programmatisch blockiert/abgelehnt wird?

Probleme:

  1. Für Android, das Telefon Bluetooth in Erkennbar-Modus schalten muss, die ein anderes Telefon den Namen und die MAC-Adresse scannen/erkennen und erhalten lassen können. Also mache ich mir Sorgen, dass der Telefonbenutzer ständig ein anderes Telefon anruft, das eine Störung verursacht, weil die Verbindungspaaranforderung das Telefon veranlassen kann, ein Bestätigungsdialogfeld aufzusuchen. Ist es möglich, die Verbindungsanfrage im auffindbaren Modus programmatisch zu blockieren/abzulehnen? Das Telefon kann Bluetooth-Geräte scannen und kann die Informationen abrufen, kann jedoch keine Verbindung anfordern, während die Anwendung ausgeführt wird.

  2. Für iOs gibt es das gleiche Problem, aber es gibt eine andere Frage, die ich stellen möchte. Kann Bluetooth den Hintergrund wie Android-Hintergrund-Service weiter scannen?

  3. Deaktivieren Sie den Bildschirm von Android-Geräten, die das Bluetooth-Signal noch scannen kann. Aber iOs Geräte können nicht. Ist es möglich, iOs Bluetooth-Gerät noch scannbar zu lassen, wenn der Bildschirm ausgeschaltet ist.

Vielen Dank!

Antwort

0

Sie können im Hintergrund nach Bluetooth-Geräten suchen (auch wenn das Gerät gesperrt ist), sofern Sie diese Hintergrundfunktion zu Ihrer App hinzufügen. Starten Sie einfach den Scanvorgang, wenn Ihre App gestartet wird, und hören Sie nicht auf.

Dies erfordert jedoch eine erhebliche Menge an Akkustrom (Scans alle 20 ms) und sogar noch mehr, wenn sich tatsächlich Bluetooth-Geräte in der Nähe befinden (da eine Scan-Antwort angefordert werden kann).

Schauen Sie sich stattdessen die Funktionalität Region Monitoring and iBeacon in den CoreLocation-Klassen an. Das ist für die energieeffiziente Entdeckung von BLE Beacons gedacht.

Sie können die MAC-Adressen unter iOS nicht abrufen. Sie erhalten UUIDs.

Wenn der Benutzer die App tötet, wird der Hintergrund gescannt.

Verwandte Themen