Android客户端怎么与服务器数据库连接?

Android客户端怎么与服务器数据库连接?,第1张

不能与数据库连接的

Android客户端不能直接与服务器数据库连接。数据库是需要非常大的内存,安装之后有好几G,连接数据库要有一个像SQLServer里的webservice,这样的一个桥梁来间接访问。就是在服务器运行一个服务端程序,该服务端程序通过接收来自android客户端的指令,对数据库进行操作。

客户端的http请求可以通过 HttpClient类实现,在anddroid 40之后,客户端的网络请求已经不被允许在主线程中运行,所以还需注意另开启一个子线程进行网络请求。

扩展资料:

Android安全权限机制:

Android默认设置下,所有应用都没有权限对其他应用、系统或用户进行较大影响的操作。这其中包括读写用户隐私数据(联系人或电子邮件),读写其他应用文件,访问网络或阻止设备待机等。安装应用时,在检查程序签名提及的权限,且经过用户确认后,软件包安装器会给予应用权限。

下载一款Android应用通常会要求如下的权限:拨打电话、发送短信或彩信、修改/删除SD卡上的内容、读取联系人的信息、读取日程信的息,写入日程数据、读取电话状态或识别码、精确的(基于GPS)地理位置、模糊的(基于网络获取)地理位置、创建蓝牙连接、

还有对互联网的完全访问、查看网络状态,查看WiFi状态、避免手机待机、修改系统全局设置、读取同步设定、开机自启动、重启其他应用、终止运行中的应用、设定偏好应用、震动控制、拍摄等。

——Android

Android真机连接PC的服务器的方法为:

(1)将Android手机通过USB数据线连接电脑,在设备管理器中应该能看到Android Device。

(2)完成上一步之后,这个时候设置手机的无线和网络,开启你机上的Android的Internet传输功能功能。就是可以用手机通过电脑上网,不同的手机可能叫法不同。(注意了:有的手机开启这个功能时候要求关闭USB调试。)

(3)开启Internet传输之后,手机可以通过PC联网了。如果PC联网,查看本机的IP地址(win+r ——>cmd ——>ipconfig),如果没有联网,自己设置一下本机静态IP(怎么设置问度娘)。记住这个IP地址。

(4)打开本地PC机的服务器软件(如开启Tomcat),在手机端浏览器中输入刚才的IP地址+服务端口即可。

中国国家气象局提供了获取所在城市天气预报信息接口。通过这个接口,我们就可以获取天气信息了。

关于获取天气预报的实例参考android学习手册,里面有源码。android学习手册包含9个章节,108个例子,源码文档随便看,例子都是可交互,可运行,源码采用android studio目录结构,高亮显示代码,文档都采用文档结构图显示,可以快速定位。360手机助手中下载,图标上有贝壳

中国国家气象局天气预报接口总共提供了三个:

http://wwwweathercomcn/data/sk/101010100html

http://wwwweathercomcn/data/cityinfo/101010100html

http://mweathercomcn/data/101010100html

注:上面接口201434日已不再更新。换成这个:http://mweathercomcn/atad/101230201html。各位看34楼。在此感谢tdwll和黄晓佳cobish。

最详细的信息来自第三个接口。上面url中的101010100是城市代码,这里是北京的城市代码。只需要改变城市代码,就可以得到所在城市的天气信息。笔者在福州,所以选择的城市代码是福州101230101。

在浏览器上输入url:http://mweathercomcn/data/101230101html得到信息,天气信息是json的数据格式,数据如下:

{"weatherinfo":{"city":"福州","city_en":"fuzhou","date_y":"2012年5月14日","date":"","week":"星期一","fchh":"08","cityid":"101230101","temp1":"29℃~23℃","temp2":"26℃~20℃","temp3":"24℃~20℃","temp4":"25℃~20℃","temp5":"24℃~21℃","temp6":"25℃~22℃","tempF1":"842℉~734℉","tempF2":"788℉~68℉","tempF3":"752℉~68℉","tempF4":"77℉~68℉","tempF5":"752℉~698℉","tempF6":"77℉~716℉","weather1":"阵雨转中雨","weather2":"中雨转小雨","weather3":"小雨","weather4":"小雨","weather5":"小雨转阵雨","weather6":"阵雨转小雨","img1":"3","img2":"8","img3":"8","img4":"7","img5":"7","img6":"99","img7":"7","img8":"99","img9":"7","img10":"3","img11":"3","img12":"7","img_single":"3","img_title1":"阵雨","img_title2":"中雨","img_title3":"中雨","img_title4":"小雨","img_title5":"小雨","img_title6":"小雨","img_title7":"小雨","img_title8":"小雨","img_title9":"小雨","img_title10":"阵雨","img_title11":"阵雨","img_title12":"小雨","img_title_single":"阵雨","wind1":"微风","wind2":"微风","wind3":"微风","wind4":"微风","wind5":"微风","wind6":"微风","fx1":"微风","fx2":"微风","fl1":"小于3级","fl2":"小于3级","fl3":"小于3级","fl4":"小于3级","fl5":"小于3级","fl6":"小于3级","index":"热","index_d":"天气较热,建议着短裙、短裤、短套装、T恤等夏季服装。年老体弱者宜着长袖衬衫和单裤。","index48":"暖","index48_d":"较凉爽,建议着长袖衬衫加单裤等春秋过渡装。年老体弱者宜着针织长袖衬衫、马甲和长裤。","index_uv":"弱","index48_uv":"最弱","index_xc":"不宜","index_tr":"适宜","index_co":"较不舒适","st1":"27","st2":"21","st3":"24","st4":"18","st5":"22","st6":"18","index_cl":"较不宜","index_ls":"不太适宜","index_ag":"不易发"}}

