当前位置:网站首页>【开发者必看】【push kit】推送服务典型问题合集3
【开发者必看】【push kit】推送服务典型问题合集3
2022-07-30 17:43:00 【华为开发者论坛】
【问题描述1】
无法获取 Push Token,如何解决?
【解决方案】
1.检查Push推送API权益是否开启。
2.检查AGC控制台应用的对应信息是否正确。
3.EMUI 9.0.0的Push Token返回请以onNewToken返回信息为准,确保在清单文件中配置了对应的服务类
4.清理hms core缓存后重试(找到设置-应用-应用管理-搜索hms core,清理缓存或点击右上角三个点按钮,卸载更新至最新版后重试)
5.卸载重装应用后再重新获取Push Token
【问题描述2】
导致 Push Token 变化的原因有哪些?
【解决方案】
Token会在包括但不限于下述场景中发生变化:
1.应用卸载重装。
2.应用调用注销Token方法。
3.用户恢复出厂设置。
4.清除应用数据,重新进入应用。
注意事项:token是变化的
1.应用不要固定判断Token长度,因为后续长度可变。
2.应用的Token要定期更新(建议应用每次启动的时候都获取Token,如果发现和上次取到的不同,需要将新获取的Token上报到自己的服务器)。
3.请勿使用Token跟踪标记用户。
【问题描述3】
通过端侧方法,修改桌面角标数,当角标数为0时,角标不显示
【解决方案】
private void changeBadge(Application application, int number){ String packageName = application.getPackageName(); Bundle bundle = new Bundle(); bundle.putString("package", packageName); ComponentName launchClassComponent = application.getPackageManager().getLaunchIntentForPackage(packageName).getComponent(); if (launchClassComponent == null) { return; } String launchClassName = launchClassComponent.getClassName(); bundle.putString("class", launchClassName); bundle.putInt("badgenumber", number); try { Bundle result = application.getContentResolver().call(Uri.parse("content://com.huawei.android.launcher.settings/badge/"), "change_badge", null, bundle); Log.i(TAG, "clearBadge result = " + result); } catch (Exception e) { Log.i(TAG, "clearBadge error "); } }
【问题描述4】
通过以下代码,在端侧手动增加消息通知渠道
【解决方案】
@RequiresApi(api = Build.VERSION_CODES.O) private void addNotificationChannel(){ NotificationManager manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); //创建通知渠道实例 //并为它设置属性 //通知渠道的ID,随便写 String id = "my_channel_01"; //用户可以看到的通知渠道的名字,R.string.app_name就是strings.xml文件的参数,自定义一个就好了 CharSequence name = getString(R.string.app_name); //用户可看到的通知描述 String description = getString(R.string.app_name); //构建NotificationChannel实例 NotificationChannel notificationChannel = new NotificationChannel(id, name, NotificationManager.IMPORTANCE_HIGH); //配置通知渠道的属性 notificationChannel.setDescription(description); //设置通知出现时的闪光灯 notificationChannel.enableLights(true); notificationChannel.setLightColor(Color.RED); //设置通知出现时的震动 notificationChannel.enableVibration(true); notificationChannel.setShowBadge(false); notificationChannel.setVibrationPattern(new long[]{100, 200, 300, 400, 500, 400, 300, 200, 100}); //在notificationManager中创建通知渠道 manager.createNotificationChannel(notificationChannel); //蓝色字是个新方法,旧的被api放弃了 Notification notification = new NotificationCompat.Builder(this, id) .setContentTitle("标题") .setContentText("内容666666666666666666666666666") .setWhen(System.currentTimeMillis()) .setSmallIcon(R.drawable.ic_launcher_background) .setLargeIcon(BitmapFactory.decodeResource(getResources(), R.drawable.btn_round_background)) .build(); manager.notify(1, notification); }
欲了解更多更全技术文章,欢迎访问https://developer.huawei.com/consumer/cn/forum/?ha_source=zzh
边栏推荐
- UE5第一人称射击游戏蓝图教程
- Ecplise执行C语言报错:cannot open output file xxx.exe: Permission denied
- C陷阱与缺陷 第7章 可移植性缺陷 7.5 移位运算符
- What is an ultrasonic flaw detector used for?
- Microsoft Office 2019 software download and installation detailed tutorial!
- SQL存储过程详解
- JVM诊断命令jcmd介绍
- fast shell porting
- CMake库搜索函数居然不搜索LD_LIBRARY_PATH
- LayaBox---TypeScript---变量声明
猜你喜欢

weiit新零售小程序如何探索数字化门店的破局之路

JMeter Notes 4 | JMeter Interface Introduction

SQL行列转换

windwons 下GPU环境和pytorch安装

一个 15 年 SAP ABAP 开发人员分享的 SAPGUI 一些个性化设置和实用小技巧试读版

基于MATLAB的电力系统短路故障分析与仿真

【网络工程】A、B、C、D、E类IP地址划分依据和特殊的IP地址

「Redis应用与深度实践笔记」,深得行业人的心,这还不来看看?

Error EPERM operation not permitted, mkdir ‘Dsoftwarenodejsnode_cache_cacach两种解决办法

ERROR 2003 (HY000) Can't connect to MySQL server on 'localhost3306' (10061)Solution
随机推荐
shell快速移植
What ARC does at compile time and runtime
顺通海关查验预约综合管理系统
沃尔沃中国的年中总结,在“安全感”中寻找未来
592. Fraction Addition and Subtraction
超声波探伤仪是做什么用的?
What are the applications of X-rays?
Moralis去中心化Web3应用开发教程
2022年杭电多校第2场 1001 Static Query on Tree(树链剖分+哈希表差分
ARC在编译期和运行期做了什么
数据库系统原理与应用教程(069)—— MySQL 练习题:操作题 95-100(十三):分组查询与聚合函数的使用
linux 下MySQL本地安装mysql - u root - p 无法登入
LayaBox---TypeScript---泛型
论文阅读之《Color Constancy Using CNNs》
C语言向MySQL插入数据
知识蒸馏1:基础原理讲解及yolov5项目实战介绍
Wincc报表教程(SQL数据库的建立,wincc在数据库中保存和查询数据,调用Excel模板把数据保存到指定的位置和打印功能)
数据库系统原理与应用教程(065)—— MySQL 练习题:操作题 62-70(九):分组查询与子查询
知识蒸馏3:YOLOV5项目准备
Excel导入和导出