Android客户端怎么与服务器数据库连接?
不能与数据库连接的
Android客户端不能直接与服务器数据库连接。数据库是需要非常大的内存,安装之后有好几G,连接数据库要有一个像SQLServer里的webservice,这样的一个桥梁来间接访问。就是在服务器运行一个服务端程序,该服务端程序通过接收来自android客户端的指令,对数据库进行操作。
客户端的http请求可以通过 HttpClient类实现,在anddroid 40之后,客户端的网络请求已经不被允许在主线程中运行,所以还需注意另开启一个子线程进行网络请求。
扩展资料:
Android安全权限机制:
Android默认设置下,所有应用都没有权限对其他应用、系统或用户进行较大影响的操作。这其中包括读写用户隐私数据(联系人或电子邮件),读写其他应用文件,访问网络或阻止设备待机等。安装应用时,在检查程序签名提及的权限,且经过用户确认后,软件包安装器会给予应用权限。
下载一款Android应用通常会要求如下的权限:拨打电话、发送短信或彩信、修改/删除SD卡上的内容、读取联系人的信息、读取日程信的息,写入日程数据、读取电话状态或识别码、精确的(基于GPS)地理位置、模糊的(基于网络获取)地理位置、创建蓝牙连接、
还有对互联网的完全访问、查看网络状态,查看WiFi状态、避免手机待机、修改系统全局设置、读取同步设定、开机自启动、重启其他应用、终止运行中的应用、设定偏好应用、震动控制、拍摄等。
——Android
你给的网页用的是 <input accept="image/" type="file">,在IOS端点击时会提示选择或相机,安卓端要看浏览器对这两个属性的优化,部分浏览器会直接跳转到资源管理器,优化做得好的可以直接提示选择相册或相机。
移动设备和桌面电脑上的客户端API起初并不是同步的。最初总是移动设备上先拥有某些功能和相应的API,但慢慢的,这些API会出现在桌面电脑上。其中一个应用接口技术就是getUserMedia API,它能让应用开发者访问用户的摄像头或内置相机。
第一种方式:使用HttpURLConnection进行联网操作
这个方法需要我们手动构建一个http请求包,发送到指定的服务器
get方式
设置URL
打开连接
设置请求方法为get
设置连接超时时间
设置读取超时时间
把当前的request发送到服务器端
等待服务器的响应(此处会阻塞)
获得响应码(并在响应码中做相应的操作),因为安卓子线程内不允许做UI更新的操作,所以需要转到主线程来做(通过安卓中的handler来将信息传递到主线程)
public void getPic(View v){new Thread(new Runnable() {
@Override
public void run() {
try {
//首先要支出服务器的地址
URL url=new URL("http://19216821/day10_NetworkServer/brushlijpg");
//通过http连接
HttpURLConnection httpurlConnection = (HttpURLConnection) urlopenConnection();
//设置请求方式,并设置等待响应时间
httpurlConnectionsetRequestMethod("GET");
httpurlConnectionsetConnectTimeout(5000);
//把当前的request发送到服务器(安卓不允许在主线程内做耗时操作,如连接服务器)
httpurlConnectionconnect();
//发送完连接后等待操作,这个是阻塞式方法,
int responseCode = httpurlConnectiongetResponseCode();
//根据得到的响应代码和response的信息作出相应的操作
if(responseCode==200){
//从服务器读取正确与否的信息
InputStream is=httpurlConnectiongetInputStream();
File file=new File("/data/data/comrgdday10_network_3/files");
filemkdir();
FileOutputStream fos=new FileOutputStream(new File("/data/data/comrgdday10_network_3/files/brushlijpg"));
byte[] buffer=new byte[1024];
int read;
while ((read =isread(buffer))!=-1){
foswrite(buffer,0,read);
}
//由于子线程不允许做UI更新操作,与要通过Handler进行和主线程的通信操作
Message msg=new Message();
msgwhat=1;
handlersendMessage(msg);
fosclose();
isclose();
}
} catch (MalformedURLException e) {
eprintStackTrace();
} catch (IOException e) {
eprintStackTrace();
}
}
})start();
}
Handler handler=new Handler(){
@Override
public void handleMessage(Message msg) {
superhandleMessage(msg);
switch(msgwhat){
case 1:
ToastmakeText(MainActivitythis, "保存成功", ToastLENGTH_LONG)show();
break;
case 2:
ToastmakeText(MainActivitythis,"保存MP3成功",ToastLENGTH_LONG)show();
break;
case 3:
ToastmakeText(MainActivitythis,"保存视频成功",ToastLENGTH_SHORT)show();
default:
break;
}
}
};
2post方式
操作跟get差不多,除了post传递信息是通过正文传递的,而get是放在连接中的
new Thread(new Runnable() {@Override
public void run() {
try {
//首先要支出服务器的地址
URL url=new URL("http://1921681061/day10_NetworkServer/servlet/loginInfo");
//通过http连接
HttpURLConnection httpurlConnection = (HttpURLConnection) urlopenConnection();
//设置请求方式,并设置等待响应时间
httpurlConnectionsetRequestMethod("POST");
httpurlConnectionsetConnectTimeout(5000);
String data="username="+username+"&password="+password+"&email="+email+"&phonenumber="+phonenumber;
OutputStream outputStream = httpurlConnectiongetOutputStream();
outputStreamwrite(datagetBytes());
//把当前的request发送到服务器(安卓不允许在主线程内做耗时操作,如连接服务器)
httpurlConnectionconnect();
//发送完连接后等待操作,这个是阻塞式方法,
int responseCode = httpurlConnectiongetResponseCode();
//根据得到的响应代码和response的信息作出相应的操作
if(responseCode==200){
//从服务器读取正确与否的信息
InputStream is=httpurlConnectiongetInputStream();
byte[] buffer=new byte[1024];
int read = isread(buffer);
String result=new String(buffer,0,read);
//由于子线程不允许做UI更新操作,与要通过Handler进行和主线程的通信操作
Message msg=new Message();
msgwhat=1;
handlersendMessage(msg);
}else{
Message msg=new Message();
msgwhat=-1;
handlersendMessage(msg);
}
} catch (MalformedURLException e) {
eprintStackTrace();
} catch (IOException e) {
eprintStackTrace();
}
}
})start();
是的,安卓手机应用程序自动同步数据含义:自动上传如通讯录、短信、通话记录、、软件等一切数据信息到云端服务器帐号上面。自动同步有哪些好处:
1、为了防止个人手机、Pad数据丢失,提供数据备份、恢复、管理的服务软件。通过WIFI或数据连接将手机中的资料如通讯录、短信、通话记录、、软件等备份至云端,注册账号并登陆后即可查看和管理相关信息。
2、用户可通过网络将个人资料备份到云端后,可随时使用Web网页或者手机、Pad进行查看和管理。
0条评论