【发布时间】:2014-08-28 05:56:49
【问题描述】:
我正在尝试连接到 SQL Server 远程数据库,但我无法在 Android 中创建新连接,尽管我可以使用完全相同的代码通过 Java 应用程序进行连接。 DriverManager.getConnection() 抛出异常。这是我的代码
public DatabaseManipulation()
{
URL=String.format(URL,localDatabaseName);
Connect();
}
public void Connect() {
try {
connection = DriverManager.getConnection(URL,
DATABASE_USERNAME, DATABASE_PASSWORD);
statement=connection.createStatement();
} catch(Exception e) {
Log.d("con",e.getMessage);
}
}
例外:
"到主机 192.168.100.23 的 TCP/IP 连接,端口 1433 有 失败的。错误:“/192.168.100.23:1433 - 网络不可达。验证 连接属性。确保 SQL Server 实例 正在主机上运行并在端口接受 TCP/IP 连接。 确保到端口的 TCP 连接没有被 防火墙。”。”
【问题讨论】:
-
192.168.100.23 是无法从 Internet 访问的专用网络 IP 地址。您的设备在同一个网络上吗?顺便说一句,从移动设备直接访问远程数据库会带来许多安全和架构问题。您是否考虑过在您的数据库前面有一项服务来支持移动应用程序?
-
是的,设备在同一个网络中。我可以毫无问题地与另一台 PC 上的 java 应用程序连接,但 android 不起作用。
-
您的应用是否在
AndroidManifest.xml中设置了网络访问权限? (<uses-permission android:name="android.permission.INTERNET" />) -
是和其他一些权限,例如:蓝牙、Access_network_State、....
标签: java android sql-server tcp