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] view plain copy print ?
  1. publicclassHandlePackageActionextendsBroadcastReceiver{
  2. publicvoidonReceive(Contextcontext,Intentintent){
  3. Stringaction=intent.getAction();
  4. if(Intent.ACTION_PACKAGE_ADDED.equals(action))
  5. {
  6. Toast.makeText(context,"有应用被添加",Toast.LENGTH_LONG).show();
  7. }
  8. elseif(Intent.ACTION_PACKAGE_REMOVED.equals(action))
  9. {
  10. Toast.makeText(context,"有应用被删除",Toast.LENGTH_LONG).show();
  11. }
  12. elseif(Intent.ACTION_PACKAGE_CHANGED.equals(action))
  13. {
  14. Toast.makeText(context,"有应用被改变",Toast.LENGTH_LONG).show();
  15. }
  16. elseif(Intent.ACTION_PACKAGE_REPLACED.equals(action))
  17. {
  18. Toast.makeText(context,"有应用被替换",Toast.LENGTH_LONG).show();
  19. }
  20. elseif(Intent.ACTION_PACKAGE_RESTARTED.equals(action))
  21. {
  22. Toast.makeText(context,"有应用被重启",Toast.LENGTH_LONG).show();
  23. }
  24. elseif(Intent.ACTION_PACKAGE_INSTALL.equals(action))
  25. {
  26. Toast.makeText(context,"有应用被安装",Toast.LENGTH_LONG).show();
  27. }
  28. }
  29. }


然后在AndroidManifest.xml中注册HandlePackageAction,内容如下:

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


2)安装、卸载应用程序

[java] view plain copy print ?
  1. Intentintent=newIntent(Intent.ACTION_VIEW);
  2. intent.setDataAndType(Uri.fromFile(newFile("/sdcard/Test.apk")),
  3. "application/vnd.android.package-archive");
  4. startActivity(intent);//安装程序
  5. UripackageURI=Uri.parse("package:com.ygc.Test");
  6. IntentuninstallIntent=newIntent(Intent.ACTION_DELETE,packageURI);
  7. startActivity(uninstallIntent);//正常卸载程序


3)开机启动Activity

首先定义一个Broadcast类——HandleBootComplete,代码如下:

[java] view plain copy print ?
  1. publicclassHandleBootCompleteextendsBroadcastReceiver{
  2. publicvoidonReceive(Contextcontext,Intentintent){
  3. IntentstartActivityIntent=newIntent(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. }


然后在AndroidManifest.xml中注册HandleBootComplete,内容如下:

[html] view plain copy print ?
  1. <!--添加权限-->
  2. <uses-permissionandroid:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
  3. <receiverandroid:name="HandleBootComplete"android:enabled="true">
  4. <intent-filter>
  5. <actionandroid:name="android.intent.action.BOOT_COMPLETED"/>
  6. <categoryandroid:name="android.intent.category.HOME"/>
  7. </intent-filter>

更多相关文章

  1. Appium学习第一个测试脚本
  2. Android实现应用下载并自动安装apk包
  3. 编写android拨打电话apk应用实例代码
  4. android调用邮件应用发送email
  5. android 应用异常可以引起android系统崩溃重启
  6. Android(安卓)如何获取最顶端的Top Activity
  7. android 锁屏
  8. android使用finish()和System.exit()退出应用程序的理解
  9. Android测试框架

随机推荐

  1. android动态申请拍照获取照片权限
  2. 徽章系列1: Top 30 android 开源项目徽章
  3. Android中用Toast.cancel()方法优化toast
  4. Android之-android-support-v4.jar的混淆
  5. Java Android 32位16位 MD5加密
  6. Android 三角标签控件、角标(AvatarLabelV
  7. 配置OpenCV for Android
  8. Android 捕获异常
  9. Android studio 编译异常信息记录
  10. Android判断是否有拍照权限