测试应用程序图标徽章数字是否显示在 Android 中的适当方法是什么?

What's the appropriate way to test if app icon badge numbers show in Android?

SO里有很多华为图标徽章相关的帖子,比如How to show App Icon Badge Numbers on Huawei, and I have read the official document of Badges

我觉得官方文档已经足够好了,我只是想知道我们如何自动测试它?

例如,如果团队中的一位工程师错误配置了Badge相关的SDK文件,客户的华为phone仍然可以推送通知,但Badge编号可能不显示。

我相信图像分类技术会有所帮助,例如,我们可以通过以下方式自动测试它:

  1. 安装应用程序并通过 adb shell 命令 + uiautomator
  2. 登录应用程序
  3. 返回主屏幕以查看图标
  4. 从后端服务器推送通知。
  5. 截图 phone,并使用一些深度学习技术图像分类来验证上面是否有徽章编号。

在这些步骤中测试它可能不是最好的方法,我想知道是否有任何原生的 API 来获取徽章号码?

查找此类信息的最佳方法是查找开源应用,例如设置或启动器应用:

如果您想验证通知徽章是否打开或关闭,您可以这样做:

Settings.Secure.getInt(context.contentResolver, "notification_badging")

这甚至记录在 Settings class 中,但设置名称 (Settings.Secure.NOTIFICATION_BADGING) 是隐藏(内部)API 的一部分。但它仍然有效,至少它对股票有效 Android。华为设备请自行测试。

徽章数的获取,不知道能不能直接获取。从上面的第二个 link 看来,您似乎必须制作一个通知侦听器来计算传入的通知。