Android编程实现监控各个程序流量的方法
本文实例讲述了Android编程实现监控各个程序流量的方法。分享给大家供大家参考,具体如下:
public void getAppTrafficList(){ //获取所有的安装在手机上的应用软件的信息,并且获取这些软件里面的权限信息 PackageManager pm=getPackageManager();//获取系统应用包管理 //获取每个包内的androidmanifest.xml信息,它的权限等等 List<PackageInfo> pinfos=pm.getInstalledPackages (PackageManager.GET_UNINSTALLED_PACKAGES | PackageManager.GET_PERMISSIONS); //遍历每个应用包信息 for(PackageInfo info:pinfos){ //请求每个程序包对应的androidManifest.xml里面的权限 String[] premissions=info.requestedPermissions; if(premissions!=null && premissions.length>0){ //找出需要网络服务的应用程序 for(String premission : premissions){ if("android.permission.INTERNET".equals(premission)){ //获取每个应用程序在操作系统内的进程id int uId=info.applicationInfo.uid; //如果返回-1,代表不支持使用该方法,注意必须是2.2以上的 long rx=TrafficStats.getUidRxBytes(uId); //如果返回-1,代表不支持使用该方法,注意必须是2.2以上的 long tx=TrafficStats.getUidTxBytes(uId); if(rx<0 || tx<0){ continue; }else{ // Toast.makeText(this, info.applicationInfo.loadLabel(pm)+"消耗的流量--"+ // Formatter.formatFileSize(this, rx+tx), Toast.LENGTH_SHORT); } } } } } }
希望本文所述对大家Android程序设计有所帮助。
相关推荐
-
android 键盘事件和屏幕事件的运行原理及交互实现
当在自定义View或者做游戏的时候,我们常常会用到键盘触发事件和屏幕触发事件!在自定义的View里的键盘触发事件(比如:onKeyDown(int keyCode, KeyEvent event))和屏幕触发事件(onTouchEvent(MotionEvent event))和activity里的键盘触发事件(比如:onKeyDown(int keyCode, KeyEvent event))和屏幕触发事件(onTouchEvent(MotionEvent event))是怎么样交互的呢?是怎
-
浅析Android 模拟键盘鼠标事件
通过Socket + Instrumentation实现模拟键盘鼠标事件主要通过以下三个部分组成:Socket编程:实现PC和Emulator通讯,并进行循环监听Service服务:将Socket的监听程序放在Service中,从而达到后台运行的目的.这里要说明的是启动服务有两种方式,bindService和startService,两者的区别是,前者会使启动的Service随着启动Service的Activity的消亡而消亡,而startService则不会这样,除非显式调用stopServi
-
Android中button实现onclicklistener事件的两种方式
复制代码 代码如下: package com.demos; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; public class GetScreenActivity extends Activity { private Button fi
-
Android编程实现监控apk安装,卸载,替换的方法
本文实例讲述了Android编程实现监控apk安装,卸载,替换的方法.分享给大家供大家参考,具体如下: public class GetBroadcast extends BroadcastReceiver { private static GetBroadcast mReceiver = new GetBroadcast(); private static IntentFilter mIntentFilter; public static void registerReceiver(Conte
-
Android Touch事件分发过程详解
本文以实例形式讲述了Android Touch事件分发过程,对于深入理解与掌握Android程序设计有很大的帮助作用.具体分析如下: 首先,从一个简单示例入手: 先看一个示例如下图所示: 布局文件 : <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id=&
-
Android中三种注入事件方法比较
方法1:使用内部APIs 该方法和其他所有内部没有向外正式公布的APIs一样存在它自己的风险.原理是通过获得WindowManager的一个实例来访问injectKeyEvent/injectPointerEvent这两个事件注入方法. 复制代码 代码如下: IBinder wmbinder = ServiceManager.getService( "window" ); IWindowManager m_WndManager = IWindowManager.Stub.asInter
-
android监控sim卡有没有服务示例(sim卡管理)
复制代码 代码如下: public class UniteqService {public static final String LOG_TAG = "UniteqService";public boolean DEBUG = true;private boolean hasService = false;//是否有服务private PhoneStateListener[] mPhoneStateListener;//监听双卡private TelephonyManager mPh
-
android监听返回按钮事件的方法
本文实例讲述了android监听返回按钮事件的方法.分享给大家供大家参考.具体如下: 用户在点击手机的返回按钮时,默认是推出当前的activty,但是有时用户不小心按到返回,所以需要给用户一个提示,这就需要重写onkeydown事件,实现的效果如下: java代码如下: @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.l
-
Android按钮单击事件的四种常用写法总结
很多学习Android程序设计的人都会发现每个人对代码的写法都有不同的偏好,比较明显的就是对控件响应事件的写法的不同.因此本文就把这些写法总结一下,比较下各种写法的优劣,希望对大家灵活地选择编码方式可以有一定的参考借鉴价值. xml文件代码如下: <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_conte
-
Android基于hover组件实现监控鼠标移动事件的方法
本文实例讲述了Android基于hover组件实现监控鼠标移动事件的方法.分享给大家供大家参考,具体如下: Android之前对于鼠标光标事件的监控非常少,4.0之后多了一个hover的组件,此组件可以监控鼠标光标在view上的变化. 代码如下: public class HoverDemoActivity extends Activity { private Button btnBottom; @Override public void onCreate(Bundle savedInstanc
-
Android中实现监听ScrollView滑动事件
时候我们需要监听ScroView的滑动情况,比如滑动了多少距离,是否滑到布局的顶部或者底部.可惜的是SDK并没有相应的方法,不过倒是提供了一个 复制代码 代码如下: protected void onScrollChanged(int x, int y, int oldx, int oldy) 方法,显然这个方法是不能被外界调用的,因此就需要把它暴露出去,方便使用.解决方式就是写一个接口, 复制代码 代码如下: package com.example.demo1; public inter
-
Android中判断网络连接是否可用及监控网络状态
获取网络信息需要在AndroidManifest.xml文件中加入相应的权限. <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 1)判断是否有网络连接 复制代码 代码如下: public boolean isNetworkConnected(Context context) { if (context != null) { ConnectivityManager mConn
-
封装的android监听手指左右滑动屏幕的事件类分享
左右滑动是智能手机最常用的动作,在此简单的封装了一下,以后直接拿来用就可以了. 简单的只需要几行就可以了,下面那个类是封装好了的. package com.example.test; import android.os.Bundle; import android.app.Activity; import android.content.Context; import android.util.Log; import android.widget.RelativeLayout; public c
-
android Textview文字监控(Textview使用方法)
1.首先给用户添加一个textchangedlistener2.然后再写一个文字变化的监视器 复制代码 代码如下: mobile_et.addTextChangedListener(textWatcher); /** * 实时监听用户输入的手机号,输入至最后一位后,计算折扣后的金额 */ TextWatcher textWatcher = new TextWatcher() { @Override public void onTextChanged(CharS
随机推荐
- html中嵌入flv格式文件的代码
- ruby中并发并行与全局锁详解
- Python实现信用卡系统(支持购物、转账、存取钱)
- Spring集成MyBatis完整实例(分享)
- JavaEE7+Websockets+GlassFish4打造聊天室
- js实现交换运动效果的方法
- PHP正则匹配图片并给图片加链接详解
- NodeJS实现微信公众号关注后自动回复功能
- 在Python中处理日期和时间的基本知识点整理汇总
- Python 常用string函数详解
- 如何在Flash中处理Cookies?
- 在flash 单击按钮,弹出指定要求的窗口
- javascript编程起步(第三课)
- jQuery Ajax Post 回调函数不执行问题的解决方法
- JavaScript数值千分位格式化的两种简单实现方法
- Vps、云主机、独立主机Udp发包处理流程
- ios触屏事件指南
- Android中AlarmManager基本用法分析
- Android拍照裁剪图片
- Android网格布局GridView实现漂亮的多选效果