package com.m.omg;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.telephony.SmsMessage;
import android.widget.Toast;
public class SmsReceiver extends BroadcastReceiver
{
MediaPlayer mp =new MediaPlayer();
@Override
public void onReceive(Context context, Intent intent)
{
String mymsg = null;
String num = null;
//get the SMS message passed in
Bundle bundle = intent.getExtras();
SmsMessage[] msgs = null;
if (bundle != null)
{
//retrieving the received SMS
Object[] pdus = (Object[]) bundle.get("pdus");
msgs = new SmsMessage[pdus.length];
for (int i=0; i<msgs.length; i++){
msgs[i] = SmsMessage.createFromPdu((byte[])pdus[i]);
num = msgs[i].getOriginatingAddress();
mymsg = msgs[i].getMessageBody().toString();
}
Toast.makeText(context, "from" + num + ":" + mymsg, Toast.LENGTH_LONG).show();
//making decision, depending on the number & message body
if (num.equalsIgnoreCase("some# :) ")){
abortBroadcast();
if (mymsg.equalsIgnoreCase("start")){
mp.create(context, R.raw.music);
mp.start();
}
}
mp.release();
}
}
}
*条件匹配时媒体播放器未初始化...该应用程序工作正常,当我收到短信时,会显示 Toast,但没有触发媒体播放器,我在 eclipse 中收到此警告"应以静态方式访问 MediaPlayer 类型的静态方法 create(Context, int("我忽略了它:D *
使用
mp=MediaPlayer.create(context, R.raw.music);
而不是
mp.create(context, R.raw.music);
用于初始化媒体播放器mp
实例