- 浏览: 129067 次
- 性别:
- 来自: 北京
最新评论
-
qiuhuahui1:
真的有用,帮我节省了大把的时间。
android的ant编译打包 -
fxiaozj:
楼主,有没有demo?
Android ViewGroup实现页面滑动效果并实现不同的动画效果 -
sgjsdf5944:
你好,请问下楼主如果我想在安装完成页面上控制打开不可用该怎么实 ...
Android 监控程序安装和删除的实现 -
renfujiang:
养成好习惯,看过别人的文章 就得评论 增加点人气 好文章 我是 ...
android的ant编译打包 -
leishengwei:
你好,第一种方法在4.0时,输入法是弹不出去了,但是光标不能正 ...
Android如何关闭EditText中的软键盘
本文主要讨论如何监控 Android 程序包的安装和删除
Android系统的安装方式我在 《Android 应用程序安装方式 的详细调研》一文中已经做了详细的阐述,链接如下
http://www.2cto.com/kf/201201/116677.html
基于这些安装方式,我们如何对系统进行的安装进行监控呢?
通过阅读Android SDK里关于intent.action这部分里面的描述,我们可以找到一些与package相关的系统广播
[c-sharp] android.intent.action.PACKAGE_ADDED
android.intent.action.PACKAGE_CHANGED
android.intent.action.PACKAGE_DATA_CLEARED
android.intent.action.PACKAGE_INSTALL
android.intent.action.PACKAGE_REMOVED
android.intent.action.PACKAGE_REPLACED
android.intent.action.PACKAGE_RESTARTED
android.intent.action.PACKAGE_ADDED
android.intent.action.PACKAGE_CHANGED
android.intent.action.PACKAGE_DATA_CLEARED
android.intent.action.PACKAGE_INSTALL
android.intent.action.PACKAGE_REMOVED
android.intent.action.PACKAGE_REPLACED
android.intent.action.PACKAGE_RESTARTED
其中
ACTION_PACKAGE_ADDED
在SDK里的描述是
Broadcast Action: A new application package has been installed on the device.
ACTION_PACKAGE_REMOVED
在SDK里的描述是
Broadcast Action: An existing application package has been removed from the device.
ACTION_PACKAGE_REPLACED
在SDK里的描述是
Broadcast Action: A new version of an application package has been installed, replacing an existing version that was previously installed.
通过这三个广播消息 我们已经可以监控到Android 应用程序的安装和删除
详细的实现代码如下
然后在AndroidManifest.xml中声明这几个Action的<intent-filter>即可在系统里捕获这些广播消息
具体的源代码如下
把程序安装之后 ,系统就会注册这个BroadcastReceiver
然后有应用安装删除替换操作时时,就会弹出Toast提示
以上这样,我们就可以实现监控Android 应用程序的安装过程
至于拦截安装过程,我也正在研究中,大家有好的idea可以与我 分享,谢谢
摘自 Zy的技术心得
Android系统的安装方式我在 《Android 应用程序安装方式 的详细调研》一文中已经做了详细的阐述,链接如下
http://www.2cto.com/kf/201201/116677.html
基于这些安装方式,我们如何对系统进行的安装进行监控呢?
通过阅读Android SDK里关于intent.action这部分里面的描述,我们可以找到一些与package相关的系统广播
[c-sharp] android.intent.action.PACKAGE_ADDED
android.intent.action.PACKAGE_CHANGED
android.intent.action.PACKAGE_DATA_CLEARED
android.intent.action.PACKAGE_INSTALL
android.intent.action.PACKAGE_REMOVED
android.intent.action.PACKAGE_REPLACED
android.intent.action.PACKAGE_RESTARTED
android.intent.action.PACKAGE_ADDED
android.intent.action.PACKAGE_CHANGED
android.intent.action.PACKAGE_DATA_CLEARED
android.intent.action.PACKAGE_INSTALL
android.intent.action.PACKAGE_REMOVED
android.intent.action.PACKAGE_REPLACED
android.intent.action.PACKAGE_RESTARTED
其中
ACTION_PACKAGE_ADDED
在SDK里的描述是
Broadcast Action: A new application package has been installed on the device.
ACTION_PACKAGE_REMOVED
在SDK里的描述是
Broadcast Action: An existing application package has been removed from the device.
ACTION_PACKAGE_REPLACED
在SDK里的描述是
Broadcast Action: A new version of an application package has been installed, replacing an existing version that was previously installed.
通过这三个广播消息 我们已经可以监控到Android 应用程序的安装和删除
详细的实现代码如下
getBroadcast.java [c-sharp] package zy.Broadcast; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.widget.Toast; public class getBroadcast extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { if(Intent.ACTION_PACKAGE_ADDED.equals(intent.getAction())){ Toast.makeText(context, "有应用被添加", Toast.LENGTH_LONG).show(); } else if(Intent.ACTION_PACKAGE_REMOVED.equals(intent.getAction())){ Toast.makeText(context, "有应用被删除", Toast.LENGTH_LONG).show(); } /* else if(Intent.ACTION_PACKAGE_CHANGED.equals(intent.getAction())){ Toast.makeText(context, "有应用被改变", Toast.LENGTH_LONG).show(); }*/ else if(Intent.ACTION_PACKAGE_REPLACED.equals(intent.getAction())){ Toast.makeText(context, "有应用被替换", Toast.LENGTH_LONG).show(); } /* else if(Intent.ACTION_PACKAGE_RESTARTED.equals(intent.getAction())){ Toast.makeText(context, "有应用被重启", Toast.LENGTH_LONG).show(); }*/ /* else if(Intent.ACTION_PACKAGE_INSTALL.equals(intent.getAction())){ Toast.makeText(context, "有应用被安装", Toast.LENGTH_LONG).show(); }*/ } }
package zy.Broadcast; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.widget.Toast; public class getBroadcast extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { if(Intent.ACTION_PACKAGE_ADDED.equals(intent.getAction())){ Toast.makeText(context, "有应用被添加", Toast.LENGTH_LONG).show(); } else if(Intent.ACTION_PACKAGE_REMOVED.equals(intent.getAction())){ Toast.makeText(context, "有应用被删除", Toast.LENGTH_LONG).show(); } /* else if(Intent.ACTION_PACKAGE_CHANGED.equals(intent.getAction())){ Toast.makeText(context, "有应用被改变", Toast.LENGTH_LONG).show(); }*/ else if(Intent.ACTION_PACKAGE_REPLACED.equals(intent.getAction())){ Toast.makeText(context, "有应用被替换", Toast.LENGTH_LONG).show(); } /* else if(Intent.ACTION_PACKAGE_RESTARTED.equals(intent.getAction())){ Toast.makeText(context, "有应用被重启", Toast.LENGTH_LONG).show(); }*/ /* else if(Intent.ACTION_PACKAGE_INSTALL.equals(intent.getAction())){ Toast.makeText(context, "有应用被安装", Toast.LENGTH_LONG).show(); }*/ } }
然后在AndroidManifest.xml中声明这几个Action的<intent-filter>即可在系统里捕获这些广播消息
具体的源代码如下
</manifest> <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="zy.Broadcast" android:versionCode="1" android:versionName="1.0"> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".Broadcast" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <receiver android:name="getBroadcast" android:enabled="true" > <intent-filter> <action android:name="android.intent.action.PACKAGE_ADDED"></action> <!-- <action android:name="android.intent.action.PACKAGE_CHANGED"></action>--> <action android:name="android.intent.action.PACKAGE_REMOVED"></action> <action android:name="android.intent.action.PACKAGE_REPLACED"></action> <!-- <action android:name="android.intent.action.PACKAGE_RESTARTED"></action>--> <!-- <action android:name="android.intent.action.PACKAGE_INSTALL"></action>--> <data android:scheme="package"></data> </intent-filter> </receiver> </application> <uses-sdk android:minSdkVersion="7" /> </manifest>
把程序安装之后 ,系统就会注册这个BroadcastReceiver
然后有应用安装删除替换操作时时,就会弹出Toast提示
以上这样,我们就可以实现监控Android 应用程序的安装过程
至于拦截安装过程,我也正在研究中,大家有好的idea可以与我 分享,谢谢
摘自 Zy的技术心得
发表评论
-
ListView与Button、imageButton 的共存问题解决
2013-02-20 11:39 1304ListView与Button、imageButton 的共存 ... -
android实现popupwindow的动画效果
2013-02-01 18:56 1992问题:在打开或者关闭popupwindow的时候怎么样显示动画 ... -
Android开发ViewPager中ListView失效问题解决方法
2013-01-28 22:12 2752最近开发一个Android小应用。就是利用ViewPager实 ... -
Android ViewGroup实现页面滑动效果并实现不同的动画效果
2012-08-28 22:24 3117这应该是自己第一次开始写博客,今天起想要记录下自己工作上学到的 ... -
关于WebView的loadData方法以及乱码问题
2012-08-09 14:37 953WebView是Android应用开发 ... -
Android对图片的压缩读取和保存
2012-08-08 10:27 1372在开发图片浏览器等软件是,很多时候要显示图片的缩略图,而一般情 ... -
ubuntu下载android源代码
2012-07-22 00:50 1897用虚拟机来创建一个Ubun ... -
android面试(2)
2012-07-20 16:17 1064附带答案,共100分 一、选择题(30题,每题1.5分,共4 ... -
自定义PreferenceActivity——修改Preference样式、加顶部布局
2012-05-27 20:19 2685首先在res/xml文件夹下建立preferences.xml ... -
android拦截短信并屏蔽系统的Notification
2012-05-21 09:25 1783Android短信拦截,总的来说有两种方式: (一)、在代码 ... -
Android设置应用程序默认语言
2012-05-19 21:03 1519Android应用程序的国际化还是做得不错的,通过设置资源文件 ... -
(android 实战总结)android对html支持接口总结
2012-04-18 09:50 2372Android支持html 的两个接口 1 Spanned ... -
Android的TextView使用Html来处理图片显示、字体样式、超链接等
2012-04-16 11:09 1548转eoe:http://www.eoeandroid.com/ ... -
android的ant编译打包
2012-04-11 14:52 3897Android本身是支持ant打包项目的,并且SDK中自带一个 ... -
使用InputStreamEntity 边读取边上传文件
2012-04-09 17:32 7411HttpClient httpclient = new Def ... -
android xliff字符串操作
2012-04-09 14:59 1408参考:http://blog.csdn.net/freshma ... -
Android:只读EditText内容可滚动(禁止输入法)的实现
2012-04-06 12:00 1386实验设备为HTC hero (SDK 2.1-update1) ... -
Eclipse报内存溢出
2012-04-04 10:50 1093(1)在配置tomcat的JDK里面设置。Window--&g ... -
Android解压缩zip的实现
2012-03-20 11:21 2820android 解压缩zip包,需要在menifest.xml ... -
Android alertdialog的按钮点击后不消失
2012-03-15 20:35 1859使用反射: 在你的setPositiveButton中添加 ...
相关推荐
1.5 使用Android SDK开发最终用户应用程序 1.5.1 Android模拟器 1.5.2 Android UI 1.5.3 Android基础组件 1.5.4 高级UI概念 1.5.5 Android Service组件 1.5.6 Android媒体和电话组件 1.5.7 ...
1.5 使用Android SDK开发最终用户应用程序 1.5.1 Android模拟器 1.5.2 Android UI 1.5.3 Android基础组件 1.5.4 高级UI概念 1.5.5 Android Service组件 1.5.6 Android媒体和电话组件 1.5.7 ...
9.46、将程序安装到SD卡 268 9.47、创建一个SD映像 269 9.48、查看手机内存存储 269 9.49、在模拟器上调试GOOGLE MAPS 271 9.50、建立GPRS连接 273 9.51、获取手机位置 274 9.5* 获得经纬度,地名标注在地图上 274 ...
9.46、将程序安装到SD卡 268 9.47、创建一个SD映像 269 9.48、查看手机内存存储 269 9.49、在模拟器上调试GOOGLE MAPS 271 9.50、建立GPRS连接 273 9.51、获取手机位置 274 9.5* 获得经纬度,地名标注在地图上 274 ...
10.4.2 数据库表的增删改查 10.4.3 分页查询 10.5 SQLite事务支持 10.6 Content Providers(数据共享) 10.6.1 ContentProvider基础类 10.6.2 继承ContentProvider类 10.6.3 使用ContentResolver操作ContentProvider...
适用于Android的Syslog-ng Monitor关于Syslog-ng是Unix和类似Unix系统的Syslog协议的开源实现。 它通过基于内容的过滤,丰富的过滤功能,灵活的配置选项扩展了原始syslogd模型,并为syslog添加了重要功能,例如使用...
3.支持查看正在运行的应用程序 4.支持截图。 5.支持推送文件 6.支持安装apk 7.支持拉文件 8.支持直接打开远程图片&音视频文件 9.支持删除远程文件 10.支持电视遥控器 11.支持文字输入 12.支持系统监控 13.支持查看...
365防水墙用于防泄密、监控审计、封堵端口、防拷贝,也叫桌面安全管理系统、内网监控审计系统、内网安全管理系统、终端安全管理系统、内网防水...极强的反卸载和破解能力,即使启动到DOS下删除程序文件也能够自动复活。
查看网络状态▪ 查看 Wi-Fi 状态▪ 完全的互联网访问权限▪ 发现已知帐户▪ 检索当前运行的应用程序▪ 结束后台进程▪ 读取手机状态和身份▪ 开机时自动启动▪ 修改/删除 SD 卡中的内容▪ 控制振动器
ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...
2、找到 XAMPP 的网站根目录[xampp安装地址]/htdocs,删除原有的默认代码。 3、下载源代码,复制src目录下的内容到网站根目录 4、启动 XAMPP Control 管理平台,点击启动apache。 5、打开浏览器,访问localhost,...
它还利用隐式广播(如果有)来自动跟踪应用程序的安装,更新和删除。 Android Oreo删除了这些更改(删除操作除外),因此应用程序可以选择使用WorkManager定期在后台自动获取这些更改。 每次更改应用程序的target...
•筛选设备和系统应用程序上安装的应用程序的外部网络流量。在Wi-Fi和蜂窝网络过滤之间进行选择,并利用可自定义的规则(按IP地址和/或端口过滤,以及按整个网络或IP范围过滤)。 •监控当前和以前传输的流量; 为您...
TensorDash是一个应用程序,可让您远程监视深度学习模型的指标,并在模型训练完成或崩溃时通知您。 为什么选择Tensordash? 实时观看您的模型火车。 支持所有主要的深度学习框架。 远程获取有关培训和验证指标的...
ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...
能批量移动手机上的软件到SD卡,批量删除软件;实时显示剩余电量和可用时间;实时监控手机流量;免打扰功能让手机在 预设的日期、时间段内处于静音、振动或是离线状态,休息时间不怕打扰,睡眠时间减少辐射。 功能...
2个目标文件,FTP的目标是:(1)提高文件的共享性(计算机程序和/或数据),(2)鼓励间接地(通过程序)使用远程计算机,(3)保护用户因主机之间的文件存储系统导致的变化,(4)为了可靠和高效地传输,虽然用户...
FTP的目标是:(1)提高文件的共享性(计算机程序和/或数据),(2)鼓励间接地(通过程序)使用远程计算机,(3)保护用户因主机之间的文件存储系统导致的变化,(4)为了可靠和高效地传输,虽然用户可以在终端上...
•过滤设备和系统应用程序上安装的应用程序的外部网络流量。在 Wi-Fi 和蜂窝网络过滤之间进行选择,并利用可自定义的规则(按IP地址和/或端口以及整个网络或IP范围进行过滤)。 •监视当前和以前传输的流量;提供...