Troubleshooting guide

143
8: Creating notifications
Code sample: Creating a custom notification
Example: ConsequenceDemo.java
/**
* ConsequenceDemo.java
* Copyright (C) 2001-2005 Research In Motion Limited. All rights reserved.
*/
package com.rim.samples.docs.notifications;
import net.rim.device.api.synchronization.*;
import net.rim.device.api.notification.*;
import net.rim.device.api.system.*;
import net.rim.device.api.util.*;
import java.io.*;
public class ConsequenceDemo implements Consequence, SyncConverter {
public static final long ID = 0xbd2350c0dfda2a51L;
private static final int TYPE = ‘n’ << 24 | ‘o’ << 16 | ‘t’ << 8 | ‘d’;
private static final byte[] DATA = new byte[] {
‘m’, ‘y’, ‘-’, ‘c’, ‘o’, ‘n’, ‘f’, ‘i’,
‘g’, ‘-’, ‘o’, ‘b’, ‘j’, ‘e’, ‘c’, ‘t’ };
private static final Configuration CONFIG = new Configuration(DATA);
private static final short BFlat = 466; // The actual value is 466.16.
private static final short TEMPO = 125;
private static final short d16 = 1 * TEMPO;
private static final short pause = 10; // 10 millisecond pause.
private static final short[] TUNE = new short[] {BFlat, d16, pause, BFlat};
private static final int VOLUME = 80; // Percentage volume.
Define the notification
configuration.
1. Create a class that implements SyncObject and Persistable.
private static final class Configuration implements SyncObject,
Persistable {
2. In the class, make sure that the SyncObject.getUID() method returns 0 if data synchronization
is not required.
public byte[] _data;
public Configuration(byte[] data) {
_data = data;
}
public int getUID() {
return 0;
}
}
Register a custom notification in
the NotificationsManager.
> If you create a custom Consequence implementation, register it with the
NotificationsManager by invoking registerNotificationsObjects(long,
Consequence)
.
NotificationsManager.registerConsequence(ConsequenceImpl.ID, new
ConsequenceImpl());
Task Steps