0

현재 장치의 위치를 ​​서버로 보내야하는 앱을 개발 중입니다. 배경 에이전트와 위치에 액세스하기 위해 the MSDN articles을 통해 작업했습니다. 이것은 지금까지 작동합니다. MovementThreshold 설정보다 멀리 떨어진 위치 변경을 트리거하면 내 위치가 서버로 전송됩니다.Windows Phone 8에서 백그라운드 위치 에이전트를 디버깅하는 방법

그러나 백그라운드 에이전트 테스트가 복잡 할 수 있음을 읽었습니다. 에뮬레이터를 사용하면 장치의 위치를 ​​쉽게 변경할 수 있습니다. 그러나 실제 전화에서 위치 배경 서비스는 유휴 런타임에서 30 분으로 제한되며 명령 실행에는 최대 25 초가 걸립니다. 배경 에이전트는 전화기의 설정 화면에서 사용자가 비활성화 할 수도 있습니다. 에이전트가 두 번 이상 연속으로 충돌 할 때도 비활성화됩니다. 또 다른 한계는 inactive background agents are stopped after 4 hours입니다 (they don't update an apps live tile).

내 앱이 라이브 타일 카운터를 업데이트하므로 내 백그라운드 에이전트가 내 앱에서 다시 시작하지 않고 최대 14 일 동안 실행되어야한다고 생각합니다. 저는 어제부터 오늘까지 앱을 테스트했으며 백그라운드 에이전트가 실행 중임을 보았습니다 (설정에서 찾았을 때). 또한 위쪽 막대의 작은 점이 표시되어 프로그램이 전화 위치 정보에 액세스하고 있음을 나타냅니다. 그러나 때로는 점이 사라지고 제 배경 에이전트가 명백한 이유없이 죽게됩니다.

그러므로 내 질문은 다음과 같습니다

  • 어떻게 필요없이 실제 장치에 대한 신뢰성 테스트 지리적 위치는 전화와 연결 디버깅 노트북과 함께 여행을 할 수 있습니까?
  • 내가 언급 한 제한 시간 시나리오 (30 분, 4 시간, 14 일)를 적시에 테스트 할 수 있습니까?
  • 백그라운드 에이전트의 이러한 두 가지 충돌을 어떻게 확인할 수 있습니까?
+0

"내 앱이 라이브 타일 카운터를 업데이트하므로 내 백그라운드 에이전트가 내 앱에서 다시 시작하지 않고 최대 14 일 동안 실행되어야합니다."WP7에서는이 사실이 적용됩니다. WP8에서 사용자의 홈 화면에 타일이 고정되어있는 한 백그라운드 에이전트가 만료되지 않습니다 (고정되어 있지 않으면 14 일 규칙이 적용됩니다) –

+0

이 정보에 대한 정보를 얻을 수 있습니까? 이는 앱의 타일을 고정하지 않으면 모든 백그라운드 에이전트가 중단없이 WP8에서 최대 14 일 동안 실행될 수 있음을 의미합니다. –

+0

중단없이, 만료 날짜에 대해서만 이야기하고있었습니다. "30 분마다 25 초 실행"규칙은 WP8에 계속 적용됩니다. 또한, 내 주장은 부분적으로 사실입니다 : http://msdn.microsoft.com/en-us/library/windowsphone/develop/hh202942(v=vs.105).aspx'앱의 타일이 전화의 시작 화면에서 백그라운드 에이전트가 Update (ShellTileData)를 호출하여 타일을 업데이트 할 때마다 백그라운드 에이전트 스케줄의 만료 시간이 자동으로 2 주로 연장되므로 만료일을 연기하려면 명시 적으로 타일을 업데이트해야합니다. –

답변

0

WP8이 백그라운드 에이전트를 정의하는 방법에 대한 몇 가지 잘못된 해석을했습니다. 위치에 대한 새로운 WP8 백그라운드 에이전트는 앱이 실행 중일 때만 활성화됩니다. 즉, 앱을 뒤로 버튼으로 닫지 않아야합니다. 그러나 Windows 버튼으로 홈 화면으로 전환하거나 멀티 태스킹에서 다른 앱에 액세스 할 수있는 긴 보류 뒤로 버튼으로 전환 할 수 있습니다.

  • 가 어떻게 필요없이 실제 장치에 대한 신뢰성 테스트 지리적 위치는 전화와 연결 디버깅 노트북과 함께 여행을 할 수 있습니다 내 질문에 대해서는

    ?

  • 내가 언급 한 제한 시간 시나리오 (30 분, 4 시간, 14 일)를 적시에 테스트 할 수 있습니까?

아직 적절한 해결책이 없습니다. 실제 장치를 사용하여 테스트하고 제약 조건을 테스트하는 데 필요한 시간에 어느 정도 제한됩니다.

  • 백그라운드 에이전트의 이러한 두 가지 충돌을 어떻게 확인할 수 있습니까?

이 방법을 프로그래밍 방식으로 확인하는 방법을 모르겠습니다. 사용자가이 충돌하는 앱을 휴대 전화 설정의 백그라운드 작업 목록에 차단 된 앱으로 표시 할 수 있습니다. 위에 제공된 링크를 통해이 목록의 차단 된 앱을 감지 할 수있는 방법이 있어야합니다.

내 프로젝트의 경우 잠긴 화면 또는 열린 앱이없는 위치 배경 에이전트가 필요했습니다.따라서 PeriodicAgent를 사용하여 30 분마다 한 번씩 위치를 요구하므로 서버로 보낼 수 있습니다. 그러나이 배경 에이전트는 응용 프로그램 설정이나 클래스에 액세스 할 수 없습니다 (Communication between foreground app and background agent 참조).