[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();
}
}
프로젝트 화일
[실행결과]
'Android Dev > Snippets & Samples' 카테고리의 다른 글
Play 스토어 크롤링 - 앱 정보(이름, 버전) 가져오기 (0) | 2020.03.31 |
---|---|
화면 밝기 변경 (Change screen brightness) (0) | 2019.02.10 |
일정 시간 후에 실행하기 (백키 두 번 눌러 종료, 일정 시간 후 종료 예제) (0) | 2019.01.24 |
앱 진입시 스크린 리더(TalkBack, Voice Assistant) 감지하기 (0) | 2018.12.15 |
애플리케이션 정보 (Application info.) 보기로 이동 (0) | 2018.11.02 |