2017-08-08 7 views
0

昨年、私は4種類のAndroid携帯を購入し、それらのすべてがカレンダー通知で失敗しました。時にはイベントの通知が表示され、まったく表示されないこともありました。私は多くを調査し、アプリケーションフレームワークレイヤーにあるコンテンツプロバイダである「カレンダーストレージ」アプリで問題を見つけました。通知は、バージョン6.0.1の時点では常に表示されなくなります。そのため、私はカレンダープロバイダに基づいていない独自のカレンダーアプリケーションを開発して、信頼できる通知を再度得ることができます。Android Marshmallowまたはupperのアプリケーションを開発する際に信頼性の高いアラームを設定するにはどうすればよいですか?

以前はリマインダベースのアプリを開発したときに、AlarmManagerクラスと、setExact()というメソッドを使用して、アプリケーションが将来、指定された日時に通知などを表示できるようにしました。しかし、マシュマロとアッパーでは、邪魔なドーズモードのために動作してはいけません。

彼らは、ドーズモードをバイパスできるアラームを設定するために、おそらくマシュマロの方法setExactAndAllowWhileIdle()を発明しました。しかし、それはあなたが15分以内に複数のアラームを置くことはできないと言います。リマインダーベースのアプリでは、ユーザーが望むだけ多くのリマインダーをタイムラインで近くに置くことができなければならないので、愚かです。

私の質問は、どのようにしていつでもdozeモードに関係なくいつでも動作するように通知通知を表示するようにすることができます。そうすれば、必要なだけ多くの通知を行うことができます。私が望む時間?

ありがとうございます。

答えて

0

あなたのアプリをホワイトリストに表示するオプションは常にありますので、ドーズは以前の方法で実行できます。

fcm通知を送信するもう1つの正式な方法は、ジョブを実行するサーバーが必要です。

次の公式回答には、正確なアラームが含まれていることを恐れています。

あなたにとってはオプションの場合は、STICKYでサービスを開始できる可能性があります。サービススレッドが永遠にブロックされていても、電話機が決して眠れないとは思っていません(マニフェストの別のプロセスに割り当てて、あなたのUIがフリーズすることはありません)。適切なタイミングでコールバックを発生させるために定期的な古いスタイルのJavaタイマーを置くことで、必要なものを達成することができます。

+0

私が調査したところ、アプリがホワイトリストに記載されていても、それは時々ドーズによって混乱するため、オプションは有効ではないはずです。また、GCMは適切ではありません。私たちのお金を奪う唯一の目的で、Googleによって発明されたものです。実際、リマインダーアプリケーションは、同期機能がない限り、リモートサーバーを使用してはいけません。私のことはしません。他の方法はありますか?正確なアラームとは何ですか? – user3289695

+0

これはあなたがすでにやっていることです。それにはいくつか興味深い紆余曲折があります:https://stackoverflow.com/q/38094420/2754856 – Fabio

関連する問題