public void runSound(){
Intent it = new Intent(Values.TAG_EXECUTE_ALARM);
PendingIntent pendIntent = PendingIntent.getBroadcast(this, 0, it, 0);
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.add(Calendar.SECOND,0);
AlarmManager alarm = (AlarmManager) getSystemService(ALARM_SERVICE);
long time = calendar.getTimeInMillis();
alarm.set(AlarmManager.RTC_WAKEUP,time,pendIntent);
}
此方法是从服务调用的。即使设备处于睡眠模式,我的服务也应该播放声音以通知用户。
public class AlarmReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context arg0, Intent arg1) {
MediaPlayer player = MediaPlayer.create(arg0, R.raw.order_alarm);
player.setAudioStreamType(AudioManager.STREAM_ALARM);
player.start();
}
这是实际播放声音的类。不幸的是,设备没有唤醒,也没有播放声音。在设备进入睡眠模式之前调用 runSound 时,声音会完美运行......有什么想法吗?
编辑:
-> 删除了静态引用(是的,它们很愚蠢,因为 runSound 在服务中)。
-> 是的,标签值在接收者意图过滤器中定义
-> 改进了问题。