この記事は、前回の続き

[Unity3D]ローカル通知を使う
http://terasur.blog.fc2.com/blog-entry-184.html

前回はとりあえず通知は成功したけど、バッジが消せない問題が残った。
その問題の解消法がわかったので紹介。

スクリーンショット 2012-06-19 23.03.07


■バッジの数値を消す

どうやらバッジが指定する数値は、applicationIconBadgeNumberが
「最後に指定した値」らしい。

これがわかればあとは簡単。
applicationIconBadgeNumberの数が0未満の通知を与えてやれば、バッジは消える。

また、ついでに通知センターに表示される履歴も消してやる。
これはNotificationServices.CancelAllLocalNotifications()で行う。

ということで、前回紹介した「2.アプリ起動時に通知を削除する」はこんな感じで変化する。
これで起動時にバッジが消去できた。(稀に失敗する。条件は不明)


if( NotificationServices.localNotificationCount > 0)
{
LocalNotification l = new LocalNotification();
l.applicationIconBadgeNumber = -1;
NotificationServices.PresentLocalNotificationNow(l);

NotificationServices.CancelAllLocalNotifications();

NotificationServices.ClearLocalNotifications();
}
参考はここ。

Using the new notification system(Unity Community)
http://forum.unity3d.com/threads/127016-Using-the-new-notification-system

Unity4も出るし、ここらへんの問題も解決するといいんだけど・・・

[Unity] Unity4の情報を自分なりに訳してみた(けいごのなんとか)
http://anchan828.tumblr.com/post/25373508115/unity-unity4