Pb Flores
Pb Flores

Reputation: 35

android: NotificationManager cannot be resolved to a variable

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

Answers (5)

Yohanes AI
Yohanes AI

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

Carnal
Carnal

Reputation: 22064

You forgot this mate:

note.setLatestEventInfo(this, "contentTitle", "contentText", pi);

Upvotes: 0

midhunhk
midhunhk

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

Chinmoy Debnath
Chinmoy Debnath

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

user948620
user948620

Reputation:

In your code

NotificationManager manager = (NotificationManager).getSystemService(Context.NOTIFICATION_SERVICE);

Change it to

NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);

Upvotes: 2

Related Questions