FC尝试ACTION_HEADSET_PLUG的意图时

时间:2013-04-11 19:52:28

标签: android android-intent intentfilter

我正在尝试下一个代码。

IntentFilter filter = new IntentFilter(Intent.ACTION_HEADSET_PLUG);
Intent headsetState = MainActivity.this.registerReceiver(null, filter);
int state = headsetState.getIntExtra("state", -1);
String name = headsetState.getStringExtra("name");

我的问题是,当手机刚刚启动时尝试该方法时,headsetState的Intent值为NULL,应用程序关闭。但是,如果我已将耳机插入/拔出手机,该应用程序似乎正常工作,则耳机状态具有值。

我的问题是为什么这个“Intent”最初是NULL,应该有一个值,没有?

感谢您的建议。

1 个答案:

答案 0 :(得分:0)

documentationregisterReceiver返回

“找到匹配过滤器的第一个粘性意图,如果没有,则返回null。”

由于未找到粘性意图,因此返回null。你没有正确使用它。返回值旨在帮助您捕获在注册接收器之前到达的任何粘性广播,并且注册的接收者(您未提供)将处理onReceive()中的未来事件。