본문으로 바로가기

[Kotlin] Google SMS Retriever 구현

category 개발삽질방/Android 2020. 1. 4. 15:31
반응형
class SmsReceiver: BroadcastReceiver() {

    override fun onReceive(context: Context?, intent: Intent?) {
        if(intent?.action == SmsRetriever.SMS_RETRIEVED_ACTION){
            val extras = intent.extras
            val status = extras?.get(SmsRetriever.EXTRA_STATUS)

            when(status) {
                CommonStatusCodes.SUCCESS -> {
                    var msg = extras.get(SmsRetriever.EXTRA_SMS_MESSAGE) as String
                    val pattern = Pattern.compile("\\d{6}")
                    val matcher = pattern.matcher(msg)

                    matcher.find()
                    try{
                        msg = matcher.group(0)

                        if(context?.packageName != null && context.packageName == "DepthActivity"){
                            context.sendBroadcast(Intent("SMS_CODE").apply { putExtra("SMS_CODE",msg) })
                        }

                    }catch (e: Exception){

                    }
                }
                
                CommonStatusCodes.TIMEOUT -> {
                	//시간 초과 처리
                }
            }

        }
    }
}
반응형