Changing ringer profile when receiving sms

丶灬走出姿态 提交于 2019-12-03 20:52:39

I found out a way to solve my problem and that's how :

package com.example.test;

import android.app.PendingIntent;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.telephony.SmsMessage;
import android.widget.Toast;
import android.media.AudioManager;
import android.os.Bundle;

public class RecieveSMS extends BroadcastReceiver 
{   
    public static final String SMS_BUNDLE = "pdus";

    @Override
    public void onReceive(Context context, Intent intent) {

        Bundle intentExtras = intent.getExtras();
            if (intentExtras != null) {
                Object[] sms = (Object[]) intentExtras.get(SMS_BUNDLE);
                for (int i = 0; i < sms.length; ++i) {
                    SmsMessage smsMessage = SmsMessage.createFromPdu((byte[]) sms[i]);

                    String smsBody = smsMessage.getMessageBody().toString();
                    //Edited from here
                    if (smsBody.contains("silent"))
                    {
                    Intent in = new Intent(context, MainActivity.class);
                    PendingIntent pendingIntent = PendingIntent.getActivity(context,
                    12345, in, PendingIntent.FLAG_CANCEL_CURRENT);
                    AudioManager am = (AudioManager)context.getSystemService(Context.AUDIO_SERVICE);
                    am.setRingerMode(AudioManager.RINGER_MODE_SILENT);
                    //To here
                    }

                    Toast.makeText(context, smsBody, Toast.LENGTH_SHORT).show();
                }
            }
    }
}
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!