Android程序虚拟机上能连接数据库,真机上无法连接。

Android程序虚拟机上能连接数据库,真机上无法连接。,第1张

对啦,就是把

虚拟机

当成实机来看待。不过,要

端口映射

,让外部能访问。就是你要把数据的端口映射出来,让实机上的服务器能够访问。就和两台实机间的

数据交换

一样。

主要是你能够访问虚拟机的数据库

数据库很多,但是安卓直接支持的数据库只有sqlite一种。如果要使用其它的非本地数据库,你得建立连接,采用webservice或http协议中转数据。

安卓访问mysql里的数据得:

1)先建立网络,使用WIFI局域网

2)在PC建立数据访问接口,编写http协议应用(方法非常多。

asp、php、jsp都有访问mysql的方法),还得关掉防火墙

3)编写安卓手机客户端连接设备的http

service

1、首先输入代码

public void SendByHttpClient(final String id, final String pw){

    new Thread(new Runnable() {

      @Override

      public void run() {

        try {

          HttpClient httpclient=new DefaultHttpClient();

          HttpPost httpPost=new HttpPost("http://web应用部署服务器上的IP地址:/HttpClientDemo/Login");//服务器地址,指向Servlet

          List<NameValuePair> params=new ArrayList<NameValuePair>();//将id和pw装入list

          paramsadd(new BasicNameValuePair("ID",id));

          paramsadd(new BasicNameValuePair("PW",pw));

          final UrlEncodedFormEntity entity=new UrlEncodedFormEntity(params,"utf-8");//以UTF-8格式发送

          httpPostsetEntity(entity);

          HttpResponse httpResponse= httpclientexecute(httpPost);

          if(httpResponsegetStatusLine()getStatusCode()==200)//在200毫秒之内接收到返回值

2、然后再输入下方的代码:

          {

            HttpEntity entity=httpResponsegetEntity();

            String response=EntityUtilstoString(entity1, "utf-8");//以UTF-8格式解析

            Message message=new Message();

            messagewhat=USER_LOGIN;

            messageobj=response;

            handlersendMessage(message);使用Message传递消息给线程

          }

        }

        catch (Exception e) {

          eprintStackTrace();

        }

      }

    })start();

  }

3、最终,测试结果图,如下:

连接真机进行调试,首先手机连接电脑,打开手机的开发者选项勾中USB调试,确保手机已和电脑连接后,再点击运行(三角形的那个),会弹出此时该标签就是你手机的型号,点击OK即可运行到你手机上

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » Android程序虚拟机上能连接数据库,真机上无法连接。

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情