我有一个自定义Chromecast接收器,当用户从“投射”按钮中选择他们的Chromecast设备时,我会从Android应用启动它。我发现我经常在初始连接上超时,但第二次它工作正常。问题很可能是我的网络服务器响应速度不够快,还是有其他可能导致超时的因素?
我在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());
}
}
});
答案 0 :(得分:0)
您发布的代码是在加载应用程序之前,因此如果您在onApplicationConnectionFailed中获得超时,那么代码中的代码将会更低,而不是您在此处发布的部分。如果您的应用程序加载失败,则需要检查您的网络和Web服务器等。