我正在尝试下一个代码。
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的意向值为空,并且应用程序关闭。但如果我在手机上插上/拔下耳机,这个应用程序似乎可以工作,headsetState是有价值的。
我的问题是,为什么这个“意图”一开始是空的,应该有一个值,不是吗?
谢谢你的建议。
发布于 2013-04-12 04:01:20
从documentation中,registerReceiver返回
找到的第一个与筛选器匹配的粘性意图,如果没有,则为null。
因为没有找到粘性意图,所以它返回null。你没有正确地使用它。返回值旨在帮助您捕获在注册接收器之前到达的任何粘性广播,注册的接收器(您没有提供)将在onReceive()中处理未来的事件。
https://stackoverflow.com/questions/15957651
复制相似问题