1
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 は常に null になります。ヘッドセットが差し込まれていても!!!

4

1 に答える 1

1

Intent Intent.ACTION_HEADSET_PLUG は、ヘッドセットがハンドセットに差し込まれたり引き抜かれたりしたときに、Android システムによって起動されます。

このイベントが発生したときにそれをキャッチするには、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");
于 2012-06-12T20:16:10.773 に答える