我们可以解析json数据去得到自己想用的天气信息。

天气信息解释:

[html] view plain copy print

{  

    "weatherinfo":{  

        <!-- 基本信息 -->  

        "city":"福州",  

        "city_en":"fuzhou",  

        "date_y":"2012年5月14日",  

        "date":"",  

        "week":"星期一",  

        "fchh":"08",  

        "cityid":"101230101",  

        <!-- 从今天开始到第六天的每天的天气情况,这里的温度是摄氏温度 -->  

        "temp1":"29℃~23℃","temp2":"26℃~20℃","temp3":"24℃~20℃","temp4":"25℃~20℃","temp5":"24℃~21℃","temp6":"25℃~22℃",  

        <!-- 从今天开始到第六天的每天的天气情况,这里的温度是华氏温度 -->  

        "tempF1":"842℉~734℉","tempF2":"788℉~68℉","tempF3":"752℉~68℉","tempF4":"77℉~68℉","tempF5":"752℉~698℉","tempF6":"77℉~716℉",  

        <!-- 天气描述 -->  

        "weather1":"阵雨转中雨","weather2":"中雨转小雨","weather3":"小雨","weather4":"小雨","weather5":"小雨转阵雨","weather6":"阵雨转小雨",  

        <!-- 天气描述序号 -->  

        "img1":"3","img2":"8","img3":"8","img4":"7","img5":"7","img6":"99","img7":"7","img8":"99","img9":"7","img10":"3","img11":"3","img12":"7","img_single":"3",  

        <!-- 名称 -->  

        "img_title1":"阵雨","img_title2":"中雨","img_title3":"中雨","img_title4":"小雨","img_title5":"小雨","img_title6":"小雨","img_title7":"小雨","img_title8":"小雨","img_title9":"小雨","img_title10":"阵雨","img_title11":"阵雨","img_title12":"小雨","img_title_single":"阵雨",  

        <!-- 风速描述 -->  

        "wind1":"微风","wind2":"微风","wind3":"微风","wind4":"微风","wind5":"微风","wind6":"微风","fx1":"微风","fx2":"微风",  

        <!-- 风速级别描述 -->  

        "fl1":"小于3级","fl2":"小于3级","fl3":"小于3级","fl4":"小于3级","fl5":"小于3级","fl6":"小于3级",  

        <!-- 今天穿衣指数 -->  

        "index":"热",  

        "index_d":"天气较热,建议着短裙、短裤、短套装、T恤等夏季服装。年老体弱者宜着长袖衬衫和单裤。",  

        <!-- 48小时穿衣指数 -->  

        "index48":"暖","index48_d":"较凉爽,建议着长袖衬衫加单裤等春秋过渡装。年老体弱者宜着针织长袖衬衫、马甲和长裤。",  

        <!-- 紫外线及48小时紫外线 -->  

        "index_uv":"弱","index48_uv":"最弱",  

        <!-- 洗车 -->  

        "index_xc":"不宜",  

        <!-- 旅游 -->  

        "index_tr":"适宜",、  

        <!-- 舒适指数 -->  

        "index_co":"较不舒适",  

        "st1":"27","st2":"21","st3":"24","st4":"18","st5":"22","st6":"18",  

        <!-- 晨练 -->  

        "index_cl":"较不宜",  

        <!-- 晾晒 -->  

        "index_ls":"不太适宜",  

        <!-- 过敏 -->  

        "index_ag":"不易发"  

    }  

}  

