2014-09-09 2 views
1

Chromecast Companion Library (CCL)와 MediaRouterButton을 함께 사용하는 Chromecast 용 Android 앱을 개발 중입니다. 첫 번째 활동이 만들어지면 onCastDeviceDetected가 호출되고 MediaRouterButton이 visible로 설정됩니다. 두 번째 활동은 첫 번째 활동 내에서 만들어 지지만 두 번째 활동에서는 onCastDeviceDetected가 호출되지 않습니다! 여러 활동, MediaRouterButton 및 CCL의 조합으로 발견 된 Chromecast 기기의 상태를 유지하는 가장 좋은 방법은 무엇입니까?Chromecast에서 여러 활동 및 CCL로 발견

CCL 버전 1.8에서는 새로운 활동을 시작할 때 onCastDeviceDetected가 항상 호출되었으므로이 문제는 버전 1.9에 도입 된 것 같습니다.

+0

어떻게 CCL 및 MediaRouterButton을 사용하고 있는지 보여줄 수 있습니까? 코드를 추가하면 유용한 대답 기회가 크게 늘어납니다. – kkuilla

답변

1

내가 묻는 내용이 다르게 작동했다면 확실하지 않습니다. 나는 코드를 보았고 그 주변의 행동에는 어떤 변화도 없었지만 나는 틀릴 수있다.

지금 CCL은 사용자가이를 수행 할 수있는 API를 제공하지 않습니다. CCL의 관점에서 볼 때, 한 활동에서 다른 활동으로 이동할 때 경로 가용성이 변경되지 않았으므로 해당 콜백이 실행되지 않습니다 (의도도 의도하지 않았습니다). 현재 직면 한 문제는 다음 중 하나로 해결할 수 있습니다.

  • 응용 프로그램 인스턴스의 경로 가용성을 추적합니다. Application 클래스에 VideoCastConsumer를 등록하고 onCastAvailabilityChanged()를 수신합니다. 결과를 응용 프로그램 인스턴스에 보관 한 다음 새 작업을 시작할 때 캐스팅 장치가 있는지 여부에 대해 응용 프로그램 인스턴스에 문의하십시오 (앞서 설명한 보존 된 값을 기반으로 함). 그것은 초기 상태를 줄 것입니다. 당신의 활동이 같은 콜백으로 소비자를 등록하게하십시오. 그 시점에서 활동은 그것이 살아있는 한 독립적입니다.
  • CCL에 대한 기능 요청을 제출하여 API를 추가하여 필요에 따라 애플리케이션 인스턴스에 추가해야합니다.
+0

CCL API가 업데이트 되었습니까? 아니면이 기능을 포함하도록 업데이트 할 계획이 있습니까? – Price

+1

예; 얼마 전 사용 가능한 모든 경로가 있는지 여부를 알려주는 새로운 API가 제공되었습니다. VideoCastManager. 기본적으로 모든 액티비티에서 isAnyRouteAvailable() 기본적으로 다음 두 가지 작업을 수행해야한다. (1) 앞에서 설명한대로 onCastAvailabilityChanged (boolean castPresent)에 콜백을 등록하고이 새 API를 호출하여 현재 상태를 설정한다. 새로운 API를 사용하면 즉시 동기화 할 수 있으며 콜백을 통해 활동의 전체 라이프 사이클 동안 동기화 상태를 유지할 수 있습니다. –