ひとりぶろぐ

価値ある情報をユーザー視点で発信するブログ

i.softbank.jpの通知ダイアログ表示時に自動でメール受信するSBankPushFetcher

      2012/11/14

i.softbank.jpドメインのメールを受信時に表示される通知のダイアログ。

これを見て、まず「了解」ボタンでダイアログを閉じ、Mail.appを起動し、受信ボタンを押す。
受信開始後しばらくの後にやっとメールが読めるようになる。
この手続きは、ガラケー使いからすると辛いものだと思います。

Gmailなどのメール受信のPush Notificationを表示させるアプリケーションでも事情は同じで、Push Notificationのダイアログを閉じて初めてメール受信を開始することになるため、メールが読めるようになるまでにタイムラグが生じます。

「ダイアログが出た時点でさっさとメールの受信始めたら!」って思ったことありませんか。

それを実現するのがSBankPushFetcherです。(続きは[MORE]から)

解説

SBankPushFetcherをインストールすると、i.softbank.jpドメインのメール受信告知ダイアログが表示されるやいなや、Mail.appに設定されている全アカウントのメール受信処理を開始するようになります。
従って、次にMail.appを起動するときには、既に受信の終わったメールをすぐに読むことができるわけです。

Mail.appがバックグラウンドで起動していない場合の動作

メールの受信を開始するためにはMail.appがバックグラウンド(ないしはフォアグラウンド)で起動していないとなりません。
SBankPushFetcherは、基本的にMail.appをバックグラウンドで起動させておいて使うことを前提にしています。

Mail.appをバックグラウンドで常時起動させるには、「設定>メール/連絡先/カレンダー>データの取得方法」のプッシュないしはフェッチのいずれかを有効にする必要があります。

プッシュ、フェッチの両方をオフにしておくと、Mail.appは自動的に起動することはありません。
この場合の動作を二つ選べます。

Launch Mail Anywhereがオフ(デフォルト)

デフォルトではMail.appがバックグラウンドで起動していない状態でメール受信告知ダイアログが表示された場合、ロック中のみMail.appを起動して、メールの受信を開始します。ロック中でなければ、ただメール受信告知ダイアログが表示されるだけで終わります。

Launch Mail Anywhereがオン

「設定>SBankPushFetcher」に「Launch Mail Anywhere」というオプションがあります。

 

これをオンにすると、ロック中でなくともメール受信告知ダイアログが表示されるやいなやMail.appを起動して、メールの受信を開始します。
メール受信告知ダイアログが表示されたのが例えばゲーム中だった場合、Mail.appがいきなり割り込んできてゲームを中断させられることになります。

一番いいのはメールが届いたときに最前面のアプリケーションを中断しないようMail.appをバックグラウンドで起動させることですが、この方法が分からないので半端な二者択一になっているわけです。

こういう制約があるので、SBankPushFetcherは、基本的にMail.appがバックグラウンドで起動させておいて使うことを前提にしているのです。

使っているメールを全部i.softbank.jpに転送しておけば、1時間間隔のフェッチで十分ということになります。

パスコードロックをかけているとうまくない

2011.05.17追記

パスコードロックをかけ、またMail.appがバックグラウンドで動いていない状態でロック中にi.softbank.jpのメールが届くと、Mail.appを起動する際にロックを解除しようとします。

しかし、パスコードロックがかかっているので起動を諦め、結果としてメール受信もできないといった状態になると思います。

この意味でも、SBankPushFetcherを有効に使うならば、1時間間隔ででもフェッチ受信を有効にして、Mail.appがバックグラウンドで動作し続ける状態にしておく必要があるといえますね。

僕があえてロックを解除することを選択してこういう状態に陥っているのではなく、場面を問わずアプリケーションを起動させる唯一のAPIにはロック解除が伴ってしまうので、結果このようになっています。

Gmail等の自動受信に使う

