새로운 모션 활동 관리자 API (CMMotionActivityManager
)를 테스트했습니다. 앱이 포 그라운드에서 실행되지 않는 동안 startActivityUpdatesToQueue
에서 모션 업데이트를 수신하고 처리 할 수있는 앱을 만들고 싶습니다. 앱이 포 그라운드에있는 동안 모션 업데이트 (고정, 걷기, 실행, 자동차, 알 수 없음)를 올바르게 수신하지만 배경에 들어가 자마자 정지 상태가되는 순간 모션 업데이트는 앱에서 중단됩니다.CMMotionActivityManager - 앱이 일시 중지 또는 백그라운드에서 모션 활동 업데이트를 수신합니다.
CMMotionActivityManager Class Reference :.. "은이 방법이 메소드를 호출하면 비동기 동작 데이터의 추적을 개시하고, 모션 활동 관리 장치에 적용되는 현재 움직임을보고, 특정 큐 처리기 블록을 실행하고 그 후, 모션 액티비티 관리자는 모션 데이터가 변경 될 때만 핸들러 블록을 실행합니다. 핸들러 블록은 최선의 노력으로 실행되며 앱이 일시 중지 된 동안에는 업데이트가 전달되지 않습니다. 앱이 일시 중지 된 동안 업데이트가 도착하면 마지막 업데이트가 전달됩니다. 앱이 일시 중지 된 동안 발생한 모든 업데이트를 받으려면 queryActivityStartingFromDate:toDate:toQueue:withHandler:
메서드를 사용하십시오. "
내 앱을 백그라운드에서 실행하고 모션 데이터 (실시간)를 수신하는 방법을 원합니다. 현재 백그라운드에서 앱을 실행하는 유일한 방법은 백그라운드 서비스를 사용하는 것입니다. 그러나 허용 된 백그라운드 서비스 목록에 '모션 업데이트'가 없습니다.
App Store Review Guidelines : "멀티 태스킹 응용 프로그램은 의도 한 용도로만 백그라운드 서비스를 사용할 수 있습니다 목적 : VoIP, 오디오 재생, 위치, 작업 완료, 지역 알림 등 " 배터리를 절약하기 위해 항상 위치 업데이트 (GPS)를하고 싶지 않습니다. 계속해서 위치 업데이트를하고 있지만 GPS를 끄면 앱이 일시 중지됩니다.
백그라운드에서 실행중인 앱을 유지하고 모션 활동 업데이트를받는 방법을 알려주세요. 방법이 있어야합니다 : Strava 앱을 사용해 보았습니다 ... 앱이 백그라운드에 있더라도 사용자가 일시 중지하면 GPS가 전환됩니다. 사용자가 달리기를 다시 시작하면 GPS가 자동으로 켜지 며 (앱이 백그라운드에서 실행되는 동안) ... 이는 앱이 백그라운드에서 실행 중이며 GPS가 꺼져있는 동안에도 모션 활동 업데이트를 적극적으로 수신하고 있음을 의미합니다.
미리 감사드립니다.
@Jackson 어떤 해결책이나 대안을 찾았습니까? –
@AshokKumarS 사실은 아니지만 아래의 답변에 대한 설명이 나와 있습니다. 앱을 만들어야합니다. 다른 수단을 통해 백그라운드에서 실행하고 평소처럼 Core Motion을 사용하십시오. – Jackson