2012-04-09 75 views
2

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

我猜这是因为它不是一个活动,不能使用它,但我怎么解决这个问题?我是否应该将接收类更改为活动类或警报对话活动?你们都建议什么?

干杯

回答

2

您可以使用它。我在我的BroadcastReceiver中做。

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

您是否有错误信息?或者源代码?

请知道广播接收机最多只能持续10秒。

2

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

您应该能够使用这个Context实例调用getSystemService像这样:

public final void onReceive(Context context, Intent intent) { 
    AlarmManager am = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); 
} 
+0

谢谢你们 - 两个答案都很好:d – Katana24 2012-04-09 21:11:29

+0

@twaddington你解决我的问题too.I没有使用'上下文.getSystemService()'但只有'getSystemService()',所以它显示错误。 – 2014-02-03 15:43:19