- 浏览: 127507 次
文章分类
- 全部博客 (121)
- confluence (1)
- android (77)
- PHP (6)
- java (21)
- mysql (3)
- dos (1)
- 传感器 (2)
- 获取电话薄信息 (3)
- 正则表达式 (1)
- 网络 (1)
- 蓝牙 (1)
- 图片 (4)
- intent (3)
- 注意 (1)
- eclipce (1)
- plugins (1)
- dialog (4)
- zip (1)
- sd卡 (1)
- ui (1)
- Camera (1)
- draw (1)
- activity (2)
- launchMode (1)
- 安全 (1)
- Button (1)
- ImageTextButton (1)
- paint (1)
- network (1)
- popupwindow (1)
- jquery (1)
- ant (1)
- notifaction (1)
- Rating (1)
- ListView (3)
- editText (1)
- doc (1)
- jdk (1)
- animation (1)
- sign (1)
- 签名 (1)
- 广播 (1)
- textview (4)
- 删除线 (1)
- 城市列表 (1)
- IDE (1)
- Eclipse (1)
- pixels (2)
- px (1)
- 静默安装 (1)
- Android截屏 (1)
- eclipcetheme (1)
- scroll (1)
- ActivityGroup (1)
- sqlite (1)
- webview (3)
- PullToRefreshListView (1)
- cache (1)
- java引用 (1)
- 命名空间 (1)
- httpClient (1)
- 开源控件 (0)
- sms (1)
- 文字水平滚动 (1)
- 正则 (1)
- 理论知识 (1)
- 属性 (0)
- openfire (1)
- 面试 (1)
- 继承的优缺点 (1)
- PowerDesigner (1)
- 数字格式化 (1)
- andriod (1)
- webservice (1)
- 记录 (0)
- share (0)
- 开源 (1)
最新评论
public class NetworkUtil { private static final String TAG = "NetworkUtil"; /** * 判断网络是否可用 <br> * * @param context * @return */ public static boolean haveInternet(Context context) { NetworkInfo info = (NetworkInfo) ((ConnectivityManager) context .getSystemService(Context.CONNECTIVITY_SERVICE)) .getActiveNetworkInfo(); if (info == null || !info.isConnected()) { return false; } if (info.isRoaming()) { // here is the roaming option you can change it if you want to // disable internet while roaming, just return false // 是否在漫游,可根据程序需求更改返回值 return false; } return true; } /** * 判断网络是否可用 * @param context * @return */ public static boolean isnetWorkAvilable(Context context) { ConnectivityManager connectivityManager = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE); if(connectivityManager == null) { Log.e(TAG, "couldn't get connectivity manager"); } else { NetworkInfo [] networkInfos = connectivityManager.getAllNetworkInfo(); if(networkInfos != null){ for (int i = 0, count = networkInfos.length; i < count; i++) { if(networkInfos[i].getState() == NetworkInfo.State.CONNECTED){ return true; } } } } return false; } /** * IP地址<br> * * @return 如果返回null,证明没有网络链接。 如果返回String,就是设备当前使用的IP地址,不管是WiFi还是3G */ public static String getLocalIpAddress() { try { for (Enumeration<NetworkInterface> en = NetworkInterface .getNetworkInterfaces(); en.hasMoreElements();) { NetworkInterface intf = en.nextElement(); for (Enumeration<InetAddress> enumIpAddr = intf .getInetAddresses(); enumIpAddr.hasMoreElements();) { InetAddress inetAddress = enumIpAddr.nextElement(); if (!inetAddress.isLoopbackAddress()) { return inetAddress.getHostAddress().toString(); } } } } catch (SocketException ex) { Log.e("getLocalIpAddress", ex.toString()); } return null; } /** * 获取MAC地址 <br> * * @param context * @return */ public static String getLocalMacAddress(Context context) { WifiManager wifi = (WifiManager) context.getSystemService(Context.WIFI_SERVICE); WifiInfo info = wifi.getConnectionInfo(); return info.getMacAddress(); } /** * WIFI 是否可用 * @param context * @return */ public static boolean isWiFiActive(Context context) { ConnectivityManager connectivity = (ConnectivityManager) context .getSystemService(Context.CONNECTIVITY_SERVICE); if (connectivity != null) { NetworkInfo[] info = connectivity.getAllNetworkInfo(); if (info != null) { for (int i = 0; i < info.length; i++) { if (info[i].getTypeName().equals("WIFI") && info[i].isConnected()) { return true; } } } } return false; } /** * 存在多个连接点 * @param context * @return */ public static boolean hasMoreThanOneConnection(Context context){ ConnectivityManager manager = (ConnectivityManager)context .getSystemService(Context.CONNECTIVITY_SERVICE); if(manager==null){ return false; }else{ NetworkInfo [] info = manager.getAllNetworkInfo(); int counter = 0; for(int i = 0 ;i<info.length;i++){ if(info[i].isConnected()){ counter++; } } if(counter>1){ return true; } } return false; } /* * HACKISH: These constants aren't yet available in my API level (7), but I need to handle these cases if they come up, on newer versions */ public static final int NETWORK_TYPE_EHRPD=14; // Level 11 public static final int NETWORK_TYPE_EVDO_B=12; // Level 9 public static final int NETWORK_TYPE_HSPAP=15; // Level 13 public static final int NETWORK_TYPE_IDEN=11; // Level 8 public static final int NETWORK_TYPE_LTE=13; // Level 11 /** * Check if there is any connectivity * @param context * @return */ public static boolean isConnected(Context context){ ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo info = cm.getActiveNetworkInfo(); return (info != null && info.isConnected()); } /** * Check if there is fast connectivity * @param context * @return */ public static boolean isConnectedFast(Context context){ ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo info = cm.getActiveNetworkInfo(); return (info != null && info.isConnected() && isConnectionFast(info.getType(),info.getSubtype())); } /** * Check if the connection is fast * @param type * @param subType * @return */ public static boolean isConnectionFast(int type, int subType){ if(type==ConnectivityManager.TYPE_WIFI){ System.out.println("CONNECTED VIA WIFI"); return true; }else if(type==ConnectivityManager.TYPE_MOBILE){ switch(subType){ case TelephonyManager.NETWORK_TYPE_1xRTT: return false; // ~ 50-100 kbps case TelephonyManager.NETWORK_TYPE_CDMA: return false; // ~ 14-64 kbps case TelephonyManager.NETWORK_TYPE_EDGE: return false; // ~ 50-100 kbps case TelephonyManager.NETWORK_TYPE_EVDO_0: return true; // ~ 400-1000 kbps case TelephonyManager.NETWORK_TYPE_EVDO_A: return true; // ~ 600-1400 kbps case TelephonyManager.NETWORK_TYPE_GPRS: return false; // ~ 100 kbps case TelephonyManager.NETWORK_TYPE_HSDPA: return true; // ~ 2-14 Mbps case TelephonyManager.NETWORK_TYPE_HSPA: return true; // ~ 700-1700 kbps case TelephonyManager.NETWORK_TYPE_HSUPA: return true; // ~ 1-23 Mbps case TelephonyManager.NETWORK_TYPE_UMTS: return true; // ~ 400-7000 kbps // NOT AVAILABLE YET IN API LEVEL 7 case NETWORK_TYPE_EHRPD: return true; // ~ 1-2 Mbps case NETWORK_TYPE_EVDO_B: return true; // ~ 5 Mbps case NETWORK_TYPE_HSPAP: return true; // ~ 10-20 Mbps case NETWORK_TYPE_IDEN: return false; // ~25 kbps case NETWORK_TYPE_LTE: return true; // ~ 10+ Mbps // Unknown case TelephonyManager.NETWORK_TYPE_UNKNOWN: return false; default: return false; } }else{ return false; } } /** * IP转整型 * @param ip * @return */ public static long ip2int(String ip) { String[] items = ip.split("\\."); return Long.valueOf(items[0]) << 24 | Long.valueOf(items[1]) << 16 | Long.valueOf(items[2]) << 8 | Long.valueOf(items[3]); } /** * 整型转IP * @param ipInt * @return */ public static String int2ip(long ipInt) { StringBuilder sb = new StringBuilder(); sb.append(ipInt & 0xFF).append("."); sb.append((ipInt >> 8) & 0xFF).append("."); sb.append((ipInt >> 16) & 0xFF).append("."); sb.append((ipInt >> 24) & 0xFF); return sb.toString(); } }
发表评论
-
使用Android进行分享
2014-04-21 14:22 01.简单的分享文本 Intent sendIntent = ... -
android:descendantFocusability用法简析
2013-11-25 10:11 0开发中很常见的一个问题,项目中的listview不 ... -
Android 的应用程序的优先级和进程状态
2013-11-04 12:29 2237回收资源的时候,进 ... -
去掉listview顶部和底部阴影(高光部分)
2013-11-13 11:04 700/** * 去掉listview顶部和底部阴影(高光 ... -
Android的5个进程等级 .
2013-10-22 17:00 691来自:http://blog.csdn.net/ ... -
使用TextView 使用文字水平滚动
2013-09-26 15:12 647/** * * <b>功能名:< ... -
SMS研究(转)记录地址
2013-09-22 15:20 721拦截短信 作者:bingzhi更新于 07月26日访问(70 ... -
ListView 隐藏滚动条及基本属性
2013-09-09 22:25 1278由于这两天在做listView的东西,所以整理出来一些我个 ... -
android 编辑框过滤文本
2013-09-05 13:48 554public class EditOnKeyListener ... -
HttpClient The target server failed to respond
2013-09-04 17:50 14870关于HttpClient 出现 The target ser ... -
android webview的三种加载方式
2013-08-28 17:20 568//打开本包内asset目录下的index.html文件 ... -
TextView的一些高级显示
2013-08-20 10:41 4351. 自定义字体可 ... -
命名空间
2013-08-19 18:18 7601.需要在AndroidManifest.xml添加自己的 ... -
java 4种引用
2013-08-16 09:20 7131.强引用本章前文介绍的引用实际上都是强引用,这是使用最普遍 ... -
清除 webView 存在的缓存!
2013-08-15 17:27 795CookieSyncManager.createInstan ... -
使用 PullToRefreshListView 分页问题.
2013-08-15 12:05 2285使用PullToRefreshListView分页刷新问题, ... -
清除webview产生的缓存
2013-08-15 10:03 1548/** * 删除应用缓存(/data/data/包名/ ... -
读取assets或者raw目录下的sqlite数据库
2013-08-14 17:46 994public class DbManager { pr ... -
使用 ActivityGroup 加载多个Activity
2013-08-14 15:13 6951.mTabClassArray 数组中存放的是Activi ... -
监听 ScrollView 滑动到底部
2013-08-13 15:52 9491.给ScrollView添加 OnTouchListene ...
相关推荐
《Android网络开发与应用实战详解》一书深入浅出地介绍了Android系统中如何实现网络通信,并提供了丰富的源码示例。这本书涵盖的内容广泛,包括基础的HTTP请求、数据解析、网络状态管理以及高级的WebSocket通信和...
以下是关于Android网络摄像头实现及其相关技术的详细解释: 1. **Socket通信**: Socket是TCP/IP协议族的一部分,提供了进程间通信的能力,允许不同设备间的应用程序之间进行双向数据传输。在Android网络摄像头...
1. **Android网络编程**: - Android应用程序可以通过HTTP或HTTPS协议与服务器进行通信,常用的方法有使用`HttpURLConnection`、`HttpClient`(已废弃)或第三方库如`OkHttp`。 - 为了获取地震信息,开发者通常会...
在Android中,可以通过多种方式来获取网络流量信息。一种常见的方式是通过`ConnectivityManager`的`getActiveNetworkInfo()`方法获取当前活动的网络连接,然后通过`NetworkInfo`对象的`getDataUsageStatistics()`...
本教程将深入探讨Android网络请求框架,帮助开发者理解和掌握这一核心技术。 一、Android网络请求的重要性 在移动设备上,应用程序通常需要访问互联网来获取实时数据,例如加载新闻、更新社交媒体状态或下载资源。...
本文将深入探讨“Android网络操作”的核心概念、常用方法以及如何利用封装好的框架进行高效开发。 一、Android网络访问基础 在Android中,网络操作主要依赖于java.net和HttpURLConnection类库,但出于性能和易用性...
本篇将详细解析"Android网络监视器源码"的相关知识点。 1. **网络监控基础**: - **HTTP与HTTPS**:Android应用通常通过HTTP或HTTPS协议与服务器进行通信,网络监视器能捕捉到这些请求,展示请求头、请求体、响应...
【Android网络测速App源代码】是一个专门为Android平台设计的应用程序,用于测试设备的网络速度,包括上传和下载的速度。这个App不仅提供了基本的测速功能,还具有记录查询和结果保存到TXT文件的能力,同时结合了...
在Android开发中,网络权限配置是至关重要的,它关乎到应用程序能否正常地访问网络资源,进行数据的发送和接收。本文将深入探讨Android系统中的网络权限配置,以及如何在实际项目中正确设置和使用。 首先,Android...
4. **Traceroute**:虽然在Android中不常用,但`traceroute`可以追踪数据包在网络中的路由,提供更详细的网络路径信息。 实时网络质量检测对于游戏、视频通话、流媒体等对网络依赖性强的应用尤其重要。通过综合运用...
Android 获取移动网络及SIM卡运营商信息,可获取到SIM卡国别、SIM卡序列号、SIM卡状态、运营商代号、手机制式等信息。获取各个数据项的值: listValues.add(tm.getDeviceId());//获取设备编号 listValues.add(tm...
然后,你可以通过`getActiveNetworkInfo()`方法获取当前活动的网络信息,或者在Android 6.0(API级别23)及以上版本使用`getNetworkCapabilities()`获取网络能力。接下来,检查这些信息是否为空以及网络是否连接: `...
如题是一个Android网络版的五子棋,服务器是用TCP编写,玩家间对战是通过发送UDP数据包发送对战信息,具体信息也可以看看我的博客:https://blog.csdn.net/ou_654/article/details/80978314
### Android网络编程基础知识点 #### 一、网络状态检测 在Android开发中,为了确保应用程序能够根据当前网络环境做出响应,通常需要先检测设备的网络连接状态。这可以通过`ConnectivityManager`类来实现。 1. **...
总的来说,这个DEMO是一个实用的教学工具,涵盖了Android网络控制的多个方面,对于提升开发者在Android网络编程方面的技能非常有帮助。通过学习和分析这个DEMO,开发者不仅可以了解Android网络控制的基本原理,还能...
接下来,我们通过调用`getAllNetworkInfo()`方法获取设备上所有可用的网络信息列表: ```java else { NetworkInfo[] info = connectivity.getAllNetworkInfo(); ``` 该方法返回一个`NetworkInfo`数组,每个元素...
1. **Android网络权限**: 在AndroidManifest.xml文件中,首先需要添加`INTERNET`权限,以便应用可以访问网络: ```xml <uses-permission android:name="android.permission.INTERNET" /> ``` 2. **...
通过`ConnectivityManager`,我们可以获取到设备当前的网络连接信息,包括网络类型(如Wi-Fi、移动数据等)以及是否连接。一旦确定了网络连接,我们可以通过计算一定时间内数据传输的字节数来估算网速。 以下是一个...