1)利用Inent监听应用程序的安装、替换、删除等
与包相关的Intent:
Intent.ACTION_PACKAGE_INSTALL
Intent.ACTION_PACKAGE_ADDED
Intent.ACTION_PACKAGE_REPLACED
Intent.ACTION_PACKAGE_REMOVED
Intent.ACTION_PACKAGE_CHANGED
Intent.ACTION_PACKAGE_RESTARTED
Intent.ACTION_PACKAGE_DATA_CLEARED
首先定义一个Broadcast类——HandlePackageAction,代码如下:
- public class HandlePackageAction extends BroadcastReceiver {
- public void onReceive(Context context, Intent intent) {
- String action = intent.getAction();
- if (Intent.ACTION_PACKAGE_ADDED.equals(action))
- {
- Toast.makeText(context, "有应用被添加", Toast.LENGTH_LONG).show();
- }
- else if (Intent.ACTION_PACKAGE_REMOVED.equals(action))
- {
- Toast.makeText(context, "有应用被删除", Toast.LENGTH_LONG).show();
- }
- else if (Intent.ACTION_PACKAGE_CHANGED.equals(action))
- {
- Toast.makeText(context, "有应用被改变", Toast.LENGTH_LONG).show();
- }
- else if (Intent.ACTION_PACKAGE_REPLACED.equals(action))
- {
- Toast.makeText(context, "有应用被替换", Toast.LENGTH_LONG).show();
- }
- else if (Intent.ACTION_PACKAGE_RESTARTED.equals(action))
- {
- Toast.makeText(context, "有应用被重启", Toast.LENGTH_LONG).show();
- }
- else if (Intent.ACTION_PACKAGE_INSTALL.equals(action))
- {
- Toast.makeText(context, "有应用被安装", Toast.LENGTH_LONG).show();
- }
- }
- }
然后在AndroidManifest.xml中注册HandlePackageAction,内容如下:
- <receiver android:name=".HandlePackageAction"
- 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>
2)安装、卸载应用程序
- Intent intent = new Intent(Intent.ACTION_VIEW);
- intent.setDataAndType(Uri.fromFile(new File("/sdcard/Test.apk")),
- "application/vnd.android.package-archive");
- startActivity(intent); // 安装 程序
- Uri packageURI = Uri.parse("package:com.ygc.Test");
- Intent uninstallIntent = new Intent(Intent.ACTION_DELETE, packageURI);
- startActivity(uninstallIntent);// 正常卸载程序
3)开机启动Activity
首先定义一个Broadcast类——HandleBootComplete,代码如下:
- public class HandleBootComplete extends BroadcastReceiver {
- public void onReceive(Context context, Intent intent) {
- Intent startActivityIntent = new Intent(context, DrawText.class);
- startActivityIntent.setAction(Intent.ACTION_MAIN);
- startActivityIntent.addCategory(Intent.CATEGORY_LAUNCHER);
- startActivityIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
- context.startActivity(startActivityIntent);
- }
- }
然后在AndroidManifest.xml中注册HandleBootComplete,内容如下:
- <!-- 添加权限 -->
- <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
- <receiver android:name="HandleBootComplete" android:enabled="true">
- <intent-filter>
- <action android:name="android.intent.action.BOOT_COMPLETED" />
- <category android:name="android.intent.category.HOME" />
- </intent-filter>
相关推荐
android Intent例子源码android Intent例子源码android Intent例子源码android Intent例子源码android Intent例子源码android Intent例子源码
在sendBroadcast,startActivity时,我们会用到Intent。 Intent可以携带一些数据,比如基本类型数据int、Boolean,或是String,或是序列化对象,Parcelable与Serializable。 Intent传递数据时,如果数据太大,可能...
Intent跳转工具类 1.用单例模式打开一个Activity并关闭当前页面,可携带数据 2.用Result的方式跳转到指定页面,不携带数据 3.跳转至主页,并附带动画 4.跳转到发送短信界面 5.跳转到拨号界面
android activityIntent 传值 传对象
android intent 介绍
android Intent传递对象数据 通过对象分别实现Serializable Parcelable接口的两种方法
android intent 生命周期详解和源码
Android Intent多种传值方式 https://blog.csdn.net/qq_31939617/article/details/80742103
Intent在Android应用开发中,占有很大的分量,关于Intent在Android中的作用在网络上已经有很多资料了,这里不再累赘,本人喜欢直来直去。在网上看到很多关于Intent的资料,说那么多,你也许还是一头雾水,到底如何...
android intent service 实例android intent service 实例android intent service 实例
经典的android intent 窗口切换 窗口打开,A窗口打开B窜
通过一个实验,讲解Android的使用方法,总结详细
主要是intent的内部工作 原理介绍,包含详细的流程图;
intent 传递对象,主要是通过intent传递自定义对象
Android Activity界面跳转Intent传递泛型类
Android编程之Intent_TabHost源码演示,自定义的Tabhost(内含源码),学习制作Android软件的TAB标签界面,在电脑上已经很流行的功能,Android手机上当然不能少,这个TabHost源码相对简单些,是JAVA转学Android比较...
android用于打开各种文件的intent
Android Intent 学习笔记
Intents and Intent Filters 三种应用程序基本组件——activity, ... 在上述三种情况下, android系统会自己找到合适的activity, service, 或者 broadcast receivers来响应intent. 三者的intent相互独立互不干扰.
AndroDialysis: Analysis of Android Intent Effectiveness in Malware Detection