Reputation: 35
please help me i'm new to android and i need to add notification sound to my alarms. where can i put the the notification sound? here is my code with notification but with error "NotificationManager cannot be resolved to a variable"
the app force closes now i dont know why please help, here is the log cat
10-02 06:03:38.785: W/dalvikvm(938): threadid=1: thread exiting with uncaught exception (group=0x40015560) 10-02 06:03:38.879: E/AndroidRuntime(938): FATAL EXCEPTION: main 10-02 06:03:38.879: E/AndroidRuntime(938): java.lang.IllegalArgumentException: contentView required: pkg=med.scheduler id=0 notification=Notification(vibrate=default,sound=content://settings/system/alarm_alert,defaults=0x2,flags=0x10) 10-02 06:03:38.879: E/AndroidRuntime(938): at android.os.Parcel.readException(Parcel.java:1326) 10-02 06:03:38.879: E/AndroidRuntime(938): at android.os.Parcel.readException(Parcel.java:1276) 10-02 06:03:38.879: E/AndroidRuntime(938): at android.app.INotificationManager$Stub$Proxy.enqueueNotificationWithTag(INotificationManager.java:274) 10-02 06:03:38.879: E/AndroidRuntime(938): at android.app.NotificationManager.notify(NotificationManager.java:111) 10-02 06:03:38.879: E/AndroidRuntime(938): at android.app.NotificationManager.notify(NotificationManager.java:91) 10-02 06:03:38.879: E/AndroidRuntime(938): at med.scheduler.Enter_med$7.onClick(Enter_med.java:260) 10-02 06:03:38.879: E/AndroidRuntime(938): at android.view.View.performClick(View.java:2485) 10-02 06:03:38.879: E/AndroidRuntime(938): at android.view.View$PerformClick.run(View.java:9080) 10-02 06:03:38.879: E/AndroidRuntime(938): at android.os.Handler.handleCallback(Handler.java:587) 10-02 06:03:38.879: E/AndroidRuntime(938): at android.os.Handler.dispatchMessage(Handler.java:92) 10-02 06:03:38.879: E/AndroidRuntime(938): at android.os.Looper.loop(Looper.java:123) 10-02 06:03:38.879: E/AndroidRuntime(938): at android.app.ActivityThread.main(ActivityThread.java:3683) 10-02 06:03:38.879: E/AndroidRuntime(938): at java.lang.reflect.Method.invokeNative(Native Method) 10-02 06:03:38.879: E/AndroidRuntime(938): at java.lang.reflect.Method.invoke(Method.java:507) 10-02 06:03:38.879: E/AndroidRuntime(938): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 10-02 06:03:38.879: E/AndroidRuntime(938): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 10-02 06:03:38.879: E/AndroidRuntime(938): at dalvik.system.NativeStart.main(Native Method) 10-02 06:03:43.855: I/Process(938): Sending signal. PID: 938 SIG: 9
Intent alarmIntent = new Intent (Enter_med.this, MyAlarmService.class);
NotificationManager manager = (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);
PendingIntent pi = PendingIntent.getActivity(context, 0, alarmIntent, PendingIntent.FLAG_UPDATE_CURRENT);
Notification note = new Notification(R.drawable.ic_launcher, "Alarm", System.currentTimeMillis());
Uri alarmSound = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_ALARM);
if(alarmSound == null){
alarmSound = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_RINGTONE);
if(alarmSound == null){
alarmSound = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
}
}
note.sound = alarmSound;
note.defaults |= Notification.DEFAULT_VIBRATE;
note.flags |= Notification.FLAG_AUTO_CANCEL;
manager.notify(0, note);
//alarm1
PendingIntent pendingAlarmIntent = PendingIntent.getService(Enter_med.this, 0, alarmIntent, PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);
Calendar AlarmCal = Calendar.getInstance();
AlarmCal.setTimeInMillis(System.currentTimeMillis());
AlarmCal.set(Calendar.HOUR_OF_DAY, pHour);
AlarmCal.set(Calendar.MINUTE, pMinute);
AlarmCal.set(Calendar.SECOND, 0);
alarmManager.set(AlarmManager.RTC_WAKEUP, AlarmCal.getTimeInMillis(), pendingAlarmIntent);
Upvotes: 1
Views: 9407
Reputation: 3619
You can also use other solution by using NotificationManagerCompat
. try this code
NotificationManagerCompat mNotifyMgr =
NotificationManagerCompat.from(mCtx);
if (mNotifyMgr != null) {
mNotifyMgr.notify(1, mBuilder.build());
}
where mCtx is context
or you can getApplicationContext()
Upvotes: 0
Reputation: 22064
You forgot this mate:
note.setLatestEventInfo(this, "contentTitle", "contentText", pi);
Upvotes: 0
Reputation: 5554
You need to change your code to :
NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
Just remove the . before the getSystemService()
method.
the compiler is looking for a variable named "NotificationManager" since you used the . operator next to it.
Upvotes: 1
Reputation: 2824
You can do this like this way if you want
String ns = Context.NOTIFICATION_SERVICE;
NotificationManager mNotificationManager = (NotificationManager) getSystemService(ns);
int icon = R.drawable.ic_launcher;
CharSequence tickerText = "Hello";
long when = System.currentTimeMillis();
Notification notification = new Notification(icon, tickerText, when);
Context context = getApplicationContext();
CharSequence contentTitle = "My notification";
CharSequence contentText = "Hello World! " + android_id;
Intent notificationIntent = new Intent(this,
ExpMapLatLongActivity.class);
PendingIntent contentIntent = PendingIntent.getActivity(this, 0,
notificationIntent, 0);
notification.setLatestEventInfo(context, contentTitle, contentText,
contentIntent);
mNotificationManager.notify(HELLO_ID, notification);
Upvotes: 0
Reputation:
In your code
NotificationManager manager = (NotificationManager).getSystemService(Context.NOTIFICATION_SERVICE);
Change it to
NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
Upvotes: 2