ユーザーが自分のアプリによってスローされた通知領域(ホーム画面から開いた-アプリの通知アイコンをクリックした)からメッセージを開いたときを知りたい。
ApplicationMessageFolderListener
これには機能せず、applicationMenuItemを登録すると、メッセージが開かなくなります(Blackberry-メッセージを開くときのApplicationMenuItemの使用を参照)。
誰かがこれを行う方法を知っていますか?
ユーザーが自分のアプリによってスローされた通知領域(ホーム画面から開いた-アプリの通知アイコンをクリックした)からメッセージを開いたときを知りたい。
ApplicationMessageFolderListener
これには機能せず、applicationMenuItemを登録すると、メッセージが開かなくなります(Blackberry-メッセージを開くときのApplicationMenuItemの使用を参照)。
誰かがこれを行う方法を知っていますか?
以下のコードが役立つはずです。
ApplicationMessageFolderRegistry registry =
ApplicationMessageFolderRegistry.getInstance();
ApplicationMessageFolder inbox =
registry.getApplicationFolder(MessageListHelper.YOUR_CUSTOM_INBOX_FOLDER_ID);
ApplicationDescriptor daemonDescr =
ApplicationDescriptor.currentApplicationDescriptor();
既存のメッセージをストレージから取得し、フォルダーに登録します。
MessageStore messages = MessageListHelper.getMessageStore();
ApplicationMessageFolder inbox =
registry.registerFolder(MessageListHelper.YOUR_CUSTOM_INBOX_FOLDER_ID,
"Inbox", messages.getInboxMessages());
コールバック通知のリスナーとして自分自身を登録します。
inbox.addListener(this, ApplicationMessageFolderListener.MESSAGE_DELETED |
ApplicationMessageFolderListener.MESSAGE_MARKED_OPENED |
ApplicationMessageFolderListener.MESSAGE_MARKED_UNOPENED, daemonDescr);
messages.setFolders(inbox);
registry.setRootFolderName(MessageListHelper.ROOT_FOLDER_NAME);
リスナーを受信トレイに追加しているときに感じたのですが、次のように設定しているオプションを見逃している可能性があります
ApplicationMessageFolderListener.MESSAGE_DELETED |
ApplicationMessageFolderListener.MESSAGE_MARKED_OPENED |
ApplicationMessageFolderListener.MESSAGE_MARKED_UNOPENED
そのため、actionPerformed()
古いものか何かをマークするために初めて呼び出されます。