SBankPushFetcherをインストールすると「i.softbank.jpのメール受信告知ダイアログ表示→Mail.appで受信処理開始」という状態になるので、Gmailをはじめ、別のサーバ宛のメールをi.softbank.jp宛に転送しておくと、i.softbank.jpに限らずメールの自動受信を開始することができます。

i.softbank.jpを普段全然使っていなくても、受信開始の引き金を引くためだけにi.softbank.jp宛に転送する使い方に意味が出てくるわけです。

ちなみに、i.softbank.jpはMy SoftBank側で通知をするよう設定しておけば、わざわざiPhoneのMail.appにi.softbank.jpを設定する必要はありません。
設定しなくともi.softbank.jpのメール受信告知ダイアログは表示されます(だったと思う)。メール受信告知ダイアログを表示させてしまいさえすれば、Mail.appは受信を開始します。

i.softbank.jp、SBankPushFetcherを使うことの意味

i.softbank.jpの通知はSMSを使っているため、Push Notificationをオフにしても通知されます。
バッテリ消費を最小に抑えたいがメールは届いたらすぐ読みたいというニーズがある場合に、新たな意味を成してきます。


想定質問: 前のバージョンはダイアログを消す設定あったよね。前のバージョンのdebくんない?

Lock Screen系のTweakとの相性問題が出るのでやめました。
前のバージョンのdebは配布しません。

想定質問: SBankPushFetcherを使うとバッテリの減りが早いのですが、バグですか?

SBankPushFetcherを使うことが即ちバッテリの消耗につながるわけではありません。
結果としてMail.appがどれだけの頻度でメール受信をすることになるか、それによってバッテリの消費度が決まります。

SBankPushFetcherに対して疑心暗鬼になっている人もいるかもしれませんので、仕組みを説明しましょう。

SBankPushFetcherのしくみ

SBankPushFetcherはi.softbank.jpの受信通知ダイアログ、そしてMail.appの動作を変更し、i.softbank.jpの受信通知ダイアログからMail.appにメッセージを送信できるようにします。

SBankPushFetcherというアプリケーションがどこかに新たに起動するというようなことはありません。
普段は何もしません。i.softbank.jpの受信通知ダイアログの表示時に初めて変化が現れます。

SBankPushFetcherによって改変されたi.softbank.jpの受信通知ダイアログは、自らの表示の直前でMail.appにメッセージを送信します。

Mail.appは、i.softbank.jpの受信通知ダイアログからのメッセージを受け取ると、メール受信処理を開始します。

仕組みとしては基本的にはこれだけです。SBankPushFetcherというアプリケーションが常時起動し、メールサーバを常時監視し、バッテリを消費しまくるイメージがあるのだと思いますが、そういうことはありません。

SBankPushFetcherでバッテリの消費は増えも減りもする

冒頭に述べた通り、最終的にMail.appがどれぐらいの頻度でメール受信処理をするか。それにかかっています。

本来であれば、i.softbank.jpの受信通知ダイアログ表示時に毎回Mail.appがメール受信処理を開始するというようなことはありませんから、その意味では増える傾向になるといえます。

一方で、SBankPushFetcherによって必要なときにだけメール受信処理をすればよくなるともいえ、頻繁なフェッチ、また一般的に電池を消費する傾向にあるプッシュに頼らなくてもよくなるため、それとのプラスマイナスで結果としてバッテリを消費しなくなることもあるでしょう。

逆に、Mail.appの設定でフェッチを最短の15分間隔、プッシュが有効なアカウントを設定した上でSBankPushFetcherを導入したら、メール受信処理の機会は単純にオンされるので、バッテリの消費は確実に増えるでしょう。

既知の不具合

  • nop

動作確認環境

  • iOS 4.2.1 (iPadを除く)

インストール

New野良リポジトリに置いておきました。

「SBankPushFetcher」で検索してください。

無保証です。

履歴

  • 0.2-1 2011.04.08 iOS 4.2.1対応
  • 0.1-1 2010.06.18 初版

 - iPhone, Jailbreak, ガジェット