안드로이드 개발 질문/답변
(글 수 45,052)
현재 전체화면을 사용하는 게임을 제작중입니다.
전체화면 만들기는 회색님의 강좌 참고해서 넣었구요.
콜수신 테스트시에는 문제가 안되는데 SMS 수신시에는 화면상에 전혀 표시가 안되서 난감하군요;
보통 SMS를 수신하면 화면 상단 인디케이터 영역에 SMS 수신 관련 메세지가 잠깐 뜨고 사라지던데
풀화면으로 어플을 구동하고 있으면 SMS를 수신해도 전혀 화면에 변화가 없습니다.
따로 SMS 수신관련 이벤트가 있다면 그순간에만 화면을 원복하면 될 것 같은데
콜수신과 다르게 따로 onPause나 기타 메소드를 타는것 같지도 않고
SMS 수신 시 따로 발생하는 이벤트가 있는지 궁금합니다.
전체화면 만들기는 회색님의 강좌 참고해서 넣었구요.
//윈도우 상단 status bar 삭제 getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); //윈도우 상단 타이틀바 삭제 requestWindowFeature(Window.FEATURE_NO_TITLE);
콜수신 테스트시에는 문제가 안되는데 SMS 수신시에는 화면상에 전혀 표시가 안되서 난감하군요;
보통 SMS를 수신하면 화면 상단 인디케이터 영역에 SMS 수신 관련 메세지가 잠깐 뜨고 사라지던데
풀화면으로 어플을 구동하고 있으면 SMS를 수신해도 전혀 화면에 변화가 없습니다.
따로 SMS 수신관련 이벤트가 있다면 그순간에만 화면을 원복하면 될 것 같은데
콜수신과 다르게 따로 onPause나 기타 메소드를 타는것 같지도 않고
SMS 수신 시 따로 발생하는 이벤트가 있는지 궁금합니다.
그리고, 다음과 같이 코드를 작성하시면 intent 수신에 대한 처리를 할 수 있습니다.
public
void
onReceiveIntent(Context context, Intent intent) {
19
if
(intent.getAction().equals(ACTION)) {
20
StringBuilder buf =
new
StringBuilder();
21
Bundle bundle = intent.getExtras();
22
if
(bundle !=
null
) {
23
SmsMessage[] messages = Telephony.Sms.Intents.getMessagesFromIntent(intent);
24
for
(
int
i =
0
; i < messages.length; i++) {
25
SmsMessage message = messages[i];
26
buf.append(
"Received SMS from "
);
27
buf.append(message.getDisplayOriginatingAddress());
28
buf.append(
" - "
);
29
buf.append(message.getDisplayMessageBody());
30
}
31
}
32
Log.i(LOG_TAG,
"[SMSApp] onReceiveIntent: "
+ buf);
33
NotificationManager nm = (NotificationManager) context.getSystemService(
34
Context.NOTIFICATION_SERVICE);
35
36
nm.notifyWithText(
123
, buf.toString(),
37
NotificationManager.LENGTH_LONG,
null
);
38
39
}
40
}