我有一个与 Ricoh Theta 相机通信的应用程序。相机创建其 WiFi 网络和 OSC(开放式球形相机)网络服务器(IP 192.168.1.1,端口 80),我在其上连接我的设备。如果只有 WiFi 开启,一切正常。但是当我也打开移动数据时,我会收到超时错误。
不确定它是否有用,但这里有一些代码:
protected void executePost(String request, final String body, final RequestListener listener) {
StringRequest stringRequest = new StringRequest(Request.Method.POST, "http://" + mIpAddress + ":" + mPort + request,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
if(listener != null) {
handleResponse(response, listener);
}
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
if(listener != null) {
listener.onError(error);
}
}
}
)
{
@Override
public byte[] getBody() throws AuthFailureError {
return body == null ? null : body.getBytes();
}
};
int socketTimeout = 30000;
RetryPolicy policy = new DefaultRetryPolicy(socketTimeout, DefaultRetryPolicy.DEFAULT_MAX_RETRIES, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT);
stringRequest.setRetryPolicy(policy);
stringRequest.setTag(REQUEST_TAG);
mRequestQueue.add(stringRequest);
}
有没有办法告诉 Volley 只使用 WiFi?还是先?