android耳机插拔事件

来源:互联网 发布:昆明通用水务网络缴费 编辑:程序博客网 时间:2024/04/29 13:47

        耳机插拔事件的例子网上几乎泛滥了,基本都是说在manifest里面注册广播无法接收到插拔事件广播,必须在java代码中注册广播。

       是否在manifest中注册不是本文的重点,重点是,我按照网上的做法没一次是成功的。先分享代码如下:

       

public class EarPhoneDemoActivity extends Activity {    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);                IntentFilter filter = new IntentFilter();        filter.addAction(Intent.ACTION_HEADSET_PLUG);        registerReceiver(receiver, filter);    }        private BroadcastReceiver receiver = new BroadcastReceiver() {@Overridepublic void onReceive(Context context, Intent intent) {             System.out.println("state:::"+intent.getIntExtra("state", 0));                 if(intent.getIntExtra("state", 0) == 2){                  System.out.println("in.........");                 }else if(intent.getIntExtra("state", 0) == 0){                 System.out.println("out.........");                 }  }};}

      网上的所有例子,包括android api,都是说明:0的时候耳机未挂载,1的时候耳机挂载。

     我的手机是htc g14的,打印System.out.println("state:::"+intent.getIntExtra("state", 0));结果为:

     0  手机未挂载,2  手机挂载。

     因此觉得很奇怪,有待更多朋友进行认证。