안드로이드 개발 질문/답변
(글 수 45,052)
노력하고 있는데 자꾸 꺠지네요 ..
인코딩 안하면 영어 문자는 잘 받아지는
여기저기 검색해서 소스 수정을 하는데 ..잘 안돼네요 .ㅠ.
도와주세요 .;;
public void onReceive(final Context context, final Intent intent) {
String msg = null;
Log.v(Constants.LOGTAG, "SmsReceiver onReceive");
if (intent.getAction().equals(SmsReceiver.SMS_REC_ACTION)) {
Log.v(Constants.LOGTAG, "SmsReceiver SMS received");
StringBuilder sb = new StringBuilder();
Bundle bundle = intent.getExtras();
if (bundle != null) {
Object[] pdus = (Object[]) bundle.get("pdus");
for (Object pdu : pdus) {
SmsMessage smsMessage = SmsMessage.createFromPdu((byte[]) pdu);
try {
msg=new String(smsMessage.getUserData(),"KSC5601");
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Log.v("msg",msg);
sb.append("body - " + msg);
}
}
Toast.makeText(context, "SMS RECEIVED - " + sb.toString(), Toast.LENGTH_LONG).show();
}
}
인코딩 안하면 영어 문자는 잘 받아지는
여기저기 검색해서 소스 수정을 하는데 ..잘 안돼네요 .ㅠ.
도와주세요 .;;
public void onReceive(final Context context, final Intent intent) {
String msg = null;
Log.v(Constants.LOGTAG, "SmsReceiver onReceive");
if (intent.getAction().equals(SmsReceiver.SMS_REC_ACTION)) {
Log.v(Constants.LOGTAG, "SmsReceiver SMS received");
StringBuilder sb = new StringBuilder();
Bundle bundle = intent.getExtras();
if (bundle != null) {
Object[] pdus = (Object[]) bundle.get("pdus");
for (Object pdu : pdus) {
SmsMessage smsMessage = SmsMessage.createFromPdu((byte[]) pdu);
try {
msg=new String(smsMessage.getUserData(),"KSC5601");
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Log.v("msg",msg);
sb.append("body - " + msg);
}
}
Toast.makeText(context, "SMS RECEIVED - " + sb.toString(), Toast.LENGTH_LONG).show();
}
}




대신에
msg=smsMessage.getMessageBody()를 써보는건 어때요?
저는 SMS 수신시 smsMessage.getMessageBody() 메소드를 사용하는데,, 안깨지던데요..
따로 인코딩 한 게 없습니다.