android网络获取数据
A. android怎么使用api获取数据
1、确保在清单文件中添加如下权限:<!-- 使用网络功能所需权限 --> <uses-permission android:name="android.permission.INTERNET" > </uses-permission>
2、如果已经添加了该权限,并且编写测试类能够获取,但在Android项目中运行时却提示:
3、则可能是连接的模拟器或手机‘网络没有连接’……已经亲验。
B. android 手机怎么连接电脑上的数据库,直接获取数据库数据
数据库很多,但是安卓直接支持的数据库只有sqlite一种。如果要使用其它的非本地数据库,你得建立连接,采用webservice或http协议中转数据。
安卓访问mysql里的数据得:
1)先建立网络,使用WIFI局域网
2)在PC建立数据访问接口,编写http协议应用(方法非常多。
asp、php、jsp都有访问mysql的方法),还得关掉防火墙
3)编写安卓手机客户端连接设备的http
service
C. android怎样获取网络速度
Android应用里经常使用到网络速度的显示,特别是文件下载和视频缓冲的时候。用到的是TrafficStats类,就是每隔一段时间去读取网速:
java">privatevoidshowNetSpeed(){
longnowTotalRxBytes=getTotalRxBytes();
longnowTimeStamp=System.currentTimeMillis();
longspeed=((nowTotalRxBytes-lastTotalRxBytes)*1000/(nowTimeStamp-lastTimeStamp));//毫秒转换
lastTimeStamp=nowTimeStamp;
lastTotalRxBytes=nowTotalRxBytes;
Messagemsg=mHandler.obtainMessage();
msg.what=100;
msg.obj=String.valueOf(speed)+"kb/s";
mHandler.sendMessage(msg);//更新界面
}
D. Android7.0 WiFi开发获取列表异常,为什么获取了同样的数据
1、使用Android电源管理widget 从Android 2.1系统开始内置了一个非常强大的带能源管理widget,通过这个widget你可以快速开启或者关闭Wi-Fi,蓝牙,GPS,同步这些手机耗电大户,还可 以方便的设定手机屏幕亮度,长按手机屏幕,就可以在widgets目录选择启用。 2、Android手机拨号屏幕 如果你对手机拨号屏幕功能性有特殊要求,Android绝对会满足你,点击联系人列表里任意一个用户,按手机menu >选项,里面有关于单个联系人的详细设置。 3、为每个联系人定制铃声 可以为女朋友或者家人设置单 独的铃声,这样听到铃声就知道谁来电话了。设置方法点击联系人列表里任意一个用户,然后就可以设置铃声。 4、不要把手机闹钟(alarm clock)加入进程查杀列表里这是一个经典的错误,很多用户都喜欢用进程管理程序自动杀掉一些程序以节省电量或者腾出手机内存,不过如果不小心alarm clock进程也杀掉了,后果就是第二天早晨10:30才醒过来惊慌失措的奔向公司。 5、用文件夹组织内容 虽然乔布斯花了很久才决定放开iOS用户通过文件夹组织内容的权限,事实上Android从面世开始就支持这个功能,Android文件夹不但支持放入程序图标,还可以存放通讯录,甚至升咐facebook联系人等信息,长按手机屏幕就可以在桌面建立文件夹。 6、重命名文件夹 建立了文件夹后你可能需要修改它的名称,只需要打开文件夹,长按顶部的名称就可以调出重命名文件夹的窗口。 7、查看系统日期 Android新用户可能觉得查看系统日期有点麻烦,其实只要按住屏幕顶部左上方的提醒栏,就会显示今天的日期,赶快试试吧。 8、挂载你的SD卡 Android系统基于Linux内核,所以使用外部磁盘之前必须要mount挂载后才可以正常使用。使用USB线连接手机和电脑时,手机会提示挂载SD卡,必须点击完成挂载后才可以在SD卡里拷贝或者删除数据。 9、设置键盘快捷方式 很多用户迷恋物理全键盘的另外一个重要原因就是Android支持大量的键盘快捷键,通过快捷键可以快速调用相关程序,可以在系统设置>应用程序>快速启动里设置 10、下载更多Android动态壁纸Android 2.1开始系统支持的另外一个功能就是动态壁纸,虽然动态壁纸可能会让你的手机耗电量增加,不过却能让你的手机看起来更酷,如果你喜欢耍酷,在Android Market搜索live wallpaper,会有很多动态壁纸等待你选择。 11、快速切换主屏 Android系统一般提供5个主屏, 或许你觉得每次滑动手指切换太麻烦,可以按一下home键,然后就可以选择进入特定的主屏,HTC Sense的手机还支持多点触摸友游调出所有主屏幕供选择。 12、添加一个快速导航键 Android 2.1系统支持用户建立地图导航的快捷方式,选择任意一个导航线路都可以在桌面建立一个快捷菜单,可以在出行前设定好导航的线路,需要时点击快捷菜单节省时间。 13、设吵告纯置双击屏幕放大的级别 绝大多数不支持多点触摸的Android手机,在使用浏览器浏览网页时都可以通过双击屏幕放大网页内容,而且你还可以在浏览器设置里“默认缩放”选项选择三种放大级别,这样每次使用双击放大时的效果都不同。 14、改变Android浏览器字体 Android手机终端千差万别,不同屏幕和分辨率的手机最佳的浏览字体都不同,只需要在浏览器设置里设置合适的字体大小,就可以提高阅读效率。 15、搜索网页特定内容 在浏览器设置>更多>查找 选项可以用来搜索网页内容里的特定字段,帮助你快速查找相关内容,这也是PC浏览器的标准功能之一。 16、语音输入 Android 2.1系统开始支持语音输入功能,虽然处理起来有些延时,如果你勤加练习还是可以做到基本正确输入,这对练习英语口语的同学也是一条途径。 17、Android字典造词功能 在使用Android键盘输入一个特定词语时,你可以长按它然后选择添加到建议词语区域,这样就可以把这个词加入Android字典,下次输入时只需打入前几个字目就可以调出这个词。 18、同步手机照片到Picasa相册 虽然Google的Picasa网络相册不 及Flickr受欢迎。不过Android 2.1的3D相册开始支持自动同步手机照片到Picasa帐户,不需要第三方软件就可以设置同步给了很多用户使用Picasa的理由,不过悲剧的是 Picasa在国内无法正常打开,原因大家都懂的。 19、下载网页图片浏览网页时想保存图片,只要长按图片就可以单独保存,保存的图片可以在相册程序中查看。 20、管理Android通话记录 Android通话记录非常方便,长按任意一条播出或者接入电话记录就可以选择删除,非常easy。 安卓手机使用常见疑难问题: 1.安卓系统 如何找到安装在内存卡及手机里面的软件 在手机菜单-设置-应用程序-管理应用程序-所有应用程序里面就能看到 2.安卓系统 如何删除手机及内存卡里面的软件 menu----设置------应用程序-----管理应用程序,找到不需要的软件点击----再点击卸载。系统自带的要刷权限才能卸载 3.如何安装并设置输入法? 主界面=>菜单=>设置=>语音与键盘=>勾选新装的输入法,以后需要切换输入法时长按输入框即可.安卓系统如何切换输入法 首先需要将您需要切换的输入法下载在手机上 然后在菜单键-设置-语言和键盘/或者场所和文本里面把安装的输入法打上勾 然后找个文本输入框(就是可以输入文字的窗口),一直点住文本输入的框,会弹出输入法,点它,然后选择你需要输入法就可以了。 安装之后如果出现网页不能缩放则重启一次 4.如何设置wifi无线网络 主界面=>菜单=>设置=>无线和网络=>勾选WLAN,然后在WLAN设置中搜索到热点,输入密码(有的话) 无线连接一直获取ip地址的解决办法:首先 进入你的无线路由器的设定页面“比方在IE里面输入192.168.1.1什么的 具体看自己的路由器 然后 找到“IP与MAC绑定"----”静态ARP绑定设置“------再MAC与IP绑定规则那里根据自己的手机搜索到的IP那个绑定的勾取消掉就可以了。查看手机的IP方法:菜单---设置---无线与网络---WALAN设置---自己链接的路由器名称--出来的界面的最下面IP地址 补充说明下:把所有的 “绑定”全取消,发现手机的IP会变化 全取消就没有问题了(ps:如果最后还是不能解决,将路由器和手机都恢复下出厂设置,然后再连接,非硬件问题肯定管用!) 5.安卓系统机器如何连接电脑 安卓系统连接电脑分不同的模式,根据需要来选择,先检查一下设置:目录->设置->应用程序->开发->USB调试 选项是否有√选 然后下载以下任意一个驱动。 下载安装好以后 手机用数据线连接好电脑 就会自动提示连接。然后将手机左上角的USB图标拖下 HTC手机选择(磁盘驱动)三星/MOTO及其它机型选择大容量存储选择好后。 手机就会自动连接电脑(不同的系统和版本在连接电脑的方式上有些区别。塞班系统一般连接时自动提示,根据需要选择相应模式:读取存储卡的内容(前提是插了卡,手机自身内存上的文件不能读取的),选择大容量模式;连接套件更新地图之类的,选择pc套件模式(前提是电脑上已经安装好对应的软件)。 安卓系统连接后,有的版本也是会自动提示,对应选择就可以;如果不提示,一般在手机屏幕左上角往下拉,可以选择模式。有个别异常情况:连接后显示仅充电。这个在手机设置,连接电脑pc里找一下,默认连接模式改一下就可以了 ,一般是有磁盘驱动器模式,htc sync模式,仅充电模式,同步模式。经常有客户反馈,电脑上弹出新硬件,这个一般都是模式没选择好) 6.安卓系统安装软件方法 方法1.手机里如果已经安装好文件管理器,可以将需要安装的文件复制到存储卡,然后从手机里打开安装就可以了。 方法2.如果没有文件管理器,可以先安装文件管理器然后按方法1来操作,或者直接通过连接电脑来安装(文件管理器的安装也是运用此方法)具体连接电脑安装的方法:电脑上下载91助手/豌豆夹并安装到电脑, 手机选择usb调试模式连接电脑,电脑上91助手/豌豆夹识别到手机连接后,在91助手/豌豆夹里左侧程序管理,已安装的程序,添加,找到您需要安装的软件打开就会自动安装。 7.如何安装在论坛中下载的APK软件/游戏? 如下步骤:菜单,设置,应用程序,允许安装未知源,设置为允许;然后用数据线连接手机与电脑,在手机上的弹出菜单中选择“安装(有的手机显示的是‘大容量存储器’),此时手机就充当了读卡器的作用,在我的电脑中会出现新的盘符,将apk文件复制到存储卡中,拔下数据线,在手机的文件管理器中浏览到你复制到卡中的APK文件,执行即可安装。
E. Android通过OKhttp从服务器端获取数据
①简单的异步Get请求
第一步,创建OKHttpClient对象
第二步,创建Request请求
第三步,创建一个Call对象
第四步,将请求添加到调度中
不多说,直接上代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
//okHttp的基本使用 --- get方法
String url = "https://api.douban.com/v2/movie/top250?start=0&count=10";
//1,创建OKHttpClient对象
OkHttpClient mOkHttpClient = new OkHttpClient();
//2,创建一个Request
Request request = new Request.Builder().url(url).build();
//3,创建一个call对象
Call call = mOkHttpClient.newCall(request);
//4,将请求添加到调度中
call.enqueue(new Callback() {
@Override
public void onFailure(Request request, IOException e) {
}
@Override
public void onResponse(Response response) throws IOException {
if (response.isSuccessful()) {
final String message = response.body().string();
handler.post(new Runnable() {
@Override
public void run() {
tv_message.setText(message);
progressBar.setVisibility(View.GONE);
}
});
}
}
});
F. 如何在Android开发中用HttpClient连接网络数据
HttpClient网络访问
一、HttpClient网络访问:
(一)、简介:
1、Apache组织提供了HttpClient项目,可以实现网络访问。在Android中,成功集成了HttpClient,所以在Android中可以直接使用HttpClient访问网络。
2、与HttpURLConnection相比,HttpClient将前者中的输入、输出流操作,统一封装成HttpGet、HttpPost、HttpRequest类。
HttpClient:网络连接对象;
HttpGet:代表发送GET请求;
HttpPost:代表发送POST请求;
HttpResponse:代表处理服务器响应的对象。
HttpEntity对象:该对象中包含了服务器所有的返回内容。
3、使用步骤:(六部曲)【重点】
创建HttpClient对象:通过实例化DefaultHttpClient获得;
创建HttpGet或HttpPost对象:通过实例化 HttpGet或HttpPost 获得,而构造方法的参数是urlstring(即需要访问的网络url地址)。也可以通过调用setParams()方法来添加请求参数;
调用HttpClient对象的execute()方法,参数是刚才创建的 HttpGet或HttpPost对象 ,返回值是HttpResponse对象;
通过response对象中的getStatusLine()方法和getStatusCode()方法获取服务器响应状态是否是200。
调用 HttpResponse对象的getEntity()方法,返回HttpEntity对象。而该对象中包含了服务器所有的返回内容。
借助EntityUtils的toString()方法或toByteArray()对 HttpEntity对象进行处理,也可以通过IO流对 HttpEntity对象进行操作。
(二)、封装HttpClientHelper工具类:
public class HttpClientHelper {
public static HttpClient checkNetwork(String url) {
HttpClient httpClient = new DefaultHttpClient();
HttpGet request = new HttpGet(url);
HttpResponse httpResponse = null;
try {
httpResponse = httpClient.execute(request);
if (httpResponse.getStatusLine().getStatusCode() == 200) {
return httpClient;
}
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
/**
* 作用:实现网络访问文件,将获取到数据储存在文件流中
*
* @param url
* :访问网络的url地址
* @return inputstream
*/
public static InputStream loadFileFromURL(String url) {
HttpClient httpClient = new DefaultHttpClient();
HttpGet requestGet = new HttpGet(url);
HttpResponse httpResponse;
try {
httpResponse = httpClient.execute(requestGet);
if (httpResponse.getStatusLine().getStatusCode() == 200) {
HttpEntity entity = httpResponse.getEntity();
return entity.getContent();
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
/**
* 作用:实现网络访问文件,将获取到的数据存在字节数组中
*
* @param url
* :访问网络的url地址
* @return byte[]
*/
public static byte[] loadByteFromURL(String url) {
HttpClient httpClient = new DefaultHttpClient();
HttpGet requestGet = new HttpGet(url);
try {
HttpResponse httpResponse = httpClient.execute(requestGet);
if (httpResponse.getStatusLine().getStatusCode() == 200) {
HttpEntity httpEntity = httpResponse.getEntity();
return EntityUtils.toByteArray(httpEntity);
}
} catch (Exception e) {
e.printStackTrace();
System.out.println("====>" + e.toString());
}
return null;
}
/**
* 作用:实现网络访问文件,返回字符串
*
* @param url
* :访问网络的url地址
* @return String
*/
public static String loadTextFromURL(String url) {
HttpClient httpClient = new DefaultHttpClient();
HttpGet requestGet = new HttpGet(url);
try {
HttpResponse httpResponse = httpClient.execute(requestGet);
if (httpResponse.getStatusLine().getStatusCode() == 200) {
HttpEntity httpEntity = httpResponse.getEntity();
return EntityUtils.toString(httpEntity, "utf-8");
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
/**
* 作用:实现网络访问文件,先给服务器通过“GET”方式提交数据,再返回相应的数据
*
* @param url
* :访问网络的url地址
* @param params
* String url:访问url时,需要传递给服务器的参数。
* 第二个参数格式为:username=wangxiangjun&password=123456
* @return byte[]
*/
public static byte[] doGetSubmit(String url, String params) {
HttpClient httpClient = new DefaultHttpClient();
HttpGet requestGet = new HttpGet(url + "?" + params);
try {
HttpResponse httpResponse = httpClient.execute(requestGet);
if (httpResponse.getStatusLine().getStatusCode() == 200) {
HttpEntity httpEntity = httpResponse.getEntity();
return EntityUtils.toByteArray(httpEntity);
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
/**
* 作用:实现网络访问文件,先给服务器通过“POST”方式提交数据,再返回相应的数据
*
* @param url
* :访问网络的url地址
* @param params
* String url:访问url时,需要传递给服务器的参数。 第二个参数为:List<NameValuePair>
* @return byte[]
*/
public static byte[] doPostSubmit(String url, List<NameValuePair> params) {
HttpClient httpClient = new DefaultHttpClient();
HttpPost requestPost = new HttpPost(url);
try {
requestPost.setEntity(new UrlEncodedFormEntity(params, "utf-8"));
HttpResponse httpResponse = httpClient.execute(requestPost);
if (httpResponse.getStatusLine().getStatusCode() == 200) {
HttpEntity httpEntity = httpResponse.getEntity();
return EntityUtils.toByteArray(httpEntity);
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
/**
* 作用:实现网络访问文件,先给服务器通过“POST”方式提交数据,再返回相应的数据
*
* @param url
* :访问网络的url地址
* @param params
* String url:访问url时,需要传递给服务器的参数。 Map<String , Object>
* @return byte[]
*/
public static byte[] doPostSubmit(String url, Map<String, Object> params) {
HttpClient httpClient = new DefaultHttpClient();
HttpPost requestPost = new HttpPost(url);
List<BasicNameValuePair> parameters = new ArrayList<BasicNameValuePair>();
try {
if (params != null) {
for (Map.Entry<String, Object> entry : params.entrySet()) {
String key = entry.getKey();
String value = entry.getValue().toString();
BasicNameValuePair nameValuePair = new BasicNameValuePair(
key, value);
parameters.add(nameValuePair);
}
}
requestPost
.setEntity(new UrlEncodedFormEntity(parameters, "utf-8"));
HttpResponse httpResponse = httpClient.execute(requestPost);
if (httpResponse.getStatusLine().getStatusCode() == 200) {
HttpEntity httpEntity = httpResponse.getEntity();
return EntityUtils.toByteArray(httpEntity);
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}