`
JasonShieh
  • 浏览: 530862 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

android获取3G或wifi流量信息

 
阅读更多


IBatteryStats battryStats = IBatteryStats.Stub.asInterface(ServiceManager.getService("batteryinfo"));
    	byte[] data = null;
		try {
			data = battryStats.getStatistics();
			Parcel parcel = Parcel.obtain();
			parcel.unmarshall(data, 0, data.length);
			parcel.setDataPosition(0);
			final BatteryStatsImpl impl = BatteryStatsImpl.CREATOR.createFromParcel(parcel);
			try {
				Thread.sleep(1000);
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
			long length1_1 = impl.getTotalTcpBytesReceived(BatteryStats.STATS_CURRENT);
			long length1_2 = impl.getTotalTcpBytesReceived(BatteryStats.STATS_LAST);
			long length1_3 = impl.getTotalTcpBytesReceived(BatteryStats.STATS_TOTAL);
			long length1_4 = impl.getTotalTcpBytesReceived(BatteryStats.STATS_UNPLUGGED);
			
			long length2_1 = impl.getTotalTcpBytesSent(BatteryStats.STATS_CURRENT);
			long length2_2 = impl.getTotalTcpBytesSent(BatteryStats.STATS_LAST);
			long length2_3 = impl.getTotalTcpBytesSent(BatteryStats.STATS_TOTAL);
			long length2_4 = impl.getTotalTcpBytesSent(BatteryStats.STATS_UNPLUGGED);
			
			long length3_1 = impl.getMobileTcpBytesReceived(BatteryStats.STATS_CURRENT);
			long length3_2 = impl.getMobileTcpBytesReceived(BatteryStats.STATS_LAST);
			long length3_3 = impl.getMobileTcpBytesReceived(BatteryStats.STATS_TOTAL);
			long length3_4 = impl.getMobileTcpBytesReceived(BatteryStats.STATS_UNPLUGGED);
			
			long length4_1 = impl.getMobileTcpBytesSent(BatteryStats.STATS_CURRENT);
			long length4_2 = impl.getMobileTcpBytesSent(BatteryStats.STATS_LAST);
			long length4_3 = impl.getMobileTcpBytesSent(BatteryStats.STATS_TOTAL);
			long length4_4 = impl.getMobileTcpBytesSent(BatteryStats.STATS_UNPLUGGED);
			
			Log.d("TAG", "total tcp R dataC:" + length1_1/(1024*1024));
			Log.d("TAG", "total tcp R dataL:" + length1_2/(1024*1024));
			Log.d("TAG", "total tcp R dataT:" + length1_3/(1024*1024));
			Log.d("TAG", "total tcp R dataU:" + length1_4/(1024*1024));
			
			Log.d("TAG", "total tcp S dataC:" + length2_1/(1024*1024));
			Log.d("TAG", "total tcp S dataL:" + length2_2/(1024*1024));
			Log.d("TAG", "total tcp S dataT:" + length2_3/(1024*1024));
			Log.d("TAG", "total tcp S dataU:" + length2_4/(1024*1024));
			
			Log.d("TAG", "M R tcp dataC:" + length3_1/(1024*1024));
			Log.d("TAG", "M R tcp dataL:" + length3_2/(1024*1024));
			Log.d("TAG", "M R tcp dataT:" + length3_3/(1024*1024));
			Log.d("TAG", "M R tcp dataU:" + length3_4/(1024*1024));
			
			Log.d("TAG", "M S tcp dataC:" + length4_1/(1024*1024));
			Log.d("TAG", "M S tcp dataL:" + length4_2/(1024*1024));
			Log.d("TAG", "M S tcp dataT:" + length4_3/(1024*1024));
			Log.d("TAG", "M S tcp dataU:" + length4_4/(1024*1024));
			
		} catch (RemoteException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

分享到:
评论

相关推荐

    Android获取指定应用的流量统计.rar

    通过这两个类,我们可以获取到总的网络流量信息,以及按应用分组的流量数据。 1. **使用ConnectivityManager** `ConnectivityManager`是Android中的网络管理服务接口,它提供了获取网络状态、建立网络连接等功能。...

    Android 3G和wifi的切换监听-IT计算机-毕业设计.zip

    在Android系统中,3G和Wi-Fi网络的切换监听是一项重要的功能,特别是在移动应用开发中。这个毕业设计项目提供了一个源码Demo,帮助学生理解如何实现这一功能。下面将详细介绍这个项目的相关知识点。 首先,我们要...

    安卓Android源码——3G和wifi的切换监听.zip

    在安卓(Android)系统中,实现3G网络与Wi-Fi之间的切换监听是一项关键的技术任务,这对于网络管理、数据流量监控以及提升用户体验具有重要意义。本文将深入探讨如何在Android源码中实现这一功能。 首先,我们要...

    Android应用源码之3G和wifi的切换监听.rar

    在onReceive()方法中,我们可以通过`ConnectivityManager`的`getActiveNetworkInfo()`或`getAllNetworks()`方法获取当前的网络信息。然后,检查`NetworkInfo`对象的`getTypeName()`和`isConnected()`,以判断是3G...

    android获取网络状态Flex开发

    通过实时检测网络连接类型(如2G、3G、4G或WiFi),应用可以根据当前网络环境调整其行为,例如在网络不稳定时降低图像质量或暂停视频流,从而优化用户体验并节省用户的数据流量。 ### 知识点三:使用Flex进行网络...

    android_wifi_status

    在Android应用开发中,这一功能通常用于提供更优质的用户体验,比如在WiFi环境下加载大文件或视频,而在移动数据网络下则避免消耗用户的数据流量。 首先,我们需要了解Android提供的`ConnectivityManager`类,它是...

    android最新流量监测源码分享

    其次,区分WiFi和3G(或者4G、5G)流量的监测,需要对网络类型进行判断。在Android中,`NetworkInfo`类包含了`getTypeName()`方法,返回网络连接的类型,如"Wi-Fi"、"MOBILE"等。通过这个信息,我们可以分别记录不同...

    安卓启动退出网络判断相关-3G和wifi的切换监听.zip

    7. **网络切换的处理**: 当网络从3G切换到WiFi,或者反过来时,可以做一些优化操作,例如,如果是从3G切换到WiFi,可能需要重新加载高清图片或大文件;反之,如果从WiFi切换到3G,可能需要暂停大流量的下载任务,以...

    Android App切换网络模式(4G,3G,2G,飞行模式)

    - 使用`ConnectivityManager`的`getNetworkCapabilities()`方法获取当前网络的详细信息,检查是否支持4G(LTE)网络。 - 要手动切换到4G网络,通常不需要特别的操作,因为设备会自动选择可用的最佳网络。如果需要...

    android流量监控软件

    - **系统接口**:Android提供了一系列API,如`ConnectivityManager`和`NetworkStatsManager`,用于获取网络状态和流量信息。`ConnectivityManager`用于管理网络连接,而`NetworkStatsManager`则可以获取网络使用的...

    3G和wifi的切换监听Android

    通过调用`getActiveNetworkInfo()`或`getAllNetworkInfos()`方法,我们可以获取当前设备的所有网络连接信息。 当网络状态发生变化时,例如从3G切换到WiFi,或者网络断开,Android系统会发出广播。开发者可以注册一...

    通信与网络中的基于Android系统终端实现3G WIFI无线漫游

    分析了基于Android系统手机终端的3G网络和wIFI网络的连接机制,根据此连接机制针对当前兴起的Android系统应用程序的开发进行了分析,实现了由3G 到WIFI的无线漫游,该漫游主要是通过Android中的ListView数据显示...

    3G和wifi的切换监听

    网络类型常量通常有`ConnectivityManager.TYPE_MOBILE`(代表3G或2G网络)和`ConnectivityManager.TYPE_WIFI`(代表Wi-Fi网络)。 为了监听网络状态的变化,我们需要注册一个`BroadcastReceiver`。创建一个新的类,...

    Android流量监控代码.docx

    通过`PackageInfo.applicationInfo.uid`可以获取到应用的UID,进一步利用TrafficStats的`getUid...`方法获取该应用的流量信息。 3. **动态注册广播接收器**: 因为需要在网络状态改变时实时监控流量,通常需要动态...

    android 查看数据流量统计脚本

    在Android系统中,数据...通过以上方法,开发者或用户可以自定义查看Android设备的数据流量统计,这对于监控应用网络行为、优化数据使用或者排查网络问题都非常有帮助。记住,合理使用数据,避免超流量带来的额外费用。

    Android手机WIFI导流系统CMTPPT文档.pptx

    《Android手机WIFI导流系统详解》 在信息化飞速发展的今天,移动数据业务的通讯量呈现爆炸式增长,这给3G网络带来了巨大的压力。为了解决这一问题,Android手机WIFI导流系统应运而生。此系统旨在利用WIFI的高吞吐量...

    Android移动终端流量监控软件的设计与实现课稿实用教案.ppt

    在Android中,可以利用TrafficStats类提供的API来获取3G和WIFI的流量数据。例如,通过调用getMobileTxBytes()和getMobileRxBytes()方法可以获取到移动网络上传和下载的字节数,getTotalTxBytes()和getTotalRxBytes()...

    基于Android平台手机资费流量统计系统设计.pdf

    例如,系统应确保用户的流量使用数据不会被非法获取或滥用,同时需要对敏感信息如账户详情进行加密,以防止未授权的访问。 【手机资费流量统计系统设计】 设计这样一个系统需要实现以下功能: 1. **实时监控**:...

    3G和wifi的切换监听.rar

    ConnectivityManager的getActiveNetworkInfo()方法可以返回当前活动的网络信息,包括网络类型(如3G或Wi-Fi)。 3. 分析网络状态:检查返回的NetworkInfo对象,判断当前是否为3G或Wi-Fi网络。如果是3G,可能需要...

Global site tag (gtag.js) - Google Analytics