- 浏览: 134129 次
- 性别:
- 来自: 北京
最新评论
-
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 1375ListView与Button、imageButton 的共存 ... -
android实现popupwindow的动画效果
2013-02-01 18:56 2047问题:在打开或者关闭popupwindow的时候怎么样显示动画 ... -
Android开发ViewPager中ListView失效问题解决方法
2013-01-28 22:12 2821最近开发一个Android小应用。就是利用ViewPager实 ... -
Android ViewGroup实现页面滑动效果并实现不同的动画效果
2012-08-28 22:24 3206这应该是自己第一次开始写博客,今天起想要记录下自己工作上学到的 ... -
关于WebView的loadData方法以及乱码问题
2012-08-09 14:37 1013WebView是Android应用开发 ... -
Android对图片的压缩读取和保存
2012-08-08 10:27 1428在开发图片浏览器等软件是,很多时候要显示图片的缩略图,而一般情 ... -
ubuntu下载android源代码
2012-07-22 00:50 2010用虚拟机来创建一个Ubun ... -
android面试(2)
2012-07-20 16:17 1142附带答案,共100分 一、选择题(30题,每题1.5分,共4 ... -
自定义PreferenceActivity——修改Preference样式、加顶部布局
2012-05-27 20:19 2751首先在res/xml文件夹下建立preferences.xml ... -
android拦截短信并屏蔽系统的Notification
2012-05-21 09:25 1873Android短信拦截,总的来说有两种方式: (一)、在代码 ... -
Android设置应用程序默认语言
2012-05-19 21:03 1607Android应用程序的国际化还是做得不错的,通过设置资源文件 ... -
(android 实战总结)android对html支持接口总结
2012-04-18 09:50 2435Android支持html 的两个接口 1 Spanned ... -
Android的TextView使用Html来处理图片显示、字体样式、超链接等
2012-04-16 11:09 1634转eoe:http://www.eoeandroid.com/ ... -
android的ant编译打包
2012-04-11 14:52 3988Android本身是支持ant打包项目的,并且SDK中自带一个 ... -
使用InputStreamEntity 边读取边上传文件
2012-04-09 17:32 7512HttpClient httpclient = new Def ... -
android xliff字符串操作
2012-04-09 14:59 1470参考:http://blog.csdn.net/freshma ... -
Android:只读EditText内容可滚动(禁止输入法)的实现
2012-04-06 12:00 1480实验设备为HTC hero (SDK 2.1-update1) ... -
Eclipse报内存溢出
2012-04-04 10:50 1156(1)在配置tomcat的JDK里面设置。Window--&g ... -
Android解压缩zip的实现
2012-03-20 11:21 2871android 解压缩zip包,需要在menifest.xml ... -
Android alertdialog的按钮点击后不消失
2012-03-15 20:35 1947使用反射: 在你的setPositiveButton中添加 ...
相关推荐
在Android开发中,有时我们需要监控应用程序的安装和卸载事件,以便执行相应的操作,如更新数据库、发送通知或执行其他自定义逻辑。以下是如何在Android中实现这一功能的详细步骤: 首先,我们需要创建一个...
在Android应用开发中, APK(Android Package)是用于分发和安装Android应用程序的文件格式。当需要对已安装的应用进行更新时,开发者通常会提供一个新的APK文件供用户下载。本篇文章将详细介绍如何在Android应用中...
丰富的应用生态系统:Android系统拥有庞大的应用程序生态系统,用户可以从Google Play商店或其他第三方应用市场下载和安装各种各样的应用程序,满足各种需求。 可定制性:Android操作系统可以根据用户的个人喜好进行...
Android APK(Android Package Kit)文件是Android平台上的应用程序安装包格式,包含了应用程序的所有资源和代码。Android APK的安装过程涉及到多个步骤和技术细节,下面我们将深入探讨Android应用的安装原理及其...
在Android平台上,开发人员可以通过监听特定的广播Intent来实现对应用程序安装、卸载和替换的监控。本篇文章将深入探讨如何使用BroadcastReceiver类以及IntentFilter来实现这一功能。 首先,BroadcastReceiver是...
- 博文可能对ActivityManager的源码进行了分析,揭示了其内部实现机制,这对于理解Android系统的工作原理和优化应用性能非常有帮助。 8. **工具**: - 标签中的"工具"可能指的是博客中介绍了一些使用...
INSTALL_PACKAGES 权限允许一个程序安装 packages,这个权限非常危险,因为如果恶意程序获得了这个权限,就可以安装恶意软件,危害用户的设备安全。 DELETE_PACKAGES 权限允许一个程序删除包,这个权限也非常危险...
本资源是关于设计和实现基于Android的手机安全管理软件的毕业论文。该论文主要介绍了基于Android系统的手机安全管理软件的设计和实现过程,涵盖了基础技术简介、总体设计与实现、测试等三个方面。 一、基础技术简介...
丰富的应用生态系统:Android系统拥有庞大的应用程序生态系统,用户可以从Google Play商店或其他第三方应用市场下载和安装各种各样的应用程序,满足各种需求。 可定制性:Android操作系统可以根据用户的个人喜好进行...
Android系统提供了BroadcastReceiver和PackageManager服务来监控和管理应用的启动行为,开发者可以通过监听ACTION_PACKAGE_ADDED/REMOVED广播,配合其他方法控制应用的启动权限。 4. **软件管理**:该功能通常包含...
总结来说,"Android_Widget开发实例-电量监控"是一个教学示例,它演示了如何利用Android的AppWidget、Service和RemoteViews来创建一个实时更新的电量监控Widget。通过这个例子,开发者可以学习到如何在Android平台上...
1.2 编写目的:旨在研究和实现一个功能完备、用户体验良好的Android音乐播放器,同时也为Android应用程序开发提供实践案例。 **第二章 系统需求分析** 2.1 功能需求: - 基本控制需求:包括播放、暂停、停止、下...
android-studio-ide-191.5977832-windows.exe为Windows用户的安装程序,安装简易,可自定义路径及系统集成。此版本启动与项目加载速度加快,减少等待。 智能编辑器提供精准代码建议,加速编码进程。布局编辑器升级,...
在本项目"基于Android的手机助手app项目设计与实现"中,我们将深入探讨如何构建一个功能丰富的Android应用程序,旨在提供全面的手机管理服务。这个app可能会包含诸如文件管理、应用管理、系统优化、电池管理、内存...
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 ...
- **定义**:允许应用程序安装新的软件包。 - **权限名称**:"android.permission.INSTALL_PACKAGES" - **应用场景**:适用于应用商店类应用或需要自动安装新软件包的场景。 #### 7. INTERNAL_SYSTEM_WINDOW - **...
如果应用程序安装了恶意软件包,将可能会危害用户的隐私和系统安全。 3. android.permission.INTERNET:允许程序打开网络套接字 该权限允许应用程序访问互联网,可能会泄露用户的隐私信息或下载恶意软件。如果应用...
描述中提到,“android上面执行终端的程序,安装就可以使用”,意味着用户可以通过安装这个APK文件(migoolan.terminal.apk)在Android设备上获得一个终端工具,无需额外的配置或权限,安装完成后就能直接运行,执行...
在Android操作系统中,任务管理器是一个至关重要的组件,它负责监控和管理系统的应用程序及进程,确保设备高效、稳定地运行。下面将详细讲解Android任务管理器的工作原理、功能以及如何查看和管理正在运行的任务和...
通过研究Launcher2的源码,开发者不仅可以理解Android桌面的实现原理,还能学习到如何处理复杂的UI交互、数据持久化、服务监控等问题。这将有助于提高Android应用开发的专业技能,尤其对于系统级应用的开发者,更是...