2012.11.13 15:42

Android 실제 번호와 가짜 번호 구분하기

Android 에서 ... SmsMessage 클래스에 번호를 가져오는 메소드가 두가지가 있어서
실행을 해 봤더니 getOriginatingAddress() 메소드는 실제 송신자 번호를 알려주고 getDisplayOriginatingAddress() 메소드는 표시되는 번호를 알려주네요.

SKT에 겔럭시s(프로요 정펌)에서 잘 되네요.

다른 폰이나 통신사는 어떤지 궁금하네요.

아래 소스 참조용 BR 소스입니다.

public class SMSReceiver extends BroadcastReceiver {
private static final String ACTION_SMS = "android.provider.Telephony.SMS_RECEIVED";

@Override
public void onReceive(Context pCtx, Intent pIntent) {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(pCtx);
if ( prefs.getBoolean("prefEnabled",false) && pIntent.getAction().equals(ACTION_SMS)) {
Object[] pdus = (Object[]) pIntent.getExtras().get("pdus");
SmsMessage msgs[] = new SmsMessage[pdus.length];
for (int i = 0; i <msgs.length; i++) {
msgs[i] = SmsMessage.createFromPdu((byte[]) pdus[i]);
}
SpamKillerDao dao = new SpamKillerDao(pCtx);
SMS sms = new SMS();
SimpleDateFormat dateformat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
for (int i = 0; i <msgs.length; i++) {
sms.body = msgs[i].getMessageBody();
sms.sender_org = msgs[i].getOriginatingAddress();
sms.sender_dis = msgs[i].getDisplayOriginatingAddress();
sms.time = dateformat.format(new Date(msgs[i].getTimestampMillis()));
}
dao.insertBlockedSpam(sms);
}
}
}

[출처] 겔럭시s SMS 표시번호(가짜번호)와 송신번호(진짜번호) 알아내기 딸셋아빠

Trackback 0 Comment 0