我使用下面的代码在我的 Android 应用程序中安排闹钟。
/**
* To set the alarm service to be fire on OFF mode
*/
public void setOffModeAlarmService() {
int offModeStartHour = 8;
int offModeStartMinute = 30;
Calendar offModeTime = Calendar.getInstance();
offModeTime.setTimeZone(TimeZone.getTimeZone(Constants.TIME_ZONE));
offModeTime.set(Calendar.HOUR_OF_DAY, offModeStartHour);
offModeTime.set(Calendar.MINUTE, offModeStartMinute);
mAlarmManager.setRepeating(AlarmManager.RTC_WAKEUP,
offModeTime.getTimeInMillis(), AlarmManager.INTERVAL_DAY,
getOffModeAlarmPendingIntent());
mAppUtilInstance.logDebugMessage(TAG, "OFF Mode Alarm Scheduled.");
}
我每天都定了闹钟。但是,如果在闹钟时间之前关闭我的手机,那么我的手机不会在预定时间唤醒。
即使我尝试使用WakefulBroadcastReceiver,也获得了WakeLock。但没有任何帮助。
请帮我解决这个问题。
不,如果手机关机,它就不能做任何事情。如果它处于睡眠模式,屏幕关闭且未使用,则闹钟仍将像其他类型的通知一样发挥作用。
在旧手机(如诺基亚)上,当手机关闭时闹钟仍然会响。这在 Android 中是令人失望的
RTC_WAKEUP 在模拟器中关闭屏幕时播放铃声,但是当我在真实设备中运行 apk 文件时,它不会在屏幕关闭时播放铃声。当我解锁设备时,它会被触发并开始播放铃声。我想知道为什么它会发生在真实设备中。
package com.example.database;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.media.MediaPlayer;
import android.net.Uri;
public class MyReceiver extends BroadcastReceiver {
MediaPlayer mMediaPlayer;
@Override
public void onReceive(Context context, Intent intent) {
mMediaPlayer = new MediaPlayer();
String label=intent.getStringExtra("KEY");
Uri mediaPath = Uri.parse("android.resource://" + context.getPackageName() + "/" + R.raw.myringtone);
final MediaPlayer ringtone = MediaPlayer.create(context, mediaPath);
mMediaPlayer.setLooping(true);
ringtone.start();
}
}