2

アラームを実装するクラスがあります。受信機クラスは放送受信機ですので、アラームが鳴ったときにデフォルトのアラーム音を振動させて鳴らしてほしいです。ただし、ブロードキャストレシーバークラスでgetSystemServiceを使用することはできません。

これはアクティビティではなく、使用できないためだと思いますが、どうすればこれを回避できますか?受信クラスをアクティビティクラスまたはアラートダイアログアクティビティに変更する必要がありますか?皆さんは何を提案しますか?

乾杯

4

2 に答える 2

2

あなたはそれを使うことができます。BroadcastReceiverで行います。

    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 に答える