반응형

[Snippet]
 "외부 전원 연결(끊김)" 감지하기

private final BroadcastReceiver mPowerConnectionReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
if (Intent.ACTION_POWER_CONNECTED.equals(intent.getAction())) {
//전원 연결시 처리
} else if (Intent.ACTION_POWER_DISCONNECTED.equals(intent.getAction())) {
//전원 끊김시 처리

}
};
protected void onResume() {

... 

 

IntentFilter filter = new IntentFilter();
filter.addAction(Intent.ACTION_POWER_CONNECTED);
filter.addAction(Intent.ACTION_POWER_DISCONNECTED);

registerReceiver(mPowerConnectionReceiver, filter);
}

protected void onPause() {

...

 

unregisterReceiver(mPowerConnectionReceiver);

}

 

 

 "헤드셋 연결(끊김)" 감지하기

private final BroadcastReceiver mHeadsetConnectionReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
if (Intent.ACTION_HEADSET_PLUG.equals(intent.getAction())) {
switch(intent.getIntExtra("state", 0)) {
case 0:
//헤드셋 연결시 처리
break;
case 1:
//헤드셋 끊김시 처리
break;
default:
break;
}
}
}
};

protected void onResume() {
...

 

IntentFilter filter = new IntentFilter(Intent.ACTION_HEADSET_PLUG);
registerReceiver(mHeadsetConnectionReceiver, filter);
}

protected void onPause() {

...

 

unregisterReceiver(mHeadsetConnectionReceiver);

}

 

 

 

[Sample]

 외부 전원 / 헤드셋 연결(끊김) 감지시 토스트 메시지 표시하기

public class MainActivity extends AppCompatActivity {
private final BroadcastReceiver mConnectionReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
if (Intent.ACTION_POWER_CONNECTED.equals(intent.getAction())) {
Toast.makeText(context, "AC Power connected.", Toast.LENGTH_LONG).show();
} else if (Intent.ACTION_POWER_DISCONNECTED.equals(intent.getAction())) {
Toast.makeText(context, "AC Power disconnected.", Toast.LENGTH_LONG).show();
} else if (Intent.ACTION_HEADSET_PLUG.equals(intent.getAction())) {
Toast.makeText(context, "Headset " + ((intent.getIntExtra("state", 0) == 1) ? "connect" : "disconnect") + " detected.",
Toast.LENGTH_LONG).show();
}
}
};

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}

@Override
protected void onResume() {
super.onResume();

IntentFilter filter = new IntentFilter();
filter.addAction(Intent.ACTION_POWER_CONNECTED);
filter.addAction(Intent.ACTION_POWER_DISCONNECTED);
filter.addAction(Intent.ACTION_HEADSET_PLUG);
registerReceiver(mConnectionReceiver, filter);
}

@Override
protected void onPause() {
unregisterReceiver(mConnectionReceiver);
super.onPause();
}
}

프로젝트 화일

ConnectionDetectTest.zip

 

[실행결과]

 

 

 

+ Recent posts