{

"weatherinfo":{

<!-- 基本信息 -->

"city":"福州",

"city_en":"fuzhou",

"date_y":"2012年5月14日",

"date":"",

"week":"星期一",

"fchh":"08",

"cityid":"101230101",

<!-- 从今天开始到第六天的每天的天气情况,这里的温度是摄氏温度 -->

"temp1":"29℃~23℃","temp2":"26℃~20℃","temp3":"24℃~20℃","temp4":"25℃~20℃","temp5":"24℃~21℃","temp6":"25℃~22℃",

<!-- 从今天开始到第六天的每天的天气情况,这里的温度是华氏温度 -->

"tempF1":"842℉~734℉","tempF2":"788℉~68℉","tempF3":"752℉~68℉","tempF4":"77℉~68℉","tempF5":"752℉~698℉","tempF6":"77℉~716℉",

<!-- 天气描述 -->

"weather1":"阵雨转中雨","weather2":"中雨转小雨","weather3":"小雨","weather4":"小雨","weather5":"小雨转阵雨","weather6":"阵雨转小雨",

<!-- 天气描述序号 -->

"img1":"3","img2":"8","img3":"8","img4":"7","img5":"7","img6":"99","img7":"7","img8":"99","img9":"7","img10":"3","img11":"3","img12":"7","img_single":"3",

<!-- 名称 -->

"img_title1":"阵雨","img_title2":"中雨","img_title3":"中雨","img_title4":"小雨","img_title5":"小雨","img_title6":"小雨","img_title7":"小雨","img_title8":"小雨","img_title9":"小雨","img_title10":"阵雨","img_title11":"阵雨","img_title12":"小雨","img_title_single":"阵雨",

<!-- 风速描述 -->

"wind1":"微风","wind2":"微风","wind3":"微风","wind4":"微风","wind5":"微风","wind6":"微风","fx1":"微风","fx2":"微风",

<!-- 风速级别描述 -->

"fl1":"小于3级","fl2":"小于3级","fl3":"小于3级","fl4":"小于3级","fl5":"小于3级","fl6":"小于3级",

<!-- 今天穿衣指数 -->

"index":"热",

"index_d":"天气较热,建议着短裙、短裤、短套装、T恤等夏季服装。年老体弱者宜着长袖衬衫和单裤。",

<!-- 48小时穿衣指数 -->

"index48":"暖","index48_d":"较凉爽,建议着长袖衬衫加单裤等春秋过渡装。年老体弱者宜着针织长袖衬衫、马甲和长裤。",

<!-- 紫外线及48小时紫外线 -->

"index_uv":"弱","index48_uv":"最弱",

<!-- 洗车 -->

"index_xc":"不宜",

<!-- 旅游 -->

"index_tr":"适宜",、

<!-- 舒适指数 -->

"index_co":"较不舒适",

"st1":"27","st2":"21","st3":"24","st4":"18","st5":"22","st6":"18",

<!-- 晨练 -->

"index_cl":"较不宜",

<!-- 晾晒 -->

"index_ls":"不太适宜",

<!-- 过敏 -->

"index_ag":"不易发"

}

}

方法如下:

1、较新版本的Android系统默认在设置是不显示开发人员选项的,因此进入设置->关于手机->多次点击版本号(一定次数之后设置中出现开发人员选项),开发人员选择出现之后就无需再设置了。

2、设置->开发人员选项(开启)->选择USB调试,之后一般会出现允许连接调试和安装调试证书的选项,都选择是。大部分情况下到这个时候Eclipse开发环境就能够识别手机并可以进行软件的编译下载安装与调试。

3、USB连接方式需要选择正确,如下图四个选项中,只有选中PC助手方式,才可以被电脑和开发环境识别。

4、如果还不能识别有的时候是将Android设备与PC机通过USB接口相连时未能正确,可以尝试使用刷机软件如甜椒刷机助手,启动软件后连接Android设备,如果设备没有正确安装或者驱动程序版本不正确,它会自动下载和安装合适的驱动程序。

5、还有就是Manifestxml中minSdkVersion的的API level不能高于设备上Android系统版本对应的API level。如下图,对应于Android442对应的API 19,如果minSdkVersion>=20,则Android Device Chooser中无法显示设备。

6、还有Eclipse开发环境通过adb连接调试Android设备,有一些刷机软件也会运行adb程序,造成与开发环境的adb调试器冲突,需要关闭刷机软件,杀死所有adb进程重启开发环境。

温馨提示:

1、正确连接设备,打开USB调试。

2、正确安装设备驱动。

3、Sdk最低版本号设置不能高于设备的系统版本。

可使用android自带的httpclient框架实现。

1 GET 方式传递参数

//先将参数放入List,再对参数进行URL编码

List<BasicNameValuePair> params = new LinkedList<BasicNameValuePair>();

paramsadd(new BasicNameValuePair("param1", "数据")); //增加参数1

