posts - 93,  comments - 2,  trackbacks - 0
              在android系統中,安裝和卸載都會發送廣播,當應用安裝完成后系統會發android.intent.action.PACKAGE_ADDED廣播。可以通過intent.getDataString()獲得所安裝的包名。當卸載程序時系統發android.intent.action.PACKAGE_REMOVED廣播。同樣intent.getDataString()獲得所卸載的包名。
          第一、 新建監聽類:BootReceiver繼承BroadcastReceiver
              
          public class BootReceiver extends BroadcastReceiver {    
             
              @Override   
              
          public void onReceive(Context context, Intent intent) {    
                  
          //接收廣播:系統啟動完成后運行程序    
                  if (intent.getAction().equals("android.intent.action.BOOT_COMPLETED")) {    
                       Intent newIntent 
          = new Intent(context, WatchInstall.class);    
                       newIntent.setAction(
          "android.intent.action.MAIN");       
                       newIntent.addCategory(
          "android.intent.category.LAUNCHER");     
                       newIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);       
                       context.startActivity(newIntent);    
                  }
              
                  
          //接收廣播:設備上新安裝了一個應用程序包后自動啟動新安裝應用程序。    
                  if (intent.getAction().equals("android.intent.action.PACKAGE_ADDED")) {    
                      String packageName 
          = intent.getDataString().substring(8);    
                      System.out.println(
          "---------------" + packageName);    
                      Intent newIntent 
          = new Intent();    
                      newIntent.setClassName(packageName,packageName
          + .MainActivity");    
                      newIntent.setAction("android.intent.action.MAIN");             
                      newIntent.addCategory(
          "android.intent.category.LAUNCHER");             
                      newIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);    
                      context.startActivity(newIntent);    
                  }
              
                  
          //接收廣播:設備上刪除了一個應用程序包。    
                  if (intent.getAction().equals("android.intent.action.PACKAGE_REMOVED")) {    
                      System.out.println(
          "********************************");    
                      DatabaseHelper dbhelper 
          = new DatabaseHelper();    
                      dbhelper.executeSql(
          "delete from users");    
                  }
              
              }
             

          第二、 修改AndroidManifest.xml配置文件 
          <?xml version="1.0" encoding="UTF-8"?>  
          <manifest xmlns:android="     package="org.me.watchinstall">  
              <application>  
                  <receiver android:name=".BootReceiver"  
                            android:label="@string/app_name">  
                      <intent-filter>  
                          <action android:name="android.intent.action.BOOT_COMPLETED"/>  
                          <category android:name="android.intent.category.LAUNCHER" />  
                      </intent-filter>  
                      <intent-filter>  
                       <action android:name="android.intent.action.PACKAGE_ADDED" />  
                       <action android:name="android.intent.action.PACKAGE_REMOVED" />  
                        <data android:scheme="package" />  
          <!--[color=red] 注意!! 這句必須要加,否則接收不到BroadCast  [/color] -->
                      </intent-filter>  
                  </receiver>  
                  <activity android:name=".WatchInstall" android:label="WatchInstall">  
                      <intent-filter>  
                          <action android:name="android.intent.action.MAIN"/>  
                          <category android:name="android.intent.category.LAUNCHER"/>  
                      </intent-filter>  
                  </activity>  
              </application>  
              <uses-permission android:name="android.permission.INTERNET" />  
              <uses-permission android:name="android.permission.RESTART_PACKAGES"/>  
              <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>  
          </manifest>
          <2014年2月>
          2627282930311
          2345678
          9101112131415
          16171819202122
          2324252627281
          2345678

          常用鏈接

          留言簿(2)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          相冊

          收藏夾

          Java

          搜索

          •  

          最新隨筆

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 桑植县| 宁陕县| 大余县| 旬阳县| 霍山县| 麦盖提县| 崇左市| 太湖县| 措勤县| 司法| 来凤县| 视频| 岳阳市| 温泉县| 建湖县| 公主岭市| 富平县| 新宾| 河北省| 巧家县| 垫江县| 渭源县| 新兴县| 连平县| 海城市| 科尔| 得荣县| 公主岭市| 黔东| 福鼎市| 洪洞县| 涟源市| 和顺县| 荥经县| 和平区| 泰和县| 邵阳市| 潼关县| 深州市| 延寿县| 大安市|