博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
android Intent类
阅读量:6908 次
发布时间:2019-06-27

本文共 5570 字,大约阅读时间需要 18 分钟。

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,代码如下:

[java]
  1. public class HandlePackageAction extends BroadcastReceiver {  
  2.   
  3.     public void onReceive(Context context, Intent intent) {  
  4.         String action = intent.getAction();  
  5.         if (Intent.ACTION_PACKAGE_ADDED.equals(action))   
  6.         {  
  7.             Toast.makeText(context, "有应用被添加", Toast.LENGTH_LONG).show();  
  8.         }   
  9.         else if (Intent.ACTION_PACKAGE_REMOVED.equals(action))  
  10.         {  
  11.             Toast.makeText(context, "有应用被删除", Toast.LENGTH_LONG).show();  
  12.         }  
  13.         else if (Intent.ACTION_PACKAGE_CHANGED.equals(action))   
  14.         {  
  15.             Toast.makeText(context, "有应用被改变", Toast.LENGTH_LONG).show();  
  16.         }  
  17.         else if (Intent.ACTION_PACKAGE_REPLACED.equals(action))  
  18.         {  
  19.             Toast.makeText(context, "有应用被替换", Toast.LENGTH_LONG).show();  
  20.         }  
  21.         else if (Intent.ACTION_PACKAGE_RESTARTED.equals(action))  
  22.         {  
  23.             Toast.makeText(context, "有应用被重启", Toast.LENGTH_LONG).show();  
  24.         }   
  25.         else if (Intent.ACTION_PACKAGE_INSTALL.equals(action))   
  26.         {  
  27.             Toast.makeText(context, "有应用被安装", Toast.LENGTH_LONG).show();  
  28.         }  
  29.     }  
  30.   
  31. }  

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,内容如下:

 

[html]
  1. <receiver android:name=".HandlePackageAction"  
  2.     android:enabled="true">  
  3.     <intent-filter>  
  4.         <action android:name="android.intent.action.PACKAGE_ADDED"></action>  
  5.         <action android:name="android.intent.action.PACKAGE_CHANGED"></action>  
  6.         <action android:name="android.intent.action.PACKAGE_REMOVED"></action>  
  7.         <action android:name="android.intent.action.PACKAGE_REPLACED"></action>  
  8.         <action android:name="android.intent.action.PACKAGE_RESTARTED"></action>  
  9.         <action android:name="android.intent.action.PACKAGE_INSTALL"></action>  
  10.         <data android:scheme="package"></data>  
  11.     </intent-filter>  
  12. </receiver>  

<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)安装、卸载应用程序

[java]
  1. Intent intent = new Intent(Intent.ACTION_VIEW);  
  2. intent.setDataAndType(Uri.fromFile(new File("/sdcard/Test.apk")),  
  3.         "application/vnd.android.package-archive");  
  4. startActivity(intent); // 安装 程序   
  5.   
  6. Uri packageURI = Uri.parse("package:com.ygc.Test");  
  7. Intent uninstallIntent = new Intent(Intent.ACTION_DELETE, packageURI);  
  8. startActivity(uninstallIntent);// 正常卸载程序  

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,代码如下:

[java]
  1. public class HandleBootComplete extends BroadcastReceiver {  
  2.     public void onReceive(Context context, Intent intent) {  
  3.         Intent startActivityIntent = new Intent(context, DrawText.class);  
  4.         startActivityIntent.setAction(Intent.ACTION_MAIN);  
  5.         startActivityIntent.addCategory(Intent.CATEGORY_LAUNCHER);  
  6.         startActivityIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);  
  7.         context.startActivity(startActivityIntent);  
  8.     }  
  9. }  

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,内容如下:

 

[html]
  1. <!-- 添加权限 -->  
  2. <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />  
  3.   
  4.   
  5.     <receiver android:name="HandleBootComplete" android:enabled="true">  
  6.         <intent-filter>  
  7.             <action android:name="android.intent.action.BOOT_COMPLETED" />  
  8.             <category android:name="android.intent.category.HOME" />  
  9.         </intent-filter>  
  10.     </receiver>  

<!-- 添加权限 --> <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> </receiver>

 

转载地址:http://dlgdl.baihongyu.com/

你可能感兴趣的文章
nginx负载均衡的理解与实际应用
查看>>
CSS Overflow属性详解
查看>>
mariadb与MYSQL的部分功能比较
查看>>
mail发送邮件QQ邮箱设置
查看>>
C++ Internals: STL之Map
查看>>
JQuery中$.ajax()方法参数详解(转载)
查看>>
汇编程序:按键松开时中断的处理
查看>>
统计一个网段以及相应区段存活和宕机的ip
查看>>
Mysql 通过全量备份和binlog恢复整体数据
查看>>
Bulma - 基于 Flexbox 的现代化的 CSS 框架
查看>>
单点登录
查看>>
jQuery Template 简单使用
查看>>
Internet路由之路由表查找算法概述-哈希/LC-Trie树/256-way-mtrie树
查看>>
Centos网络管理(四)-路由转发与静态路由
查看>>
SHA加密算法工具类
查看>>
企业数据囤积是小事?Veritas的《数据囤积报告》告诉你千万别小看这些风险
查看>>
python链接mysql常见问题汇总
查看>>
UDP"打洞"原理
查看>>
cannot restore segment prot after reloc: Permission denied
查看>>
Cisco设备初始基本操作流程
查看>>