i have the push notification problem being delivered twice . it occurs when i publish notification for example at 11 am, its working normal. but when i publish another message in the next some minutes(dont know exactly until what minutes, but i input is next 2-3 minutes) that notification being sent twice. but if i wait quite long time to publish another notification(not exactly sure until what minute) its delivered only once.
so here is the code, im using custom for adding sound on notification,
MyReceiver.java
public class MyReceiver extends BackendlessBroadcastReceiver {
@Override
public Class<? extends BackendlessPushService> getServiceClass()
{
return MyService.class;
}
}
MyService.java
public class MyService extends BackendlessPushService {
@Override
public void onRegistered(Context context, String registrationId )
{
Log.v(“onRegistered”,“registered”);
//Toast.makeText( context, “registered” + registrationId, Toast.LENGTH_SHORT).show();
}
@Override
public void onUnregistered( Context context, Boolean unregistered )
{
Log.v(“onUnregistered”,“unregistered”);
//Toast.makeText( context, “unregistered”, Toast.LENGTH_SHORT).show();
}
@Override
public boolean onMessage( Context context, Intent intent )
{
//String message = intent.getStringExtra( “message” );
CharSequence tickerText = intent.getStringExtra( PublishOptions.ANDROID_TICKER_TEXT_TAG );
CharSequence contentTitle = intent.getStringExtra( PublishOptions.ANDROID_CONTENT_TITLE_TAG );
CharSequence contentText = intent.getStringExtra( PublishOptions.ANDROID_CONTENT_TEXT_TAG );
String message = intent.getStringExtra( PublishOptions.MESSAGE_TAG );
android.support.v4.app.NotificationCompat.Builder mBuilder =
new android.support.v4.app.NotificationCompat.Builder(context)
.setSmallIcon(R.mipmap.ic_launcher)
.setContentTitle(contentTitle)
.setContentText(contentText)
.setTicker(tickerText)
.setAutoCancel(true)
.setOngoing(true)
.setSound(RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION));
NotificationManager mNotificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
mNotificationManager.notify(1, mBuilder.build());
Log.v(“ticker value”,String.valueOf(tickerText)+"\n"+String.valueOf(contentTitle)+"\n"+String.valueOf(contentText));
return true;
}
@Override
public void onError( Context context, String message )
{
Toast.makeText( context, message, Toast.LENGTH_SHORT).show();
}
}
Manifest.xml: https://gist.github.com/anonymous/efabaecfe775cffc5c12bf53eaaf35dc
class that publish notiftication :
PublishOptions publishOptions = new PublishOptions();
publishOptions.putHeader( “android-ticker-text”, “You just got a notification!” );
publishOptions.putHeader( “android-content-title”, title );
publishOptions.putHeader( “android-content-text”, content );
DeliveryOptions deliveryOptions = new DeliveryOptions();
Date publishDate = expireDate;
deliveryOptions.setPublishAt( publishDate );
deliveryOptions.addPushSinglecast(deviceId);
Backendless.Messaging.publish((Object)“tes”, publishOptions, deliveryOptions, new AsyncCallback<MessageStatus>() {
@Override
public void handleResponse(MessageStatus response) {
messageId=response.getMessageId();
Log.v(“Status success”,"sukses, messageId = "+messageId);
}
@Override
public void handleFault(BackendlessFault fault) {
Log.v(“Status fail”,fault.getMessage());
}
});