CoreBluetooth Werbung im Hintergrund auf iOS 10

First: Ich habe ein iPad Air 2 und ein iPhone 7. Zum weiteren Lesen schätzen wir, dass die App auf dem iPad und im Hintergrundmodus auf dem iPhone aktiv und geöffnet ist. Die App ist selbst mit denselben Bluetooth-Dienst-UUIDs und demselben DataLocalNameKey identisch.

Ich möchte eine App schreiben, die einen Bluetooth-Dienst im Hintergrund ankündigt und diesen Dienst erkennt (auch im Hintergrund optimal). Wie ich schon gelesen habe Ich kann die Apples Beacon-Technologie nicht verwenden, da es dort nur möglich ist, von Beacons in der Nähe des Hintergrunds gescannt / benachrichtigt zu werden (ich habe dies getestet, funktioniert einwandfrei), aber keine Werbung zu schalten. Also habe ich angefangen, CoreBluetooth wie in der SO-Antwort beschrieben zu verwenden, da es dort möglich ist, im Hintergrund zu werben.

Meine App ruftdidDiscoverPeripheral -Methode in CBCentralManagerDelegate auf dem iPhone (App im Hintergrund), sodass das iPad erkannt wurde. DasisAdvertising Eigentum von CBPeripheralManager auf dem iPhone isttrue. AberdidDiscoverPeripheral wird auf dem iPad nicht aufgerufen. Ich bin etwas durcheinander. Eine Möglichkeit ist, dass mein iPad das iPhone aus bestimmten Gründen nicht mehr erkennt oder mein iPhone lügt und keine Werbung macht.

So dachte ich, ich bin nur ein bisschen dumm und habe nach "CoreBluetooth Debug Apps" gegoogelt. Ich fandNäh und AltBeacon. Und bei beiden Apps ist das Verhalten das gleiche! Wenn Sie die Werbe-App im Hintergrund (Home / Sleep-Taste drücken), kann sie die Browsing-App nicht mehr erkennen. Wenn Sie die App im Hintergrund öffnen, wird sie sofort erkannt. Beide Apps erwähnen, dass es mit ihnen möglich ist, im Hintergrund zu senden.

Mache ich etwas falsch; wird dieses Verhalten erwartet? Habe ich den Rahmen falsch verstanden? Können Sie dieses Verhalten bestätigen?

Um dies zu bestätigen, installieren Sie am schnellstenNäh auf zwei Geräten (Sie müssen das @ hinzufügNSBluetoothPeripheralUsageDescription Taste auf Info.plist) stellen Sie ein Gerät für die Übertragung ein und drücken Sie die Home-Taste.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage