2014-09-27 2 views
1

iOS 응용 프로그램과 함께 작동하고 CoreBluetooth를 사용하는 Bluetooth Low Energy (4.0) 장치를 개발 중입니다. 나는이 응용 프로그램을 성공적으로 만들었으며 장치와 잘 작동합니다. 그러나 iOS 8에서 개발자가 사용자 정의 위젯을 구현할 수있게되었으므로 UINotification "Today"센터에 "Disconnect"버튼을 표시하려고합니다.iOS 8 위젯을 통해 Bluetooth 장치 연결 해제

문제는 다음과 같습니다. 위젯과 자체 응용 프로그램간에 통신 할 수있는 방법이 없다고 생각합니다. 위젯 자체 컨테이너가 있음을 의미합니다. 이것은 또한 개체 연결을 끊기 위해 위젯 자체에서 내 Bluetooth 장치에 대한 참조를 보유하고있는 응용 프로그램의 Bluetooth 개체에 액세스 할 수 없다는 것을 의미합니다. 위젯 클래스 안에 새로운 블루투스 객체를 만들고 iOS 시스템에서 블루투스 연결을 검색 할 수 있지만이 시점에서 BT 디바이스의 연결을 끊어도 앱 내부에 여전히 참조가 있습니다.

누구든지 내가하려는 일에 대한 통찰력을 제공 할 수 있습니까?

+0

위젯은 자체 컨테이너가 아니라 완전히 별개의 프로세스입니다. –

+0

또 다른 옵션은 BLE 연결을 통해 앱과 통신하는 것입니다. –

답변

1

shared NSUserDefaults database을 사용하여 앱과 확장 프로그램간에 데이터를 전송할 수 있습니다. NSUserDefaults key value observing에 관심이있을 수도 있습니다.

앱 확장 프로그램은 앱을 포함하고 있지 않으므로 이러한 용도로 사용 된 것인지 확실하지 않습니다.

그러나 다른 옵션은 포함하는 앱에 custom URL scheme을 구현 한 다음 openURL을 사용하여 포함 된 앱을 열고 연결 해제 작업 (또는 확장 프로그램에서 수행 할 작업)을 실행하는 것입니다.

+0

그 제안에 감사드립니다, 정말 고맙습니다. 맞춤 URL 스키마가 도움이 될 것 같습니다. 그러나, 나는 NSUserDefaults 핵심 가치 관찰에 대한 귀하의 제안에 흥미를 느끼고 있습니다. 위젯과 앱이 본질적으로 서로 독립적이어서 어떻게 작동합니까? 앱이 위젯을 통해 여전히 이런 식으로 알림을받을 수 있습니까? 감사! – Teddy13

+1

@ Teddy13 키 값 관측이 블루투스 백그라운드 모드에서 작동하는지 여부는 확실하지 않습니다. 당신은 확실하게'CoreBluetooth' 델리게이트 메소드 구현에서'NSUserDefaults'를 사용하여 적어도 사용자가 위젯을 통해 "연결 해제 요청"을했는지를 확인할 수 있습니다. –

+1

@ Teddy13하지만 맞아요 - 맞춤 URL 스키마는 아마도 갈 길입니다. 확장 프로그램과 포함 앱간에 이벤트 기반 통신을 수행하는 좋은 방법은 없습니다. –

관련 문제