1

私はAndroidが初めてで、アラームに通知音を追加する必要があります。通知音はどこに置けばいいですか?ここに通知付きのコードがありますが、「NotificationManagerを変数に解決できません」というエラーがあります

アプリが強制的に閉じられました。理由がわかりません。助けてください。ここに猫のログがあります

3683) 10-02 06:03:38.879: E/AndroidRuntime(938): java.lang.reflect.Method.invokeNative(ネイティブ メソッド) 10-02 06:03:38.879: E/AndroidRuntime(938): Java で.lang.reflect.Method.invoke(Method.java:507) 10-02 06:03:38.879: E/AndroidRuntime(938): com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java: 839) 10-02 06:03:38.879: E/AndroidRuntime(938): com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 10-02 06:03:38.879: E/AndroidRuntime( 938): dalvik.system.NativeStart.main(ネイティブ メソッド) 10-02 06:03:43.855: I/Process(938): 信号を送信しています。PID: 938 SIG: 9 android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 10-02 06:03:38.879: E/AndroidRuntime(938): com.android.internal.os.ZygoteInit.main(ZygoteInit.java) :597) 10-02 06:03:38.879: E/AndroidRuntime(938): dalvik.system.NativeStart.main(ネイティブ メソッド) 10-02 06:03:43.855: I/Process(938): 信号を送信しています。PID: 938 SIG: 9 android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 10-02 06:03:38.879: E/AndroidRuntime(938): com.android.internal.os.ZygoteInit.main(ZygoteInit.java) :597) 10-02 06:03:38.879: E/AndroidRuntime(938): dalvik.system.NativeStart.main(ネイティブ メソッド) 10-02 06:03:43.855: I/Process(938): 信号を送信しています。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);
4

5 に答える 5

1

あなたのコードで

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

に変更します

NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
于 2012-10-02T05:57:26.897 に答える
1

コードを次のように変更する必要があります。

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

を取り除くだけです。メソッドの前にgetSystemService()

を使用したため、コンパイラは「NotificationManager」という名前の変数を探しています。その横にオペレーター。

于 2012-10-02T05:55:43.730 に答える
0

あなたはこの仲間を忘れました:

note.setLatestEventInfo(this, "contentTitle", "contentText", pi);
于 2012-10-02T06:28:47.800 に答える
0

必要に応じて、このようにすることができます

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);
于 2012-10-02T06:01:03.447 に答える