注册广播

动态注册:

detectionSDkBroadcastReceiver = new DetectionSDkBroadcastReceiver();

IntentFilter intentFilter = new IntentFilter();

intentFilter.addAction(Intent.ACTION_MEDIA_MOUNTED);

intentFilter.addAction(Intent.ACTION_MEDIA_EJECT);

intentFilter.addDataScheme("file");//检测sd卡的时候必须加上

this.registerReceiver(detectionSDkBroadcastReceiver,intentFilter);

这里的Action 并不用在xml中注册

静态注册,androidmanifest.xml文件中设置

 <receiver android:name = ".SdkBroadcastReceiver">

     <intent-filter android:priority = "1000">

    

     

    <action android:name = "android.intent.action.MEDIA_EJECT"></action>

  

      <action android:name = "android.intent.action.MEDIA_MOUNTED"></action>

   

 

      <data android:scheme = "file"></data>

     </intent-filter>

     </receiver>

代码:建立一个接受类继承BroadcastReceiver

覆盖onReceive方法

public void onReceive(Context context, Intent intent) {

if(intent.getAction().equals("android.intent.action.MEDIA_EJECT"))

}

else if(intent.getAction().equals("android.intent.action.MEDIA_MOUNTED")){

 Toast.makeText(context,"MEDIA_MOUNTED", Toast.LENGTH_LONG).show();  

}

在广播中跳转到一个activity

Intent newIntent = new Intent();

    newIntent.setClass(context, SDkActivity.class);

newIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);//在广播中进行跳转到一个activity或者service是都必须加这一句

context.startActivity(newIntent);

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