アラームを実装するクラスがあります。受信機クラスは放送受信機ですので、アラームが鳴ったときにデフォルトのアラーム音を振動させて鳴らしてほしいです。ただし、ブロードキャストレシーバークラスでgetSystemServiceを使用することはできません。
これはアクティビティではなく、使用できないためだと思いますが、どうすればこれを回避できますか?受信クラスをアクティビティクラスまたはアラートダイアログアクティビティに変更する必要がありますか?皆さんは何を提案しますか?
乾杯
アラームを実装するクラスがあります。受信機クラスは放送受信機ですので、アラームが鳴ったときにデフォルトのアラーム音を振動させて鳴らしてほしいです。ただし、ブロードキャストレシーバークラスでgetSystemServiceを使用することはできません。
これはアクティビティではなく、使用できないためだと思いますが、どうすればこれを回避できますか?受信クラスをアクティビティクラスまたはアラートダイアログアクティビティに変更する必要がありますか?皆さんは何を提案しますか?
乾杯
あなたはそれを使うことができます。BroadcastReceiverで行います。
AudioManager audioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
エラーメッセージはありますか?またはソースコード?
放送受信機は最大10秒しか持続しないことを知っておいてください。
getSystemServiceメソッドはContextクラスの一部です。ブロードキャストレシーバーContext
では、ブロードキャストインテントを持つインスタンスが渡されます。コンテキストは、ブロードキャストレシーバーの登録方法に応じて、アクティビティコンテキストまたはアプリケーションコンテキストのいずれかになります。
このContext
インスタンスを使用して、次のように呼び出すgetSystemService
ことができるはずです。
public final void onReceive(Context context, Intent intent) {
AlarmManager am = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
}