Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Receiver
- class ReceiveSMS : BroadcastReceiver() {
- val TAG = "ReceiveSMS"
- private var bundle: Bundle? = null
- private var currentSMS: SmsMessage? = null
- private var message: String? = null
- override fun onReceive(context: Context?, intent: Intent?) {
- if (intent!!.action!!.equals("android.provider.Telephony.SMS_RECEIVED")) {
- bundle = intent.extras
- if (bundle != null) {
- val pduObjects = bundle!!.get("pdus") as Array<*>
- for (aObject in pduObjects) {
- currentSMS = getIncomingMessage(aObject!!, bundle!!)
- val senderNo: String = currentSMS!!.displayOriginatingAddress
- message = currentSMS!!.displayMessageBody
- Toast.makeText(context, "senderNum: $senderNo :\n message: $message", Toast.LENGTH_LONG).show()
- }
- abortBroadcast()
- }
- }
- }
- private fun getIncomingMessage(aObject: Any, bundle: Bundle): SmsMessage? {
- val currentSMS: SmsMessage
- currentSMS = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
- val format = bundle.getString("format")
- SmsMessage.createFromPdu(aObject as ByteArray, format)
- } else {
- SmsMessage.createFromPdu(aObject as ByteArray)
- }
- return currentSMS
- }
- /* fun checkCode(msgFrom: String, msgBody: String) {
- }*/
- }
- //Activity отрывки
- fun replaceFragment(tag: String, fragment: Fragment) {
- val intentFilter = IntentFilter("android.provider.Telephony.SMS_RECEIVED")
- registerReceiver(receiveSMS, intentFilter)
- fragmentManager.beginTransaction()
- .replace(R.id.fragment_container, fragment, tag).commit()
- }
- override fun onDestroy() {
- super.onDestroy()
- try {
- unregisterReceiver(receiveSMS)
- } catch(exc: IllegalArgumentException) {
- Log.i(TAG, "Receiver not registered.")
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement