问题:我的应用程序可以成功连接到Microsoft SQL 2014服务器,但只有当我的手机通过WIFI连接时。一旦我关闭WIFI,我就无法再连接。它不应该切换到4G连接吗?
代码:
private class AuthenticateDB extends AsyncTask<String[], Void, Connection> {
private OnAuthenticationSuccess mCallbacks;
private String userName;
private AuthenticateDB(OnAuthenticationSuccess callbacks){
this.mCallbacks = callbacks;
}
@Override
protected Connection doInBackground(String[]... params) {
Connection connection;
userName = params[0][0];
String password = params[0][1];
String serverIP = params[0][2];
String connString = "jdbc:jtds:sqlserver://" + serverIP + "/" +
DatabaseContract.DATABASE_NAME + ";instance=" +
DatabaseContract.DATABASE_INSTANCE + ";";
try {
Class.forName("net.sourceforge.jtds.jdbc.Driver");
connection = DriverManager.getConnection(connString,userName,password);
} catch (Exception e){
e.printStackTrace();
return null;
}
return connection;
}
@Override
protected void onPostExecute(Connection connection) {
mCallbacks.notifyAuthenticationComplete(connection,userName);
}
}
我尝试过将连接IP地址从使用DNS地址更改为实际的IP地址,也尝试过使用&没有端口号(1433)。我使用的IP不是localhost或127.0.0.1,也不是服务器名称。这是真正的广域网IP地址,同样只适用于我的手机连接到WIFI。
错误:
09-25 12:45:45.380 7338-7380/com.periapsislabs.assettracker W/System.err﹕
ava.sql.SQLException: Unable to get information from SQL Server: 98.219.231.54.
这里有几种可能性:
- 您的设备未设置为自动切换到4G连接
- 您的移动提供商正在阻止该类型的流量或端口
- 由于4G连接的延迟增加,您的连接超时