在android frameworks裏新增廣播接受的注意事項

調用註冊廣播:

 private IntentFilter intentFilter ;
 private receiveBroadcastReceiver mreceiveDialogBroadcastReceiver;


 IntentFilter intentFilter = new IntentFilter();
 intentFilter.addAction("com.receiveotamessage.broadcast");
 mreceiveDialogBroadcastReceiver = new receiveBroadcastReceiver();
 mContext.registerReceiver(mreceiveDialogBroadcastReceiver,intentFilter);

 

另一個Class開啓後將數據通過廣播的方式回傳給上一個Class:

 

Intent closeintent = new Intent();
closeintent.setAction("com.receiveotamessage.broadcast");	
if(isNeedUpdate) {
         readUpdateZipFile(updateFilePath);
         closeintent.putExtra("checkresult", "true");	
         closeintent.putExtra("updatepath",updateFilePath);	
         closeintent.putExtra("offset", offset);	
         closeintent.putExtra("size", size);
         closeintent.putExtra("header", headerKeyValuePairs);
         if(maxExternalTimesTamp>maxInternalTimesTamp) {
               closeintent.putExtra("imagetimestamp", String.valueOf(maxExternalTimesTamp));
          }else{	
               closeintent.putExtra("imagetimestamp", String.valueOf(maxInternalTimesTamp))
;	
          }	
}else{
          closeintent.putExtra("checkresult", "false");
}
closeintent.putExtra("currentversion",currentVersion);
closeintent.putExtra("systemversion",osVersion);
sendBroadcast(closeintent);

 

 

接受廣播:

 public class receiveBroadcastReceiver extends BroadcastReceiver {
        @Override
        public void onReceive(Context context, Intent intent) {
            checkZipFileResult = intent.getStringExtra("checkresult");	
            currentVersion = intent.getStringExtra("currentversion");
            osVersion = intent.getStringExtra("systemversion");
            if(checkZipFileResult.equals("true")) {
                try {
                    imageTimesTamp = intent.getStringExtra("imagetimestamp");
                    offset = Long.parseLong(intent.getStringExtra("offset"));
                    size =  Long.parseLong(intent.getStringExtra("size"));
                    updatePath = intent.getStringExtra("updatepath");
                    headerKeyValuePairs = intent.getStringArrayExtra("header");
                    mWindowManagerFuncs.systemUpdate(currentVersion, osVersion);
                }catch (Exception e){
                    e.printStackTrace();
                }
            }else{	
                mWindowManagerFuncs.showReadFileFailPromptDialog();
            }	
        }
    }	

 

 

需要在/frameworks/base/core/res/AndroidManifest.xml 新增:

<protected-broadcast android:name="com.receiveotamessage.broadcast"></protected-broadcast>

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章