3
我有一個自定義的Chromecast接收器,當用戶從Cast按鈕中選擇Chromecast設備時,我會從Android應用中啓動該接收器。我發現我經常在初始連接上發生超時,但第二次工作正常。問題很可能是我的Web服務器沒有足夠快速響應,還是有其他因素可能導致超時?啓動自定義Chromecast接收器有時會超時
我得到onApplicationConnectionFailed()中的CastStatusCodes.TIMEOUT。
我的代碼,推出 (編輯成包括launchApplication)
Builder builder = new GoogleApiClient.Builder(mContext);
builder.addApi(Cast.API, apiOptionsBuilder.build());
builder.addConnectionCallbacks(this);
builder.addOnConnectionFailedListener(this);
mApiClient = builder.build();
if (mApiClient == null) return;
mApiClient.connect();
...
Cast.CastApi.launchApplication(mApiClient, mApplicationId)
.setResultCallback(new ResultCallback<Cast.ApplicationConnectionResult>() {
@Override
public void onResult(ApplicationConnectionResult result) {
if (result.getStatus().isSuccess()) {
onApplicationConnected(
result.getApplicationMetadata(),
result.getApplicationStatus(),
result.getSessionId(),
result.getWasLaunched());
} else {
onApplicationConnectionFailed(result.getStatus().getStatusCode());
}
}
});
好的,我會檢查網絡端的東西 –
你對接收器的情況有任何想法app **成功**調用'launchApplication()'後啓動,但'result.getStatus()'返回TIMEOUT(而不是成功)?然後,接收器應用程序會在一段時間後關閉(由於沒有發送者與它連接)。 –
如果接收者獲得啓動消息,它將啓動啓動過程,然後回覆發件人;但是,如果響應沒有及時將其發送給發件人,發件人會認爲超時;事實上它不知道發射是否成功,因爲它沒有收到任何消息;因此可以看到啓動的應用程序,但發件人會引發超時錯誤。我建議你也檢查一下你的接收器日誌,看看有沒有什麼東西可以指出你的原因。 –