result) {
283 | // result0.success("getAllTags:" + isSuccess);
284 | // }
285 | // });
286 | // }
287 | //
288 | // /**
289 | // * 别名绑定,将某一类型的别名ID绑定至某设备,老的绑定设备信息被覆盖,别名ID和deviceToken是一对一的映射关系
290 | // *
291 | // * @param call
292 | // * @param result0
293 | // */
294 | // public void setAlias(MethodCall call, final Result result0) {
295 | // Log.d(TAG, "setAlias: " + call.arguments);
296 | // String alias = call.arguments();
297 | // mPushAgent.setAlias(alias, "自定义类型", new UTrack.ICallBack() {
298 | // @Override
299 | // public void onMessage(boolean isSuccess, String message) {
300 | // result0.success("setAlias:" + isSuccess);
301 | //
302 | // }
303 | // });
304 | //
305 | // }
306 | //
307 | // /**
308 | // * 别名增加,将某一类型的别名ID绑定至某设备,老的绑定设备信息还在,别名ID和device_token是一对多的映射关系
309 | // *
310 | // * @param call
311 | // * @param result0
312 | // */
313 | // public void addAlias(MethodCall call, final Result result0) {
314 | // Log.d(TAG, "addAlias: " + call.arguments);
315 | //
316 | // String alias = call.arguments();
317 | // mPushAgent.addAlias(alias, "自定义类型", new UTrack.ICallBack() {
318 | // @Override
319 | // public void onMessage(boolean isSuccess, String message) {
320 | // result0.success("addAlias:" + isSuccess);
321 | // }
322 | // });
323 | //
324 | // }
325 | //
326 | // /**
327 | // * 移除别名ID
328 | // *
329 | // * @param call
330 | // * @param result0
331 | // */
332 | // public void deleteAlias(MethodCall call, final Result result0) {
333 | // Log.d(TAG, "deleteAlias:");
334 | // String alias = call.arguments();
335 | // mPushAgent.deleteAlias(alias, "自定义类型", new UTrack.ICallBack() {
336 | // @Override
337 | // public void onMessage(boolean isSuccess, String message) {
338 | // result0.success("deleteAlias:" + isSuccess);
339 | // }
340 | // });
341 | // }
342 | //
343 | //
344 | // /**
345 | // * 如果您的应用在前台,您可以设置不显示通知栏消息。默认情况下,应用在前台是显示通知的。 开发者更改前台通知显示设置后,会根据更改生效
346 | // * 此方法请在mPushAgent.register方法之前调用。
347 | // *
348 | // * @param call
349 | // * @param result
350 | // */
351 | // public void setNotificaitonOnForeground(MethodCall call, Result result) {
352 | // Log.d(TAG, "setNotificaitonOnForeground:");
353 | // boolean isForeground = call.arguments();
354 | // mPushAgent.setNotificaitonOnForeground(isForeground);
355 | // }
356 | //
357 | //
358 | // /**
359 | // * 在PushSDK里,UmengMessageHandler类负责处理消息,包括通知和自定义消息。其中,成员函数getNotification负责定义通知栏样式。
360 | // * 若SDK默认的消息展示样式不符合开发者的需求,可通过覆盖该方法来自定义通知栏展示样式
361 | // * 每当有通知送达时,均会回调getNotification方法,因此可以通过监听此方法来判断通知是否送达。
362 | // * msg.builder_id是服务器下发的消息字段,用来指定通知消息的样式
363 | // *
364 | // * 消息到达时获取自定义参数。重写UmengMessageHandler类中的getNotification(Context context, UMessage msg)方法:
365 | // * 自定义消息
366 | // * for (Map.Entry entry : msg.extra.entrySet()) {
367 | // * Object key = entry.getKey();
368 | // * Object value = entry.getValue();
369 | // * }
370 | // *
371 | // * @param call
372 | // * @param result
373 | // */
374 | //
375 | // UmengMessageHandler messageHandler = new UmengMessageHandler() {
376 | //
377 | // @Override
378 | // public Notification getNotification(Context context, UMessage msg) {
379 | //// result.success(msg.getRaw());
380 | // Log.d(TAG + "Message", msg.getRaw().toString());
381 | //
382 | // switch (msg.builder_id) {
383 | // case 1:
384 | //// Notification.Builder builder = new Notification.Builder(context);
385 | //// 自定义消息样式
386 | //// RemoteViews myNotificationView = new RemoteViews(context.getPackageName(),
387 | //// R.layout.notification_view);
388 | //// myNotificationView.setTextViewText(R.id.notification_title, msg.title);
389 | //// myNotificationView.setTextViewText(R.id.notification_text, msg.text);
390 | //// myNotificationView.setImageViewBitmap(R.id.notification_large_icon,
391 | //// getLargeIcon(context, msg));
392 | //// myNotificationView.setImageViewResource(R.id.notification_small_icon,
393 | //// getSmallIconId(context, msg));
394 | //// builder.setContent(myNotificationView)
395 | //// .setSmallIcon(getSmallIconId(context, msg))
396 | //// .setTicker(msg.ticker)
397 | //// .setAutoCancel(true);
398 | // return null;
399 | // default:
400 | // //默认为0,若填写的builder_id并不存在,也使用默认。
401 | // return super.getNotification(context, msg);
402 | // }
403 | // }
404 | // };
405 | //
406 | //
407 | // /**
408 | // * 开发者可自定义用户点击通知栏时的后续动作。自定义行为的数据放在UMessage.custom字段。
409 | // * 在【友盟+】后台或通过API发送消息时,在“后续动作”中的“自定义行为”中输入相应的值或代码即可实现。
410 | // * 若开发者需要处理自定义行为,则可以重写方法dealWithCustomAction()。其中自定义行为的内容,存放在UMessage.custom中
411 | // *
412 | // * 消息点击时获取自定义参数。通过重写UmengNotificationClickHandler类中的launchApp、openUrl、
413 | // * openActivity、dealWithCustomAction方法,均可以从msg.extra中获取自定义参数:
414 | // *
415 | // * 进入Activity时获取自定义参数。若您使用Push SDK的默认设置处理通知消息,则从服务端传的自定义参数将会通过Intent传递给相应的Activity
416 | // * 您可以在相应的Activity中的onResume()方法内通过以下代码获得传递的参数
417 | // *
418 | // * Bundle bun = getIntent().getExtras();
419 | // * if (bun != null) {
420 | // * Set keySet = bun.keySet();
421 | // * for (String key : keySet) {
422 | // * String value = bun.getString(key);
423 | // * ...
424 | // * }
425 | // * }
426 | // * 注意:如果在Activity中获取自定义参数,则需要将该Activity的launchMode设置为android:launchMode=”singleTask”,并重写onNewIntent方法:
427 | // *
428 | // * @param call
429 | // * @param result
430 | // * @Override protected void onNewIntent(Intent intent) {
431 | // * super.onNewIntent(intent);
432 | // * setIntent(intent);
433 | // * }
434 | // *
435 | // * 自定义消息不是通知,默认不会被SDK展示到通知栏上,【友盟+】推送仅负责将消息透传给SDK,其内容和展示形式是则完全可以由开发者自己定义。
436 | // * 若开发者要使用自定义消息,则需重在自定义Application类的onCreate() 中重写dealWithCustomMessage()方法,
437 | // * 自定义消息的内容存放在UMessage.custom字段里。代码如下所示:
438 | // * UmengMessageHandler messageHandler = new UmengMessageHandler(){
439 | // * @Override public void dealWithCustomMessage(final Context context, final UMessage msg) {
440 | // * new Handler(getMainLooper()).post(new Runnable() {
441 | // * @Override public void run() {
442 | // * // 对于自定义消息,PushSDK默认只统计送达。若开发者需要统计点击和忽略,则需手动调用统计方法。
443 | // * boolean isClickOrDismissed = true;
444 | // * if(isClickOrDismissed) {
445 | // * //自定义消息的点击统计
446 | // * UTrack.getInstance(getApplicationContext()).trackMsgClick(msg);
447 | // * } else {
448 | // * //自定义消息的忽略统计
449 | // * UTrack.getInstance(getApplicationContext()).trackMsgDismissed(msg);
450 | // * }
451 | // * Toast.makeText(context, msg.custom, Toast.LENGTH_LONG).show();
452 | // * }
453 | // * });
454 | // * }
455 | // * };
456 | // * mPushAgent.setMessageHandler(messageHandler);
457 | // */
458 | //
459 | // UmengNotificationClickHandler notificationClickHandler = new UmengNotificationClickHandler() {
460 | // @Override
461 | // public void dealWithCustomAction(Context context, UMessage msg) {
462 | //// result.success(msg.getRaw());
463 | // Log.d(TAG + "handleMessage", msg.getRaw().toString());
464 | //
465 | // }
466 | //
467 | //
468 | // @Override
469 | // public void launchApp(Context context, UMessage msg) {
470 | // super.launchApp(context, msg);
471 | // }
472 | //
473 | // @Override
474 | // public void openUrl(Context context, UMessage msg) {
475 | // super.openUrl(context, msg);
476 | // }
477 | //
478 | // @Override
479 | // public void openActivity(Context context, UMessage msg) {
480 | // super.openActivity(context, msg);
481 | // }
482 | // };
483 | //
484 | //
485 | //// }
486 | //
487 | // /**
488 | // * 设置通知栏显示数量
489 | // * 通知栏可以设置最多显示通知的条数,当通知栏显示数目大于设置值,此时再有新通知到达时,会把旧的一条通知隐藏。
490 | // * 参数number可以设置为0~10之间任意整数。当参数为0时,表示不合并通知;
491 | // * 当该方法存在多次调用时,一最后一次调用时的设置为准。
492 | // *
493 | // * @param call
494 | // * @param result
495 | // */
496 | // public void setDisplayNotificationNumber(MethodCall call, Result result) {
497 | // Log.d(TAG, "setDisplayNotificationNumber:");
498 | // int number = call.arguments();
499 | // mPushAgent.setDisplayNotificationNumber(number);
500 | // }
501 | //
502 | //
503 | // /**
504 | // * 通知响铃、震动及呼吸灯控制
505 | // * 响铃、
506 | // * 1、服务端控制:通过服务端推送状态来设置通知到达后响铃、震动、呼吸灯的状态;
507 | // * 2、客户端控制:关闭服务端推送控制能力,由客户端控制通知到达后是否响铃、震动以及呼吸灯是否点亮;
508 | // * 3、客户端控制:客户端禁止;
509 | // *
510 | // * @param call
511 | // * @param result
512 | // */
513 | // public void setNotificationPlaySound(MethodCall call, Result result) {
514 | // Log.d(TAG, "setNotificationPlaySound:");
515 | // int type = call.arguments();
516 | // if (type == 1) {
517 | // mPushAgent.setNotificationPlaySound(MsgConstant.NOTIFICATION_PLAY_SERVER);
518 | // } else if (type == 2) {
519 | // mPushAgent.setNotificationPlaySound(MsgConstant.NOTIFICATION_PLAY_SDK_ENABLE);
520 | // } else {
521 | // mPushAgent.setNotificationPlaySound(MsgConstant.NOTIFICATION_PLAY_SDK_DISABLE);
522 | // }
523 | //
524 | // }
525 | //
526 | // /**
527 | // * 通知响铃、震动及呼吸灯控制
528 | // * 呼吸灯
529 | // * 1、服务端控制:通过服务端推送状态来设置通知到达后响铃、震动、呼吸灯的状态;
530 | // * 2、客户端控制:关闭服务端推送控制能力,由客户端控制通知到达后是否响铃、震动以及呼吸灯是否点亮;
531 | // * 3、客户端控制:客户端禁止;
532 | // *
533 | // * @param call
534 | // * @param result
535 | // */
536 | // public void setNotificationLights(MethodCall call, Result result) {
537 | // Log.d(TAG, "setNotificationLights:");
538 | // int type = call.arguments();
539 | // if (type == 1) {
540 | // mPushAgent.setNotificationPlayLights(MsgConstant.NOTIFICATION_PLAY_SERVER);
541 | // } else if (type == 2) {
542 | // mPushAgent.setNotificationPlayLights(MsgConstant.NOTIFICATION_PLAY_SDK_ENABLE);
543 | // } else {
544 | // mPushAgent.setNotificationPlayLights(MsgConstant.NOTIFICATION_PLAY_SDK_DISABLE);
545 | // }
546 | //
547 | // }
548 | //
549 | // /**
550 | // * 通知响铃、震动及呼吸灯控制
551 | // * 震动:
552 | // * 1、服务端控制:通过服务端推送状态来设置通知到达后响铃、震动、呼吸灯的状态;
553 | // * 2、客户端控制:关闭服务端推送控制能力,由客户端控制通知到达后是否响铃、震动以及呼吸灯是否点亮;
554 | // * 3、客户端控制:客户端禁止;
555 | // *
556 | // * @param call
557 | // * @param result
558 | // */
559 | // public void setNotificationPlayVibrate(MethodCall call, Result result) {
560 | // Log.d(TAG, "setNotificationPlayVibrate:");
561 | // int type = call.arguments();
562 | // if (type == 1) {
563 | // mPushAgent.setNotificationPlayVibrate(MsgConstant.NOTIFICATION_PLAY_SERVER);
564 | // } else if (type == 2) {
565 | // mPushAgent.setNotificationPlayVibrate(MsgConstant.NOTIFICATION_PLAY_SDK_ENABLE);
566 | // } else {
567 | // mPushAgent.setNotificationPlayVibrate(MsgConstant.NOTIFICATION_PLAY_SDK_DISABLE);
568 | // }
569 | // }
570 | //
571 | //
572 | // /**
573 | // * 通知免打扰模式
574 | // * 为免过度打扰用户,SDK默认在“23:00”到“7:00”之间收到通知消息时不响铃,不振动,不闪灯。
575 | // * 如果需要改变默认的静音时间,可以使用以下接口
576 | // *
577 | // * 可以通过下面的设置,来关闭免打扰模式:
578 | // * mPushAgent.setNoDisturbMode(0, 0, 0, 0);
579 | // *
580 | // * @param call
581 | // * @param result
582 | // */
583 | // public void setNoDisturbMode(MethodCall call, Result result) {
584 | // Log.d(TAG, "setNoDisturbMode:");
585 | // HashMap map = call.arguments();
586 | // int startHour = (int) map.get("startHour");
587 | // int startMinute = (int) map.get("startMinute");
588 | // int endHour = (int) map.get("endHour");
589 | // int endMinute = (int) map.get("endMinute");
590 | // mPushAgent.setNoDisturbMode(startHour, startMinute, endHour, endMinute);
591 | // }
592 | //
593 | //
594 | // /**
595 | // * 通知免打扰模式
596 | // * 默认情况下,同一台设备在1分钟内收到同一个应用的多条通知时,不会重复提醒,同时在通知栏里新的通知会替换掉旧的通知。
597 | // * 可以通过如下方法来设置冷却时间:
598 | // *
599 | // * @param call
600 | // * @param result
601 | // */
602 | // public void setMuteDurationSeconds(MethodCall call, Result result) {
603 | // Log.d(TAG, "setMuteDurationSeconds:");
604 | // int seconds = call.arguments();
605 | // mPushAgent.setMuteDurationSeconds(seconds);
606 | // }
607 | //
608 | // /**
609 | // * 自定义资源包名
610 | // * Android Studio开发工具是基于gradle的配置方式,资源文件的包和应用程序的包是可以分开的,
611 | // * 为了正确的找到资源包名,为开发者提供了自定义的设置资源包的接口。当资源包名和应用程序包名不一致时,调用设置资源包名的接口:
612 | // *
613 | // * @param call
614 | // * @param result
615 | // */
616 | // public void setResourcePackageName(MethodCall call, Result result) {
617 | // Log.d(TAG, "setResourcePackageName:");
618 | // String packageName = call.arguments();
619 | // mPushAgent.setResourcePackageName(packageName);
620 | // }
621 | //
622 | // /**
623 | // * 应用内消息控制
624 | // * 应用内消息默认为线上模式,如需使用测试模式,
625 | // *
626 | // * @param call
627 | // * @param result
628 | // */
629 | // public void setInAppMsgDebugMode(MethodCall call, Result result) {
630 | // Log.d(TAG, "setInAppMsgDebugMode :" + call.arguments);
631 | // boolean debug = (boolean) call.arguments;
632 | // InAppMessageManager.getInstance(registrar.context()).setInAppMsgDebugMode(debug);
633 | // }
634 | //
635 | //
636 | // /**
637 | // * 全屏消息
638 | // * 全屏消息是App首次启动打开进入的页面,以全屏图片的形式展示
639 | // *
640 | // * @param call
641 | // * @param result 1、在主工程的values目录下的styles.xml文件中添加如下代码,
642 | // * 并在drawable目录下放置一张名为umeng\_push\_default\_splash\_bg的默认图片(推荐1920*1080分辨率,也可以根据适配需要引用xml资源)。
643 | // *
646 | // *
647 | // * 2、新建一个Activity,继承自UmengSplashMessageActivity,重写onCustomPretreatment方法,并设置全屏消息默认跳转Activity的路径,例如:
648 | // * public class SplashTestActivity extends UmengSplashMessageActivity {
649 | // * @Override public boolean onCustomPretreatment() {
650 | // * InAppMessageManager mInAppMessageManager = InAppMessageManager.getInstance(this);
651 | // * //设置应用内消息为Debug模式
652 | // * mInAppMessageManager.setInAppMsgDebugMode(true);
653 | // * //参数为Activity的完整包路径,下面仅是示例代码,请按实际需求填写
654 | // * mInAppMessageManager.setMainActivityPath("com.umeng.message.example.MainActivity");
655 | // * return super.onCustomPretreatment();
656 | // * }
657 | // * }
658 | // * 说明:onCustomPretreatment方法默认的返回值为false,返回false则会走全屏消息的默认逻辑。
659 | // * 若开发者在全屏消息的Activity里有动态申请权限的需求,则可以在onCustomPretreatment内进行处理,并return true,则全屏消息逻辑不会继续执行
660 | // *
661 | // * 3、在主工程的AndroidManifest.xml中的标签下注册Activity,并将其配置为App首次启动打开的Activity,
662 | // * theme设置为步骤1所写的Theme_Umeng_Push_Splash,例如:
663 | // *
667 | // *
668 | // *
669 | // *
670 | // *
671 | // *
672 | // *
673 | // *
674 | // * 说明:
675 | // *
676 | // * 生产模式请求服务器的最小间隔是30分钟,测试模式的最小间隔是1秒。
677 | // * 全屏消息默认的逻辑为显示2s默认图片,若在2s内请求到全屏消息,则展示全屏消息,否则就跳转到开发者设置的页面。
678 | // * 全屏消息的图片会自动缓存,并在有新消息到来时,删除旧消息的缓存。
679 | // */
680 | // public void setSplashMessage(MethodCall call, Result result) {
681 | // Log.d(TAG, "setSplashMessage:");
682 | // }
683 | //
684 | //
685 | // /**
686 | // * 插屏消息
687 | // * 插屏消息是在App页面之上弹出的图片或文本消息。插屏消息分为三种类型:插屏、自定义插屏和纯文本。
688 | // *
689 | // * 说明:
690 | // *
691 | // * label是插屏消息的标签,用来标识该消息。
692 | // * 客户端需先调用showCardMessage,把label发送到服务器,之后U-Push后台【展示位置】才会出现可选label。
693 | // * 以label为单位,生产模式请求服务器的最小间隔是30分钟,测试模式的最小间隔是1秒。
694 | // * 插屏消息的图片会自动缓存,并在有新消息到来时,删除旧消息的缓存。
695 | // * 注意:安装到设备上后,每个版本(versionCode)的App最多打10个标签。
696 | // *
697 | // * 自定义插屏
698 | // * 自定义插屏允许开发者来控制插屏的展示样式。若要使用自定义插屏样式,则需在工程中新建一个命名为umeng_custom_card_message.xml的布局文件,
699 | // * 开发者可以随意修改布局(ImageView和两个Button的id不能改变)。例如:
700 | // *
701 | // *
707 | // *
708 | // *
713 | // *
714 | // *
718 | // *
719 | // *
724 | // *
725 | // *
732 | // *
733 | // *
734 | // *
740 | // *
741 | // *
742 | // *
743 | // *
744 | // *
745 | // *
746 | // * 纯文本
747 | // *
748 | // * 纯文本插屏字体大小可以由开发者控制,单位为sp,默认为18、16、16,可以使用以下方法设置(在showCardMessage之前调用)
749 | // * InAppMessageManager.getInstance(Context context).setPlainTextSize(int titleTextSize, int contentTextSize, int buttonTextSize);
750 | // *
751 | // * @param call
752 | // * @param result
753 | // */
754 | // public void showCardMessage(MethodCall call, Result result) {
755 | // Log.d(TAG, "showCardMessage:");
756 | // InAppMessageManager.getInstance(registrar.context()).showCardMessage(registrar.activity(), "main",
757 | // new IUmengInAppMsgCloseCallback() {
758 | // @Override
759 | // public void onClose() {
760 | // //插屏消息关闭时,会回调该方法
761 | // Log.i(TAG, "card message close");
762 | //
763 | // }
764 | //
765 | // });
766 | // }
767 | //
768 | // /**
769 | // * 检查集成配置文件
770 | // * 为了便于开发者更好的集成配置文件,我们提供了对于AndroidManifest配置文件的检查工具,可以自行检查开发者的配置问题。SDK默认是不检查集成配置文件的。
771 | // *
772 | // * @param call
773 | // * @param result
774 | // */
775 | // public void setPushCheck(MethodCall call, Result result) {
776 | // Log.d(TAG, "setPushCheck :" + call.arguments);
777 | // boolean check = (boolean) call.arguments;
778 | // mPushAgent.setPushCheck(check);
779 | //
780 | // }
781 | //
782 | //
783 | // /**
784 | // * 关闭推送
785 | // *
786 | // * @param call
787 | // * @param result
788 | // */
789 | // public void stopPush(MethodCall call, Result result) {
790 | // Log.d(TAG, "stopPush:");
791 | // mPushAgent.disable(new IUmengCallback() {
792 | // @Override
793 | // public void onSuccess() {
794 | //// callbackMap.put("stopPush","onSuccess");
795 | // }
796 | //
797 | // @Override
798 | // public void onFailure(String s, String s1) {
799 | // }
800 | // });
801 | //
802 | // }
803 | //
804 | //
805 | // /**
806 | // * 若调用关闭推送后,想要再次开启推送
807 | // *
808 | // * @param call
809 | // * @param result
810 | // */
811 | // public void openPush(MethodCall call, final Result result) {
812 | // Log.d(TAG, "openPush:");
813 | // mPushAgent.enable(new IUmengCallback() {
814 | // @Override
815 | // public void onSuccess() {
816 | // result.success("openPush:success");
817 | // }
818 | //
819 | // @Override
820 | // public void onFailure(String s, String s1) {
821 | // result.success("openPush:failure" + s + s1);
822 | // }
823 | // });
824 | //
825 | // }
826 | //
827 | // @Override
828 | // public void onListen(Object arguments, EventChannel.EventSink events) {
829 | //
830 | // }
831 | //
832 | // @Override
833 | // public void onCancel(Object arguments) {
834 | //
835 | // }
836 | }
837 |
--------------------------------------------------------------------------------
/android/src/main/java/com/studyyoun/flutter_fai_umeng/MeizuReceiver.java:
--------------------------------------------------------------------------------
1 | package com.studyyoun.flutter_fai_umeng;
2 |
3 | import org.android.agoo.mezu.MeizuPushReceiver;
4 |
5 | /**
6 | * Created by Maker on 2020/6/20.
7 | * Description:
8 | */
9 | public class MeizuReceiver extends MeizuPushReceiver {
10 | }
11 |
--------------------------------------------------------------------------------
/android/src/main/java/com/studyyoun/flutter_fai_umeng/MessageChannelItem.java:
--------------------------------------------------------------------------------
1 | package com.studyyoun.flutter_fai_umeng;
2 |
3 | import android.app.Activity;
4 | import android.app.Notification;
5 | import android.content.Context;
6 | import android.os.Handler;
7 | import android.os.Looper;
8 |
9 | import com.umeng.commonsdk.UMConfigure;
10 | import com.umeng.message.IUmengCallback;
11 | import com.umeng.message.IUmengRegisterCallback;
12 | import com.umeng.message.MsgConstant;
13 | import com.umeng.message.PushAgent;
14 | import com.umeng.message.UTrack;
15 | import com.umeng.message.UmengMessageHandler;
16 | import com.umeng.message.UmengNotificationClickHandler;
17 | import com.umeng.message.common.inter.ITagManager;
18 | import com.umeng.message.entity.UMessage;
19 | import com.umeng.message.inapp.IUmengInAppMsgCloseCallback;
20 | import com.umeng.message.inapp.InAppMessageManager;
21 | import com.umeng.message.tag.TagManager;
22 |
23 | import org.android.agoo.huawei.HuaWeiRegister;
24 | import org.android.agoo.mezu.MeizuRegister;
25 | import org.android.agoo.oppo.OppoRegister;
26 | import org.android.agoo.vivo.VivoRegister;
27 | import org.android.agoo.xiaomi.MiPushRegistar;
28 |
29 | import java.util.ArrayList;
30 | import java.util.HashMap;
31 | import java.util.HashSet;
32 | import java.util.List;
33 | import java.util.Map;
34 | import java.util.Set;
35 |
36 | import io.flutter.Log;
37 | import io.flutter.app.FlutterApplication;
38 | import io.flutter.plugin.common.BasicMessageChannel;
39 | import io.flutter.plugin.common.BinaryMessenger;
40 | import io.flutter.plugin.common.MethodCall;
41 | import io.flutter.plugin.common.MethodChannel;
42 | import io.flutter.plugin.common.StandardMessageCodec;
43 |
44 | import static android.os.Looper.getMainLooper;
45 |
46 | /**
47 | * 创建人: $(USER)
48 | * 创建时间:$(DATE)
49 | * 页面说明:
50 | * 功能性修改记录:
51 | */
52 | public class MessageChannelItem extends FlutterApplication {
53 | private String LOGTAG = MessageChannelItem.class.getSimpleName();
54 | private BasicMessageChannel