2012-04-02 13 views
2

Ich entwickle Blog Speaker App.Erkennen, wenn Bluetooth auf iOS5 deaktiviert ist

Ich möchte den Ton anhalten, wenn Bluetooth wie iPod App deaktiviert ist. Ich dachte, es ist nicht möglich, ohne private API nach dem Lesen zu verwenden. Check if Bluetooth is Enabled?

Aber mein Kunde sagte mir, dass Rhapsody und DI Radio-Apps beide es unterstützen.

Dann fand ich iOS5 hat Core Bluetooth Framework. https://developer.apple.com/library/ios/documentation/CoreBluetooth/Reference/CoreBluetooth_Framework/CoreBluetooth_Framework.pdf

CBCentralManagerStatePoweredOff Status scheint wie der eine.

Aber die Beschreibung sagt, dass diese API nur Bluetooth 4.0 Low-Energy-Geräte unterstützt. Hat jemand versucht, das Gleiche zu tun?

Ich möchte aktuelle beliebte Bluetooth-Headsets oder Bluetooth-fähigen Lenkrad auf dem Auto unterstützen. Ich weiß nicht, ob es sich lohnt, es zu versuchen, wenn es nur einige brandneue Bluetooth unterstützt.

+1

Ich bin mir nicht sicher, was die eigentliche Frage hier ist. Wenn Sie CBCentralManagerState überprüfen, können Sie sehen, ob Bluetooth für das Gerät aktiviert oder deaktiviert ist. – mwright

+0

Danke, ich werde es überprüfen! –

Antwort

2

Für Audio, wobei der Schwerpunkt auf Bluetooth überprüfen wie der falsche Ansatz.

Ich denke, was Sie suchen, ist Handling Audio Hardware Route Changes.

Sie werden bemerken, dass alle von dem der pausieren dem integrierten iPod App folgenden verursachen:

  • Bluetooth-Gerät entfernt wird (möglicherweise, weil Bluetooth deaktiviert wurde).
  • Kopfhörer sind nicht angeschlossen.
  • Gerät wird aus der Dockingstation entfernt.

Sie erhalten das richtige Verhalten, wenn Sie die Audio Session API verwenden.

+0

Es scheint so, als ob ich das wollte. Wenn ich alle Verhaltensweisen gleichzeitig unterstützen kann, wäre das großartig. Vielen Dank. –

1

Auf BLE Sie ein Update auf die Manager erhalten den Zustand enthält:

enum { 
CBCentralManagerStateUnknown = 0, // State unknown, 
update imminent. 
CBCentralManagerStateResetting, // The connection with the system service was  momentarily lost, 
update imminent. 
CBCentralManagerStateUnsupported, // The platform doesn't support Bluetooth Low Energy. 
CBCentralManagerStateUnauthorized, // The app is not authorized to use Bluetooth Low Energy. 
CBCentralManagerStatePoweredOff, // Bluetooth is currently powered off. 
CBCentralManagerStatePoweredOn, // Bluetooth is currently powered on and available to use. 
}; 

, die Sie über den obligatorischen Rückruf mit zB speziell klingt

centralManager:didUpdateState...{ 
if ([manager state] == CBCentralManagerStatePoweredOff) 
{ 
[musicPlayer pause] 
} 
} 
+0

Danke, ich werde es überprüfen! –

Verwandte Themen