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

[java]  view plain copy print ?
  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,内容如下:

 

[html]  view plain copy print ?
  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)安装、卸载应用程序

[java]  view plain copy print ?
  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,代码如下:

[java]  view plain copy print ?
  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,内容如下:

 

[html]  view plain copy print ?
  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>  

你可能感兴趣的:(android intent)