0

私は以前にこの質問をしたことがありますが (ここで)、注目を集めることはありませんでした。同様の問題に着手することを選択した人にとって、これが本当に役立つと証明できると思います。

基本的に、ユーザーにアラームを設定するアプリケーションを実装しています。現在の試みでは、ACTION_SET_ALARM インテントを使用してシステム アラームを設定しています。現在、これは 1 つの例外を除いて正常に機能します。アラームを設定するたびに、最終的にアラーム データベースが冗長なアラームで完全にいっぱいになるまで、まったく新しいアラームが作成されます。

独自の目覚まし時計アプリケーションを完全に設計することなく、UNIQUE アラームを設定する方法を見つけようとしています。ネイティブの Android アラームクロック クラスの機能を利用するだけで、これを行う方法が必要です。

私がこれまでに採用した方法:

  • Android 開発者向けドキュメント。

  • このトピックに関する SO のほぼすべてのフォーラム投稿。

  • デスククロックのソースコードを検索して見つけた他のさまざまな意図を利用します。

  • Alarms クラス、setAlarm クラスをインポートします。

私にとって最後に残されたオプションは、AlarmManager クラスに着手することですが、これは本質的には alarmclock クラスを再作成することであり、このアプリケーションを汎用 (ほとんどの目覚まし時計アプリケーションに適用できます) にして、独自のものに依存する必要がないようにしたいと考えています。

どんな援助でも大歓迎です。

4

2 に答える 2

1

ネイティブの Android アラームクロック クラスの機能を利用するだけで、これを行う方法が必要です。

あなたの意見を歓迎しますが、あなたの意見には、独自の Android フォークと独自のモバイル デバイスのラインが必要になる場合があります。

まず、「Android のネイティブな目覚まし時計クラス」はほとんどありません。ほとんどの場合、単なるアクションIntent文字列とエクストラ用の一連のキーです。目覚まし時計機能の実装は、デバイスとユーザーに依存しますが、多くは Android オープン ソース プロジェクトからのものを使用するだけです。

この時点で、次の 2 つの問題が発生します。

  1. Android オープン ソース プロジェクトのアプリは、必要なものをサポートしていません

  2. 文書化された動作の範囲外であるため、他のアプリで必要なものをサポートする必要はありません

于 2012-07-30T17:54:59.150 に答える
0

あなたがする必要があるのは、AlarmManagerを使用してパルスをブロードキャストすることです。これは、脈拍を出すための最も信頼できる方法です。放送受信機にそのパルスを聞いてサービスにパスオーバーさせるか、必要に応じてアクティビティを開始します。そこで、アラーム条件のリストを調べて、それらが満たされているかどうかを確認します。この時点でタイムスタンプを確認することもできることに注意してください。はいAlarmManagerは、これに使用できる他のどのサービスよりもはるかに信頼性があります。

于 2012-07-30T18:04:10.960 に答える