paramsadd(new BasicNameValuePair("param2", "value2"));//增加参数2

String param = URLEncodedUtilsformat(params, "UTF-8");//对参数编码

String baseUrl = "服务器接口完整URL";

HttpGet getMethod = new HttpGet(baseUrl + "" + param);//将URL与参数拼接

HttpClient httpClient = new DefaultHttpClient();

try {

HttpResponse response = httpClientexecute(getMethod); //发起GET请求

Logi(TAG, "resCode = " + responsegetStatusLine()getStatusCode()); //获取响应码

Logi(TAG, "result = " + EntityUtilstoString(responsegetEntity(), "utf-8"));//获取服务器响应内容

} catch (ClientProtocolException e) {

eprintStackTrace();

} catch (IOException e) {

eprintStackTrace();

}

2 POST方式 方式传递参数

//和GET方式一样,先将参数放入List

params = new LinkedList<BasicNameValuePair>();

paramsadd(new BasicNameValuePair("param1", "Post方法"));//增加参数1

paramsadd(new BasicNameValuePair("param2", "第二个参数"));//增加参数2

try {

HttpPost postMethod = new HttpPost(baseUrl);//创建一个post请求

postMethodsetEntity(new UrlEncodedFormEntity(params, "utf-8")); //将参数填入POST Entity中

HttpResponse response = httpClientexecute(postMethod); //执行POST方法

Logi(TAG, "resCode = " + responsegetStatusLine()getStatusCode()); //获取响应码

Logi(TAG, "result = " + EntityUtilstoString(responsegetEntity(), "utf-8")); //获取响应内容

} catch (UnsupportedEncodingException e) {

eprintStackTrace();

} catch (ClientProtocolException e) {

eprintStackTrace();

} catch (IOException e) {

eprintStackTrace();

}

1:请求收到,继续处理

2:操作成功收到,分析、接受

3:完成此请求必须进一步处理

4:请求包含一个错误语法或不能完成

5:服务器执行一个完全有效请求失败

100——客户必须继续发出请求

101——客户要求服务器根据请求转换HTTP协议版本

200——交易成功

201——提示知道新文件的URL

202——接受和处理、但处理未完成

203——返回信息不确定或不完整

204——请求收到,但返回信息为空

205——服务器完成了请求,用户代理必须复位当前已经浏览过的文件

206——服务器已经完成了部分用户的GET请求

300——请求的资源可在多处得到

301——删除请求数据

302——在其他地址发现了请求数据

303——建议客户访问其他URL或访问方式

304——客户端已经执行了GET,但文件未变化

305——请求的资源必须从服务器指定的地址得到

306——前一版本HTTP中使用的代码,现行版本中不再使用

307——申明请求的资源临时性删除

400——错误请求,如语法错误

401——请求授权失败

402——保留有效ChargeTo头响应

403——请求不允许

404——没有发现文件、查询或URl

405——用户在Request-Line字段定义的方法不允许

406——根据用户发送的Accept拖,请求资源不可访问

407——类似401,用户必须首先在代理服务器上得到授权

408——客户端没有在用户指定的饿时间内完成请求

409——对当前资源状态,请求不能完成

410——服务器上不再有此资源且无进一步的参考地址

411——服务器拒绝用户定义的Content-Length属性请求

412——一个或多个请求头字段在当前请求中错误

413——请求的资源大于服务器允许的大小

414——请求的资源URL长于服务器允许的长度

415——请求资源不支持请求项目格式

416——请求中包含Range请求头字段,在当前请求资源范围内没有range指示值,请求

也不包含If-Range请求头字段

417——服务器不满足请求Expect头字段指定的期望值,如果是代理服务器,可能是下

一级服务器不能满足请求

500——服务器产生内部错误

501——服务器不支持请求的函数

502——服务器暂时不可用,有时是为了防止发生系统过载

503——服务器过载或暂停维修

504——关口过载,服务器使用另一个关口或服务来响应用户,等待时间设定值较长

505——服务器不支持或拒绝支请求头中指定的HTTP版本

1 socket,自己用socket来实现服务器,自己指定交互规则,达到和客户端交互。

2 网站web,然后提供一个访问接口,安卓客户端可以通过这个接口与服务器交互,获取数据,传递数据等。具体来说服务器就是一个web工程,所以你需要搭建服务器(tomcat等),把你的web应用发布到服务器上。至于交互一般可以用servlet来和安卓客户端交互,进而可以用action,这其实是j2e方面的知识了,所以你可以去了解下这方面的知识。

总体来说的话个人感觉第二种方法较好,因为交互层是别人写好的,你自己写的话有时候问题比较多。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » Android客户端怎么与服务器数据库连接?

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情