我创建了一个简单BroadcastReceiver
的对SMS
收到的反应。
一条消息应该能够启动警报,而另一条消息应该能够停止它。警报由 a 触发mediaPlayer
并且运行良好。但我无法阻止它。我知道mediaplayer
每次SMS
收到权利时都会创建一个新实例,但即使是单例,我也无法使其工作......
这是一个代码片段:
Bundle myBundle = intent.getExtras();
SmsMessage [] messages = null;
String strMessage = "";
if (myBundle != null)
{
Object [] pdus = (Object[]) myBundle.get("pdus");
messages = new SmsMessage[pdus.length];
for (int i = 0; i < messages.length; i++)
{
messages[i] = SmsMessage.createFromPdu((byte[]) pdus[i]);
strMessage += messages[i].getMessageBody();
}
if (strMessage.equals("ATELIO&SON")){
if(onoff == 1){
Toast.makeText(context, "Démarrage localisation sonore", Toast.LENGTH_LONG).show();
playSound();
}
}
else if(strMessage.equals("ATELIO&SON&FIN")){
Toast.makeText(context, "Fin localisation sonore", Toast.LENGTH_LONG).show();
stopSound();
}
}
playsound()
并且stopsound()
是两个非常简单的方法,第一个启动声音,第二个检查是否mediaplayer
是null
并相应地采取行动。