auメール
SPモードメール対応の au 版、といいたい所ですが、すこし違います。
システムも違えばキャリアの料金体系も違うため、「全く同じもの」は作れませんし、作ったとしても使いにくいでしょう。
ここでは、とにかく「使いやすくする」ことを目指して、全く同じであることは目指しませんでした。
docomo ではメールのパケットは無料ですが、au は有料です。スマホ以前はauでもメール無料の「ガンガンメール」がありましたが、スマホにはありません。
なので、auではデータ定額プランに入ったほうが良いです。そして、データ定額プランに入るのであれば、モバイルデータ通信は常時オンでも問題ありません。
それでも、「メールはそれほど使わないので、せめてダブル定額の下限程度で」という人もいるでしょう。通信が常時オンだと、無駄な通信が発生して電池の持ちが悪い、ということを気にする人もいます。
ここに紹介する Llama プログラムは、そういう人のためのものです。
ただ、au のメールは docomo と挙動が違うため、全く同じことはできませんし、意味がありません。
- docomoのメールアプリは、センターにメールが届くと、データ通信できない状態でも取得を試みます。au のアプリは、データ通信できないと最初から諦めます。
- 上記仕様のため、docomo ではメール着信に気づいてからデータ通信オンにすれば、メールの取得ができます。auは無理です。
- でも、au ではメールの着信通知だけで着信音を鳴らしてくれます。docomo は鳴らさないので、メール取得できないとメールが来たことに気づけません。
この違いのため、設計方針は「メールが着信したら、次回のメールアプリ起動時に、すみやかに新着受信できる環境を整える」ことにします。ユーザーは気づいて、すぐにメールを見ようとするでしょうから。
基本は docomo 用と同じ。メールアプリ起動で通信開始、終了の1分後に終了。画面オン・オフもアプリの起動・終了に準じます。
着信通知があった時点で、画面がオフなら、メールアプリを起動します。これで、着信に気づいて画面をオンにすると、通信可能な状態になります。あとは新着受信するだけ。
着信通知があった時点で、画面オンなら、メールアプリ起動はしません。作業中に勝手にアプリ起動されると迷惑だから。でも、代わりに1分間だけ通信可能とします。この間に通知バーから着信通知をタップすれば、メールアプリが起動して新着受信してくれます。
着信通知をタップしても、データ通信できないので「新着受信に失敗」します。でも、このときアプリが起動してデータ通信を開始するので、もう一度同じことを繰り返すと受信できます。
docomo 用と同じく、プログラムを使う際は、メール着信を知るために、「ユーザー補助」の権限が必要です。
なお、動作確認は IS05 で行っています。この機種に搭載のメールアプリは「メール」です。現行機種では「Eメール」という別のアプリが搭載されているはず。
「メール」では、WiFiでの受信は行えません。そこで、以下のプログラムでは、必ずモバイルデータ通信を開始しています。
「Eメール」では WiFi の着信も可能なようですが、WiFi通信可能な状態でモバイルデータ通信を開始しても害はないと思うので、特に考慮していません。
その他、多少動作が異なっているかもしれませんが、手元に用意できた au 機種が IS05 だけなので、「Eメール」での動作は検証できていません。ご了承ください。
グループ:メール
状況:
現在のアプリ >
アプリ:メール
状態:アプリ起動、または前面化
画面オン/オフ > 画面オン
行動:
モバイルデータ > モバイルデータ使用
自動同期 > 自動同期無効
イベント表示:
現在アプリがメールなら 画面オンなら - モバイルデータ有効 そして 自動同期無効
グループ:メール
状況:
現在のアプリ >
アプリ:メール
状態:アプリ終了、またはバックグランド化
行動:
Llama変数 >
変数名:3G通信
変数の値:終了待ち
イベント表示:
現在アプリがメールでないなら - 「3G通信」を「終了待ち」に
グループ:メール
状況:
通知バーアイコン > メール
画面オン/オフ > 画面オフ
行動:
アプリ起動 > メール
イベント表示:
メールが通知を出したら 画面オフなら - メールを起動
グループ:メール
状況:
通知バーアイコン > メール
画面オン/オフ > 画面オン
行動:
モバイルデータ > モバイルデータ使用
自動同期 > 自動同期無効
Llama変数 >
変数名:3G通信
変数の値:終了待ち
イベント表示:
メールが通知を出したら 画面オンなら - モバイルデータ有効, 自動同期無効 そして 「3G通信」を「終了待ち」に
グループ:メール
状況:
画面オン/オフ > 画面オフ
現在のアプリ >
アプリ:メール
状態:アプリ起動、または前面化
行動:
Llama変数 >
変数名:3G通信
変数の値:終了待ち
イベント表示:
画面オフなら 現在アプリがメールなら - 「3G通信」を「終了待ち」に
グループ:メール
高度機能:
イベントを遅らせる
何分遅らせる? > 1分
状況が変わった場合は中止
状況:
Llama変数 >
変数名:3G通信
これなら
変数の値:終了待ち
行動:
モバイルデータ > モバイルデータ使わない
Llama変数 >
変数名:3G通信
変数の値:
イベント表示:
「3G通信」が「終了待ち」なら - 1分待機 の後で モバイルデータ無効 そして 「3G通信」を「」に