zoukankan      html  css  js  c++  java
  • android Intent类

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

    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. }  


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

    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>  


     2)安装、卸载应用程序

    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);// 正常卸载程序  


     

     3)开机启动Activity

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

    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. }  


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

    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>  

  • 相关阅读:
    利用SCI做的一个足球答题系统
    《Play for Java》学习笔记(四)Controller
    《Learning Play! Framework 2》学习笔记——案例研究1(Templating System)
    《Play for Java》学习笔记(三)template+Message
    CSS垂直居中对齐
    Metro UI(Win 8风格)页面设计小记
    Play Framework介绍:主要概念(转)
    《Play for Java》学习笔记(二)基本的CRUD应用
    《Play for Java》学习笔记(一)项目框架
    复杂产品的响应式设计【流程篇】 (转)
  • 原文地址:https://www.cnblogs.com/qingblog/p/2574268.html
Copyright © 2011-2022 走看看