I am using the locanotification phonegap plugin for android. This is my first test to test this plugin. Local notification
When I used this plugin with a 2.7.0 phone bundle, it throws a lot of errors for me at first. Finally, I solved all the errors with googling.
When I run this example example, I do not receive any notification at all
I followed all the steps that were specified in the read me file and the plugin name in the config.xml file, and that’s all, but when I run this sample application, I don’t get any errors and no notifications
Can someone tell me where I was wrong
index.html:
<script type="text/javascript" charset="utf-8" src="cordova-2.7.0.js"></script>
<script type="text/javascript" charset="utf-8" src="LocalNotification.js"></script>
<script type="text/javascript">
document.addEventListener("deviceready", appReady, false);
function appReady() {
if (typeof plugins !== "undefined") {
var now = new Date();
now.setSeconds(now.getSeconds() + 10);
console.log("Alarm Time Set " + now);
plugins.localNotification.add({
date : now,
message : "Phonegap - Boooyyyaaaaah!\r\nUpyoass!",
ticker : "Yeeeaaaaahhhh!!!",
repeatDaily : false,
id : 4
});
}
};
</script>
Alarm Receiver.Java
package com.phonegap.plugin.localnotification;
import java.util.Calendar;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import com.testing.R;
public class AlarmReceiver extends BroadcastReceiver {
public static final String TITLE = "ALARM_TITLE";
public static final String SUBTITLE = "ALARM_SUBTITLE";
public static final String TICKER_TEXT = "ALARM_TICKER";
public static final String NOTIFICATION_ID = "NOTIFICATION_ID";
public static final String HOUR_OF_DAY = "HOUR_OF_DAY";
public static final String MINUTE = "MINUTES";
@Override
public void onReceive(Context context, Intent intent) {
Log.d("AlarmReceiver", "AlarmReceiver invoked!");
final Bundle bundle = intent.getExtras();
final Object systemService = context.getSystemService(Context.NOTIFICATION_SERVICE);
final String tickerText = bundle.getString(TICKER_TEXT);
final String notificationTitle = bundle.getString(TITLE);
final String notificationSubText = bundle.getString(SUBTITLE);
int notificationId = 0;
try {
notificationId = Integer.parseInt(bundle.getString(NOTIFICATION_ID));
} catch (Exception e) {
Log.d("AlarmReceiver", "Unable to process alarm with id: " + bundle.getString(NOTIFICATION_ID));
}
Calendar currentCal = Calendar.getInstance();
int alarmHour = bundle.getInt(HOUR_OF_DAY);
int alarmMin = bundle.getInt(MINUTE);
int currentHour = currentCal.get(Calendar.HOUR_OF_DAY);
int currentMin = currentCal.get(Calendar.MINUTE);
if (currentHour != alarmHour && currentMin != alarmMin) {
Log.d(LocalNotification.PLUGIN_NAME, "AlarmReceiver, ignoring alarm since it is due");
return;
}
final NotificationManager notificationMgr = (NotificationManager) systemService;
final Notification notification = new Notification(R.drawable.ic_launcher, tickerText,
System.currentTimeMillis());
final PendingIntent contentIntent = PendingIntent.getActivity(context, 0, new Intent(), 0);
notification.defaults |= Notification.DEFAULT_SOUND;
notification.vibrate = new long[] { 0, 100, 200, 300 };
notification.setLatestEventInfo(context, notificationTitle, notificationSubText, contentIntent);
notificationMgr.notify(notificationId, notification);
}
}
My Android manifest File:
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.RECORD_VIDEO"/>
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.WRITE_CONTACTS" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.BROADCAST_STICKY" />
<application android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<activity android:configChanges="orientation|keyboardHidden"
android:name=".MyPhoneGapActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<receiver android:name="com.phonegap.plugin.localnotification.AlarmReceiver" >
</receiver>
<receiver android:name="com.phonegap.plugin.localnotification.AlarmRestoreOnBoot" >
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
</application>