2016年2月17日水曜日

Androidで目覚ましアプリとか入れない方が良いんじゃないですかね

目覚まし時計って、携帯電話の使用用途としてかなり重要な機能だと思います。ガラケーの頃は、少なくとも私が持っていた機種には全て付いていました。しかし、私が使っているAndroid端末(Android 4.4)には目覚まし時計はOSの標準機能として提供されていません。

そのため、目覚まし時計の機能を使うだけのためにガラケーを使い続けていたのですが、昨夜そのガラケーがご臨終されてしまったので、仕方なくアプリの目覚めし時計を使ってみることにしました。

使用してみたアプリは下記です。
https://play.google.com/store/apps/details?id=com.apalon.myclockfree

1000万DL以上されていて評価も高いので、これなら大丈夫だろうと...

しかし、トラブルは起きました。

翌朝、指定時刻になってもアラームが鳴りません。
何故なら、Android本体がバッテリー0%で落ちていたので。

私のAndroid端末は、かなり電池持ちが良いので、標準的な使い方なら、だいたい2日に1回ぐらい充電すれば事足ります。Androidの目覚ましを設定したその夜は、バッテリー残量が70%程度残っていたので、充電せずに就寝したのがマズかった。(多くの人は、寝る前にAndroidを充電した状態にすると思うので気づき難いかもしれませんね)

何故、私がAndroidの目覚ましアプリを信用していなかったのかというと、バックグラウンドで動作するアプリのプロセスを、OSから殺されずに存命させる手段を私が知らないからです。(バックグラウンドで動作するアプリを開発しているのでその辺の事情をよく知っているつもり)

OSから不要プロセスとして殺されないようにするには、何かしらのタスクを動かし続ける必要があります。タスクを動かし続ければ、当然ぐんぐん電池が減っていく訳です。(その減り方が想定以上に最悪だったためトラブった)

目覚まし時計のアプリが正常に動作できるようにするには、休眠状態でもOSから殺されず、かつ、指定時刻には正常に動く必要があります。その点を解決するには、次の何れかの機能をOSが提供している必要があります。
・目覚まし時計はOSの機能の一部として提供されている
・定時実行タスクとして登録する機能(cronのようなもの)をOSが提供する

Androidにはそのどちらの機能もありません。
後者の機能は悪用の余地が多いと思うので、実装されたら嫌だな...

ちなみに、iOSの場合は、OSの標準機能として目覚まし時計(アラーム)があるので、それを使う分には問題無いと思います(が、サードパーティー製の目覚ましアプリは基本的に信用できないと思っています)。

[追記] push通知でやれば実現できなくもないかと一瞬思ったけど、push通知だとアプリが立ち上がる訳ではないからダメか(ついでに、それだけのためにサーバーを立てるのもそもそもアホらしい気もする)

0 件のコメント:

コメントを投稿

注: コメントを投稿できるのは、このブログのメンバーだけです。

合理的ではないものを作りたい

ここ最近、実機版の東方VGSの開発が忙しくて、東方VGSの曲追加が滞っています。 東方VGS(実機版)のデザインを作りながら検討中。基本レトロUIベースですがシークバーはモダンに倣おうかな…とか pic.twitter.com/YOYprlDsYD — SUZUKI PLAN (...