• 로그인
  • 장바구니에 상품이 없습니다.

home2 게시판 Flutter 게시판 notification2 알림 안울림

notification2 알림 안울림

5 글 보임 - 1 에서 5 까지 (총 5 중에서)
  • 글쓴이
  • #106359

    이승연
    참가자
    안녕하세요 showNotification()은 되는데 showNotification2()는 안되네요....
    구글링 해서 막 다 찾아봐서 android 어쩌고 xml 사진 보시면 드래그 쳐져 있는거 추가해보라고 해서 했는데도 안되고
    
    
    var iosSetting = IOSInitializationSettings(.....이건
    var iosSetting = DarwinInitializationSettings(
    var iosDetails = IOSNotificationDetails(..... 이건
    var iosDetails = DarwinNotificationDetails
    
    뭐 이렇게 바꿔보라고 해서 바꿨는데 
    애초에 flutter_local_notifications: ^9.1.5 버전이라 
    
    DarwinInitializationSettings, 
    DarwinNotificationDetails
    
    이 메서드들은 인식을 못하더라구요 어떻게 하나요...
    
    
    E/MethodChannel#dexterous.com/flutter/local_notifications( 6849): Failed to handle method call
    E/MethodChannel#dexterous.com/flutter/local_notifications( 6849): java.lang.SecurityException: Caller com.example.instagram needs to hold android.permission.SCHEDULE_EXACT_ALARM or android.permission.USE_EXACT_ALARM to set exact alarms.
    E/MethodChannel#dexterous.com/flutter/local_notifications( 6849): 	at android.os.Parcel.createExceptionOrNull(Parcel.java:3057)
    E/MethodChannel#dexterous.com/flutter/local_notifications( 6849): 	at android.os.Parcel.createException(Parcel.java:3041)
    E/MethodChannel#dexterous.com/flutter/local_notifications( 6849): 	at android.os.Parcel.readException(Parcel.java:3024)
    E/MethodChannel#dexterous.com/flutter/local_notifications( 6849): 	at android.os.Parcel.readException(Parcel.java:2966)
    E/MethodChannel#dexterous.com/flutter/local_notifications( 6849): 	at android.app.IAlarmManager$Stub$Proxy.set(IAlarmManager.java:311)
    E/MethodChannel#dexterous.com/flutter/local_notifications( 6849): 	at android.app.AlarmManager.setImpl(AlarmManager.java:1084)
    E/MethodChannel#dexterous.com/flutter/local_notifications( 6849): 	at android.app.AlarmManager.setImpl(AlarmManager.java:1044)
    E/MethodChannel#dexterous.com/flutter/local_notifications( 6849): 	at android.app.AlarmManager.setExactAndAllowWhileIdle(AlarmManager.java:1312)
    E/MethodChannel#dexterous.com/flutter/local_notifications( 6849): 	at androidx.core.app.AlarmManagerCompat$Api23Impl.setExactAndAllowWhileIdle(AlarmManagerCompat.java:271)
    E/MethodChannel#dexterous.com/flutter/local_notifications( 6849): 	at androidx.core.app.AlarmManagerCompat.setExactAndAllowWhileIdle(AlarmManagerCompat.java:228)
    E/MethodChannel#dexterous.com/flutter/local_notifications( 6849): 	at com.dexterous.flutterlocalnotifications.FlutterLocalNotificationsPlugin.zonedScheduleNotification(FlutterLocalNotificationsPlugin.java:452)
    E/MethodChannel#dexterous.com/flutter/local_notifications( 6849): 	at com.dexterous.flutterlocalnotifications.FlutterLocalNotificationsPlugin.zonedSchedule(FlutterLocalNotificationsPlugin.java:1367)
    E/MethodChannel#dexterous.com/flutter/local_notifications( 6849): 	at com.dexterous.flutterlocalnotifications.FlutterLocalNotificationsPlugin.onMethodCall(FlutterLocalNotificationsPlugin.java:1251)
    E/MethodChannel#dexterous.com/flutter/local_notifications( 6849): 	at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(MethodChannel.java:267)
    E/MethodChannel#dexterous.com/flutter/local_notifications( 6849): 	at io.flutter.embedding.engine.dart.DartMessenger.invokeHandler(DartMessenger.java:295)
    E/MethodChannel#dexterous.com/flutter/local_notifications( 6849): 	at io.flutter.embedding.engine.dart.DartMessenger.lambda$dispatchMessageToQueue$0$io-flutter-embedding-engine-dart-DartMessenger(DartMessenger.java:322)
    E/MethodChannel#dexterous.com/flutter/local_notifications( 6849): 	at io.flutter.embedding.engine.dart.DartMessenger$$ExternalSyntheticLambda0.run(Unknown Source:12)
    E/MethodChannel#dexterous.com/flutter/local_notifications( 6849): 	at android.os.Handler.handleCallback(Handler.java:958)
    E/MethodChannel#dexterous.com/flutter/local_notifications( 6849): 	at android.os.Handler.dispatchMessage(Handler.java:99)
    E/MethodChannel#dexterous.com/flutter/local_notifications( 6849): 	at android.os.Looper.loopOnce(Looper.java:205)
    E/MethodChannel#dexterous.com/flutter/local_notifications( 6849): 	at android.os.Looper.loop(Looper.java:294)
    E/MethodChannel#dexterous.com/flutter/local_notifications( 6849): 	at android.app.ActivityThread.main(ActivityThread.java:8177)
    E/MethodChannel#dexterous.com/flutter/local_notifications( 6849): 	at java.lang.reflect.Method.invoke(Native Method)
    E/MethodChannel#dexterous.com/flutter/local_notifications( 6849): 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:552)
    E/MethodChannel#dexterous.com/flutter/local_notifications( 6849): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:971)
    E/MethodChannel#dexterous.com/flutter/local_notifications( 6849): Caused by: android.os.RemoteException: Remote stack trace:
    E/MethodChannel#dexterous.com/flutter/local_notifications( 6849): 	at com.android.server.alarm.AlarmManagerService$5.set(AlarmManagerService.java:2981)
    E/MethodChannel#dexterous.com/flutter/local_notifications( 6849): 	at android.app.IAlarmManager$Stub.onTransact(IAlarmManager.java:181)
    E/MethodChannel#dexterous.com/flutter/local_notifications( 6849): 	at android.os.Binder.execTransactInternal(Binder.java:1339)
    E/MethodChannel#dexterous.com/flutter/local_notifications( 6849): 	at android.os.Binder.execTransact(Binder.java:1275)
    E/MethodChannel#dexterous.com/flutter/local_notifications( 6849): 
    D/EGL_emulation( 6849): app_time_stats: avg=648.34ms min=11.67ms max=5514.90ms count=10
    E/flutter ( 6849): [ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: PlatformException(error, Caller com.example.instagram needs to hold android.permission.SCHEDULE_EXACT_ALARM or android.permission.USE_EXACT_ALARM to set exact alarms., null, java.lang.SecurityException: Caller com.example.instagram needs to hold android.permission.SCHEDULE_EXACT_ALARM or android.permission.USE_EXACT_ALARM to set exact alarms.
    E/flutter ( 6849): 	at android.os.Parcel.createExceptionOrNull(Parcel.java:3057)
    E/flutter ( 6849): 	at android.os.Parcel.createException(Parcel.java:3041)
    E/flutter ( 6849): 	at android.os.Parcel.readException(Parcel.java:3024)
    E/flutter ( 6849): 	at android.os.Parcel.readException(Parcel.java:2966)
    E/flutter ( 6849): 	at android.app.IAlarmManager$Stub$Proxy.set(IAlarmManager.java:311)
    E/flutter ( 6849): 	at android.app.AlarmManager.setImpl(AlarmManager.java:1084)
    E/flutter ( 6849): 	at android.app.AlarmManager.setImpl(AlarmManager.java:1044)
    E/flutter ( 6849): 	at android.app.AlarmManager.setExactAndAllowWhileIdle(AlarmManager.java:1312)
    E/flutter ( 6849): 	at androidx.core.app.AlarmManagerCompat$Api23Impl.setExactAndAllowWhileIdle(AlarmManagerCompat.java:271)
    E/flutter ( 6849): 	at androidx.core.app.AlarmManagerCompat.setExactAndAllowWhileIdle(AlarmManagerCompat.java:228)
    E/flutter ( 6849): 	at com.dexterous.flutterlocalnotifications.FlutterLocalNotificationsPlugin.zonedScheduleNotification(FlutterLocalNotificationsPlugin.java:452)
    E/flutter ( 6849): 	at com.dexterous.flutterlocalnotifications.FlutterLocalNotificationsPlugin.zonedSchedule(FlutterLocalNotificationsPlugin.java:1367)
    E/flutter ( 6849): 	at com.dexterous.flutterlocalnotifications.FlutterLocalNotificationsPlugin.onMethodCall(FlutterLocalNotificationsPlugin.java:1251)
    E/flutter ( 6849): 	at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(MethodChannel.java:267)
    E/flutter ( 6849): 	at io.flutter.embedding.engine.dart.DartMessenger.invokeHandler(DartMessenger.java:295)
    E/flutter ( 6849): 	at io.flutter.embedding.engine.dart.DartMessenger.lambda$dispatchMessageToQueue$0$io-flutter-embedding-engine-dart-DartMessenger(DartMessenger.java:322)
    E/flutter ( 6849): 	at io.flutter.embedding.engine.dart.DartMessenger$$ExternalSyntheticLambda0.run(Unknown Source:12)
    E/flutter ( 6849): 	at android.os.Handler.handleCallback(Handler.java:958)
    E/flutter ( 6849): 	at android.os.Handler.dispatchMessage(Handler.java:99)
    E/flutter ( 6849): 	at android.os.Looper.loopOnce(Looper.java:205)
    E/flutter ( 6849): 	at android.os.Looper.loop(Looper.java:294)
    E/flutter ( 6849): 	at android.app.ActivityThread.main(ActivityThread.java:8177)
    E/flutter ( 6849): 	at java.lang.reflect.Method.invoke(Native Method)
    E/flutter ( 6849): 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:552)
    E/flutter ( 6849): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:971)
    E/flutter ( 6849): Caused by: android.os.RemoteException: Remote stack trace:
    E/flutter ( 6849): 	at com.android.server.alarm.AlarmManagerService$5.set(AlarmManagerService.java:2981)
    E/flutter ( 6849): 	at android.app.IAlarmManager$Stub.onTransact(IAlarmManager.java:181)
    E/flutter ( 6849): 	at android.os.Binder.execTransactInternal(Binder.java:1339)
    E/flutter ( 6849): 	at android.os.Binder.execTransact(Binder.java:1275)
    E/flutter ( 6849): 
    E/flutter ( 6849): )
    E/flutter ( 6849): #0      StandardMethodCodec.decodeEnvelope (package:flutter/src/services/message_codecs.dart:651:7)
    E/flutter ( 6849): #1      MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:322:18)
    E/flutter ( 6849): <asynchronous suspension>
    E/flutter ( 6849): #2      AndroidFlutterLocalNotificationsPlugin.zonedSchedule (package:flutter_local_notifications/src/platform_flutter_local_notifications.dart:155:5)
    E/flutter ( 6849): <asynchronous suspension>
    E/flutter ( 6849): #3      FlutterLocalNotificationsPlugin.zonedSchedule (package:flutter_local_notifications/src/flutter_local_notifications_plugin.dart:352:7)
    E/flutter ( 6849): <asynchronous suspension>
    E/flutter ( 6849): 
    pubspecandroidxmlnotificationnotification2
    
    #106377

    codingapple
    키 마스터
    https://codingapple.com/forums/topic/local-notification-%ec%95%8c%eb%a6%bc-%ec%a3%bc%eb%8a%94-%eb%b2%95-%eb%b2%84%ea%b7%b8%ea%b4%80%eb%a0%a8-%ec%a7%88%eb%ac%b8-%ec%9e%85%eb%8b%88%eb%8b%a4/
    이거한번 따라해봅시다
    #106430

    이승연
    참가자
    따라했는데 제가 잘못한건가요? 
    notification.dart와 오류 남깁니다
    
    showNotification()이 아닌 showNotification2()가 안된다는 점 다시 한번 강조드립니다
    
    
    import 'package:flutter/material.dart';
    import 'package:flutter_local_notifications/flutter_local_notifications.dart';
    import 'package:flutter_timezone/flutter_timezone.dart';
    import 'package:timezone/data/latest_all.dart' as tz;
    import 'package:timezone/timezone.dart' as tz;
    final notifications = FlutterLocalNotificationsPlugin();
    //1. 앱로드시 실행할 기본설정
    initNotification(context) async {
      //안드로이드용 아이콘파일 이름
      var androidSetting = AndroidInitializationSettings('app_icon');
      //ios에서 앱 로드시 유저에게 권한요청하려면
      var iosSetting = IOSInitializationSettings(
        requestAlertPermission: true,
        requestBadgePermission: true,
        requestSoundPermission: true,
      );
      var initializationSettings = InitializationSettings(
          android: androidSetting,
          iOS: iosSetting
      );
      await notifications.initialize(
        initializationSettings,
        //알림 누를때 함수실행하고 싶으면
        //onSelectNotification: 함수명추가
      );
    }
    //2. 이 함수 원하는 곳에서 실행하면 알림 뜸
    showNotification() async {
      var androidDetails = AndroidNotificationDetails(
        '유니크한 알림 채널 ID',
        '알림종류 설명',
        priority: Priority.high,
        importance: Importance.max,
        color: Color.fromARGB(255, 255, 0, 0),
      );
      var iosDetails = IOSNotificationDetails();
      // 알림 id, 제목, 내용 맘대로 채우기
      notifications.show(
          1,
          '제목1',
          '내용1',
          NotificationDetails(android: androidDetails, iOS: iosDetails)
      );
    }
    showNotification2() async {
      var androidDetails = AndroidNotificationDetails(
        '유니크한 알림 채널 ID',
        '알림종류 설명',
        priority: Priority.high,
        importance: Importance.max,
        color: Color.fromARGB(255, 255, 0, 0),
      );
      var iosDetails = IOSNotificationDetails();
      // 알림 id, 제목, 내용 맘대로 채우기
      notifications.zonedSchedule(
          2,
          '제목2',
          '내용2',
          tz.TZDateTime.now(tz.local).add(Duration(seconds: 5)),
          NotificationDetails(android: androidDetails, iOS: iosDetails),
        androidAllowWhileIdle: true,
          uiLocalNotificationDateInterpretation:
          UILocalNotificationDateInterpretation.absoluteTime
      );
    }
    -------------------------------------------------------------------------------------------------
    
    D/EGL_emulation( 8228): app_time_stats: avg=80.75ms min=9.00ms max=649.48ms count=17
    E/flutter ( 8228): [ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: LateInitializationError: Field '_local@414310200' has not been initialized.
    E/flutter ( 8228): #0      _local (package:timezone/src/env.dart)
    E/flutter ( 8228): #1      local (package:timezone/src/env.dart:28:23)
    E/flutter ( 8228): #2      showNotification2 (package:instagram/notification.dart:61:28)
    E/flutter ( 8228): #3      _MyAppState.build.<anonymous closure> (package:instagram/main.dart:106:84)
    E/flutter ( 8228): #4      _InkResponseState.handleTap (package:flutter/src/material/ink_well.dart:1183:21)
    E/flutter ( 8228): #5      GestureRecognizer.invokeCallback (package:flutter/src/gestures/recognizer.dart:275:24)
    E/flutter ( 8228): #6      TapGestureRecognizer.handleTapUp (package:flutter/src/gestures/tap.dart:652:11)
    E/flutter ( 8228): #7      BaseTapGestureRecognizer._checkUp (package:flutter/src/gestures/tap.dart:309:5)
    E/flutter ( 8228): #8      BaseTapGestureRecognizer.handlePrimaryPointer (package:flutter/src/gestures/tap.dart:242:7)
    E/flutter ( 8228): #9      PrimaryPointerGestureRecognizer.handleEvent (package:flutter/src/gestures/recognizer.dart:630:9)
    E/flutter ( 8228): #10     PointerRouter._dispatch (package:flutter/src/gestures/pointer_router.dart:98:12)
    E/flutter ( 8228): #11     PointerRouter._dispatchEventToRoutes.<anonymous closure> (package:flutter/src/gestures/pointer_router.dart:143:9)
    E/flutter ( 8228): #12     _LinkedHashMapMixin.forEach (dart:collection-patch/compact_hash.dart:633:13)
    E/flutter ( 8228): #13     PointerRouter._dispatchEventToRoutes (package:flutter/src/gestures/pointer_router.dart:141:18)
    E/flutter ( 8228): #14     PointerRouter.route (package:flutter/src/gestures/pointer_router.dart:127:7)
    E/flutter ( 8228): #15     GestureBinding.handleEvent (package:flutter/src/gestures/binding.dart:488:19)
    E/flutter ( 8228): #16     GestureBinding.dispatchEvent (package:flutter/src/gestures/binding.dart:468:22)
    E/flutter ( 8228): #17     RendererBinding.dispatchEvent (package:flutter/src/rendering/binding.dart:439:11)
    E/flutter ( 8228): #18     GestureBinding._handlePointerEventImmediately (package:flutter/src/gestures/binding.dart:413:7)
    E/flutter ( 8228): #19     GestureBinding.handlePointerEvent (package:flutter/src/gestures/binding.dart:376:5)
    E/flutter ( 8228): #20     GestureBinding._flushPointerEventQueue (package:flutter/src/gestures/binding.dart:323:7)
    E/flutter ( 8228): #21     GestureBinding._handlePointerDataPacket (package:flutter/src/gestures/binding.dart:292:9)
    E/flutter ( 8228): #22     _invoke1 (dart:ui/hooks.dart:328:13)
    E/flutter ( 8228): #23     PlatformDispatcher._dispatchPointerDataPacket (dart:ui/platform_dispatcher.dart:410:7)
    E/flutter ( 8228): #24     _dispatchPointerDataPacket (dart:ui/hooks.dart:262:31)
    E/flutter ( 8228): 
    D/EGL_emulation( 8228): app_time_stats: avg=502.53ms min=86.28ms max=918.78ms count=2
    D/ProfileInstaller( 8228): Installing profile for com.example.instagram
    
    
    
    
    
    		
    	
    #106466

    codingapple
    키 마스터
    https://github.com/dart-lang/sdk/issues/46259
    main() 함수정의 안에 tz.initializeTimeZones(); 추가해봅시다
    #106513

    이승연
    참가자
    감사합니다 또 오류가 뜨긴 했었는데
    
    AndroidManifest.xml에 
    
    <uses-permission android:name="android.permission.USE_EXACT_ALARM"
    tools:ignore="ExactAlarm" />
    
    추가하니까 해결 됐습니다.
    
5 글 보임 - 1 에서 5 까지 (총 5 중에서)
  • 답변은 로그인 후 가능합니다.

About

현재 월 700명 신규수강중입니다.

  (09:00~20:00) 빠른 상담은 카톡 플러스친구 코딩애플 (링크)
  admin@codingapple.com
  이용약관
ⓒ Codingapple, 강의 예제, 영상 복제 금지
top

© Codingapple, All rights reserved. 슈퍼로켓 에듀케이션 / 서울특별시 강동구 고덕로 19길 30 / 사업자등록번호 : 212-26-14752 온라인 교육학원업 / 통신판매업신고번호 : 제 2017-서울강동-0002 호 / 개인정보관리자 : 박종흠