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始终为空。 即使插入耳机!!!
答案 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");