>

종료시 백그라운드에서 연결/연결 해제 할 때 어떤 델리게이트 메소드가 안정적으로 실행되는지 파악하려고합니다. 사용자가 내 BLE 장치에 충분히 가까워지면 자동 연결 한 다음 빠른 방법으로 장치와 데이터를 교환하려고합니다.

이 유스 케이스로 위임 메소드를 안정적으로 실행할 수있는 것처럼 보이지 않습니다. bluetooth-central 의 배경 모드가 있습니다  켜면 적절한 대리인이 사용 중이며 내가 작성한 전체 BT 모듈은 앱이 활성화되어 있거나 작업 전환기에 실제로 잘 작동합니다. 이 마지막 유스 케이스로 마무리해야합니다. 앱이 종료됩니다.

원래의 계획은 iBeacon을 사용하는 것이었지만 결국 블루투스 페어링이 유지되고 지속될 필요가 있기 때문에 응용 프로그램이 종료되지 않도록하는 잘못된 접근 방식이되었습니다. didEnterRegion 와 같은 iBeacon 배경/종료 이벤트를 얻는 유일한 방법  또는 didExitRegion  앱이 사용자와의 연결/페어링 단계를 거친 후 (iOS 시스템 BT 메뉴에서)이 기기를 잊어 버리는 것입니다. 따라서 사용자가 나를 위해이 작업을 수행하지 않으면 응용 프로그램이 장치와 페어링을 해제 할 수 없기 때문에 (상자에서 AT + 명령을 시도하여 인증/본드를 지우고 연결을 끊었습니다).

그래서 ... 이제 남은 유일한 계획은 centralManager:(CBCentralManager *)central didConnectPeripheral:(CBPeripheral *)peripheral 를 가질 수있는 방법을 찾는 것입니다  그리고 didDisconnectPeripheral  iOS 시스템이 다시 연결될 때마다 메소드가 실행됩니다. 따라서 기기가 켜지거나 사용자가 가까이있을 때 다시 가까이있을 때

  • 답변 # 1

    마침내 답을 찾았습니다! 신뢰할 수있는 방법은 확실히 iBeacon입니다 ... 블루투스 페어링 연결을 사용하고 있기 때문에 사용할 수 없다고 생각했는데 장치가 연결되면 iBeacon이 광고되지 않습니다. 이것은 이미 다른 장치에 연결된 장치에서 iBeacon 출력을 감지 할 수 없다는 사실에서 "정말"입니다. 최근까지 2 개의 Bluetooth 칩이 내장 된 보드를 구축 할 때까지 생각하지 못했습니다!

    내가 한 것은 전용 iBeacon 레인저에 하나의 BT 칩을 사용하여 앱을보다 안정적이고 안정적인 방식으로 깨우고 다른 하나는 전용 BT 연결/페어링/인증/본드 상태에 대한 것입니다. 이제 장치에서 암호화 된 사용자 지정 특성을 사용할 수있을뿐만 아니라 장치가 종료되거나 잠자기 상태에서 앱을 다시 깨울 수 있습니다! :)

    다음은 비슷한 질문을하고 답변 한 기사입니다.

  • 이전 java - httpclient - 오류 : comandroidvolleyredirecterror
  • 다음 Service Fabric에서 신뢰할 수있는 액터에 대한 엔드 포인트 정의 (온 프레미스 설정)