« [iPhone]iPhone 3GのSafariで閲覧中のページのタイトルとURLをWassr/Twitterのフォームに貼り付けるブックマークレット | Main | [iPhone]i.softbank.jpドメインのメール着信通知時に着信音とバイブレーションを鳴動させる「SBankNotify」0.12 »

2008.08.20

[iPhone]i.softbank.jpドメインのメール着信通知時に着信音とバイブレーションを鳴動させる「SBankNotify」

開発終了のため、公開停止しました。再配布はしないように願います。(2010.05.30)

Eメール(i)すなわち、i.softbank.jpドメインのメールの着信通知時に、着信音とバイブレーションを鳴動させるdaemonを作ってみました。名前は「SBankNotify」としました。

無論、iPhone 3G用です。Jailbreakしておく必要があります。
Private Frameworkを使っているので、iPhone SDKでは作れない種類のソフトウェアです。

2008.08.23追記

0.12へ地味にバージョンアップしました。

SBankNotifyはiPod機能で音楽を聴いている際、一時停止をかけてから着信音「sbank.caf」を再生しますが、従来5秒待ったら有無を言わさず再生を再開していたところ、着信音の再生が終わるまで待ってから音楽を再開するようにしました。

尺の違うsbank.cafへの差し換えにも柔軟に対応できるはずです。ただし、巨大なファイルだとハングアップすると思いますので、注意してください。

2008.08.22追記

Cydiaのリポジトリを用意しました。
それに伴いインストール方法についての記述を書き換えました。

SBankNotifyを0.11に更新しました。
フェードインフェードアウトの処理を省きました。
これが効を奏してか、謎に発熱するようなことは無くなったような気がします。
何か確証があってそうしたわけでなく、全然行き当たりばったりなんですけどね。

普通に動いている限りは、フェッチやプッシュ運用より省電力な感じです。

2008.08.21追記

パッケージをアップデートしました。バイブレーションの設定変更が有効にならなかったのを直しました。

preinstとpostrmのパーミッションの問題だったようです。

またarawasさんからBossPrefs用のアイコンをいただきましたので、同梱しました。

不具合情報に追記。どうも省電力関係で問題があるようです。
つまり、プッシュやフェッチを切ったところであんまり電池が持たない。意味ねえ〜。

インストール

無保証です。永遠に人柱版です。
いささか変な挙動に遭遇しています。
iPhoneを壊してもいい覚悟でインストールしてください。

Cydiaがインストールされた環境が必要です。

Cydiaを起動し、「Manage」タブの「Sources」をタップ。

Sbanknotify02

「Edit」ボタンを押すと「Add」ボタンが出現するので、それを押して、以下のURLを入力してください。

http://homepage3.nifty.com/moyashi/cydia/
上記リポジトリは閉鎖、次なる場所に移転しています: Cydia Repo しかし、拙作の多くを公開停止しているので、あまり意味が無いかもしれません。

Sbanknotify03

後はナリユキで登録を完了させてください。

SBankNotifyはBossPrefsで有効無効を切り換える作りなので、BossPrefsを事前にインストールしておいてください。
BossPrefsは、必ずCydiaからインストールしてください。

「Search」タブで「sbanknotify」を入力すると「SBankNotify」が候補に出てきます。

Sbanknotify04

後はCydiaの流儀でインストールしてください。

直前に手動インストールしている方は、アンインストールの項を参考に、手動でアンインストールしてからCydiaでインストールしてください。

インストール後、BossPrefsに「SBankNotify」という項目が出現すると思いますので、「ON」にしてください。直後から機能すると思います。

Sbanknotify01

このパッケージをインストールし、しかる後に再起動(respringでもOK)すると、バイブレーションの動作時間が0.5秒から4秒に延長されます。

デフォルトのバイブレーションの動作時間を延長するので、例えば「ハノイの塔」でミスをすると、その度に4秒バイブレーションが動作してウザいです。

それが許せない場合は、SSHでログインするかMobileTerminalから以下のようにしてデフォルトに戻してください。MobileTerminalから作業をする場合は、「su」で管理者権限を獲得しておいてください。

# cd /System/Library/PrivateFrameworks/Celestial.framework/
# cp SystemSoundVibrationPatterns.plist.bak SystemSoundVibrationPatterns.plist

バイブレーションの動作時間の変更については、再起動するかrespringしないと反映されません。

アンインストール

Cydiaからインストールしたのであれば、普通にCydiaからアンインストールしてください。

直前が手動インストール、という方は、BossPrefsで「SBankNotify」を「OFF」にしてから、SSHでログインするか、MobileTerminalから以下のようにアンインストールしてください。
MobileTerminalの場合は事前に「su」を実行して管理者権限を取得しておく必要があります。

# apt-get remove com.hitoriblog.sbanknotify

着信音の変更

鳴らしているのは「/System/Library/Audio/UISounds/sbank.caf」です。
実体はAIFFなので、何らかの手段でAIFFを用意し、上書きしてください。
あんまり巨大なファイルだとハングアップすると思います。

使い方/運用

リアルタイムで着信を知る必要があるメールをi.softbank.jpに転送し、プッシュやフェッチは切っちゃいましょう。
ちなみに、i.softbank.jpのアカウントを「オフ」にしても、通知だけは機能します。

「設定」→「サウンド」→「新着メール」を「オフ」にしても、SBankNotifyの着信音は鳴ります。僕は、そういう設定で使っています。

「設定」→「一般」→「自動ロック」を「1分」などに設定してください。
SBankNotifyが有効な間、通知が表示された時点で通常とは違う状態に遷移するようで、「しない」にしていると、以降スリープしません。

自分のところでは、2通以上通知が重なった状態でも「1分」などに設定していれば、スリープへ移行できてます。

到着したメールの数だけ音が鳴り、到着したメールの数だけ通知を消すボタンを押さなければなりませんが、これはもうどうしようもありません。

不具合とか

  • 省電力関係で問題が出ることがありました。今は「自動ロック」を「1分」などに設定していれば大丈夫そう?
  • 受信処理はしません。Message.frameworkでできるんでしょうが、これもまたPrivate Frameworkでドキュメントが無く、使い方が分かりません。やり方を教えてくれれば対応します。IntelliScreenをリバースエンジニアリングすれば分かりそう。
  • サイレントモードにしていると、ヘッドフォンをしていても、バイブレーションだけ動作します。
  • iPod機能で動画を見ていた場合は、そこで再生が(結果として)中断します。
  • それ以外の音を出すアプリケーションとはコンフリクトすると思います。まずい状況になる場合はSBankNotifyをOFFにしてください。
  • daemonにあるまじきことですが、僕にかかってはメモリリークなんてのは十分ありうること……
  • 他にも不具合はあると思います。

問題点は別にそれでいいと思ってあるがままにしているわけじゃありませんが、ドキュメントが無かったりスキルが無かったり無知だったりで、自己解決できてません。

|

« [iPhone]iPhone 3GのSafariで閲覧中のページのタイトルとURLをWassr/Twitterのフォームに貼り付けるブックマークレット | Main | [iPhone]i.softbank.jpドメインのメール着信通知時に着信音とバイブレーションを鳴動させる「SBankNotify」0.12 »