Intent.ACTION_HEADSET_PLUG返回null

时间:2012-05-10 10:45:52

标签: android android-intent

public PluginResult execute(String action, JSONArray args, String callbackId) {         
  try {
    Intent intent = new Intent(Intent.ACTION_HEADSET_PLUG);
    String nm = intent.getStringExtra("name");
    String st1 = intent.getStringExtra("state");
    Log.v("nikhil","i="+intent+" name="+nm+" 2="+st1);

    return new PluginResult(PluginResult.Status.OK);

  } catch(Exception e) {            

    Log.e("MailApp", "Could not send email", e); 
  }
  return null; 
}

nm和st1始终为空。 即使插入耳机!!!

1 个答案:

答案 0 :(得分:1)

当耳机插入或拔出手机时,Android系统会触发Intent Intent.ACTION_HEADSET_PLUG。

您需要实现BroadcastReceiver才能捕获此事件。 这是一个棘手的事件,因此您可以使用以下快捷方式:

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