반응형
Broadcast Receiver를 이용한 SMS 수신
Broadcast Receiver(방송수신자)란? 안드로이드 시스템에서는 전화가 오거나 문자메시지가 오는 등 특정 상황에서 방송을 내보낸다. 이런 시스템에서 방송을 해주는 이벤트들을 Global Event라고 하며,
ju-hy.tistory.com
권한 추가
<uses-permission android:name="android.permission.RECEIVE_SMS" />
SMS_RECEIVED BroadcastReceiver 등록
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction("android.provider.Telephony.SMS_RECEIVED");
registerReceiver(smsReceiver, intentFilter);
.
.
.
private SmsMessage[] parseSmsMessage(Bundle bundle){
Object[] objs = (Object[]) bundle.get("pdus");
SmsMessage[] messages = new SmsMessage[objs.length];
for(int i=0; i<objs.length; i++) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
String format = bundle.getString("format");
messages[i] = SmsMessage.createFromPdu((byte[]) objs[i], format);
} else {
messages[i] = SmsMessage.createFromPdu((byte[]) objs[i]);
}
}
return messages;
}
private BroadcastReceiver smsReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals("android.provider.Telephony.SMS_RECEIVED")) {
Bundle bundle = intent.getExtras();
SmsMessage[] messages = parseSmsMessage(bundle);
if (messages.length > 0) {
String contents = messages[0].getMessageBody().toString();
//
Log.d(TAG, contents);
}
}
}
};
반응형
'IT > Android' 카테고리의 다른 글
Android] Postman에서 Fcm 푸쉬 보내기 (0) | 2023.03.16 |
---|---|
Android] Sms 자동입력 Java 버전 (0) | 2023.03.08 |
Android] 안드로이드 웹뷰 디버깅하는 법 (0) | 2022.12.28 |
Android Firebase] fetchAndActivate (0) | 2022.11.21 |
Android] 앱 삭제해도 데이터 남아있다면,, allowBackup, fullBackupContent (0) | 2022.09.05 |
댓글