Я новичок в программировании Android, и у меня возникла проблема с получением службы приема SMS для воспроизведения аудиофайла, относящегося к входящему текстовому сообщению. У меня есть рабочий пример такого рода работ, но я не могу остановитьсямузыкальный файл из воспроизведения, и не выберите другой файл для воспроизведения поверх перекрывающего аудио.Поэтому мне кажется, что мне нужно, чтобы служба приема SMS-сообщений вызывала службу медиаплеера, но не знаю как.Также мне нужно было бы остановить музыку с непревзойденным текстовым сообщением.Любая помощь будет отличной.Это то, что у меня есть, что работает с аудио-сервисом.
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.telephony.SmsMessage;
public class SMSreceiver extends BroadcastReceiver {
MediaPlayer mp1;
@Override
public void onReceive(Context ctx, Intent intent)
{
Bundle bundle = intent.getExtras();
//mp1 = MediaPlayer.create(ctx, R.raw.jingle);
if(null != bundle)
{
Object[] pdus = (Object[]) bundle.get("pdus");
SmsMessage[] messages = new SmsMessage[pdus.length];
for (int i = 0; i < messages.length; i++)
{
messages[i] = SmsMessage.createFromPdu((byte[])pdus[i]);
if(messages[i].getDisplayMessageBody().equals("a"))
{
//Play alarm sound
mp1 = MediaPlayer.create(ctx, R.raw.a);
mp1.setLooping(true); // Set looping
mp1.start();
} //---------------------------------------------------
if(messages[i].getDisplayMessageBody().equals("b"))
{
//Play alarm sound
mp1 = MediaPlayer.create(ctx, R.raw.b);
mp1.setLooping(true); // Set looping
mp1.start();
} //---------------------------------------------------
if(messages[i].getDisplayMessageBody().equals("c"))
{
//Play alarm sound
mp1 = MediaPlayer.create(ctx, R.raw.c);
mp1.setLooping(true); // Set looping
mp1.start();
} //---------------------------------------------------
if(messages[i].getDisplayMessageBody().equals("d"))
{
//Play alarm sound
mp1 = MediaPlayer.create(ctx, R.raw.d);
mp1.setLooping(true); // Set looping
mp1.start();
} //---------------------------------------------------
}
}
}