ヘッドセットプラグを検出するのは、usbが受信機をアクションandroid:name = "android.intent.action.ACTION_HEADSET_PLUG" />に登録する必要があるものを検出するのと同じ簡単な作業であり、受信機はアクティブになります
パブリッククラスPhoneUsbReceiverはBroadcastReceiverを拡張します{
@Override
public void onReceive(Context context, Intent intent) {
Bundle extras = intent.getExtras();
if (intent.getAction().equalsIgnoreCase(
"android.intent.action.UMS_CONNECTED")){
Toast.makeText(context, "Usb-connected..", Toast.LENGTH_SHORT)
.show();
Log.i("Arpit", "USB connected..");
}
if (intent.getAction().equalsIgnoreCase(
"android.intent.action.UMS_DISCONNECTED")) {
Toast.makeText(context, "USB dis-connected..", Toast.LENGTH_SHORT)
.show();
Log.i("Arpit", "USB dis-connected..");
}
if (intent.getAction().equalsIgnoreCase(
"android.intent.action.ACTION_HEADSET_PLUG")) {
Toast.makeText(context, "HEADSET_PLUG-connected..",
Toast.LENGTH_SHORT).show();
Log.i("Arpit", "HEADSET_PLUG-connected..");
}
if (intent.getIntExtra("state", 0) == 0) {
Toast.makeText(context, "HEADSET_PLUG-connected..",
Toast.LENGTH_SHORT).show();
Log.i("Arpit", "HEADSET_PLUG-connected..");
} else if (intent.getIntExtra("state", 0) == 1) {
Toast.makeText(context, "HEADSET_PLUG-dis-connected..",
Toast.LENGTH_SHORT).show();
Log.i("Arpit", "HEADSET_PLUG-dis-connected..");
}
}
}
次に、マニフェストでレシーバーを宣言します。
<receiver android:name=".PhoneUsbReceiver" >
<intent-filter >
<action android:name="android.intent.action.UMS_CONNECTED" />
<action android:name="android.intent.action.UMS_DISCONNECTED" />
<action android:name="android.intent.action.ACTION_HEADSET_PLUG" />
</intent-filter>
</receiver>