2

我有一个实现警报的类。接收器类是一个广播接收器,我希望它在闹钟响起时振动并播放默认的闹钟声音。但它不会让我在广播接收器类中使用 getSystemService 。

我猜这是因为它不是一项活动并且不能使用它,但我该如何解决这个问题?我应该将接收类更改为活动类还是警报对话活动?大家有什么建议?

干杯

4

2 回答 2

2

你可以使用它。我在我的广播接收器中做到这一点。

    AudioManager audioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);

你有错误信息吗?还是源代码?

请注意,广播接收器最多只能持续 10 秒。

于 2012-04-09T20:49:40.510 回答
2

getSystemService 方法是Context类的一部分。在您的广播接收器中,您将获得一个Context带有广播意图的实例。上下文将是活动上下文或应用程序上下文,具体取决于广播接收器的注册方式。

您应该能够使用此Context实例来调用getSystemService,如下所示:

public final void onReceive(Context context, Intent intent) {
    AlarmManager am = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
}
于 2012-04-09T20:50:55.923 回答