android - 测试应用程序图标徽章编号是否在 Android 中显示的适当方法是什么?
问题描述
SO中有很多与华为图标徽章相关的线程,例如How to show App Icon Badge Numbers on Huawei,我已经阅读了徽章的官方文档。
我认为官方文档已经足够好了,我只是想知道我们如何自动测试它?
例如,如果团队中的一位工程师错误配置了徽章相关的 SDK 文件,客户的华为手机仍然可以推送通知,但徽章编号可能不显示。
我相信图像分类技术会有所帮助,例如,我们可以通过以下方式自动对其进行测试:
- 安装应用程序并通过 adb shell 命令 + uiautomator登录应用程序
- 返回主屏幕以查看图标
- 从后端服务器推送通知。
- 截屏手机,并使用一些深度学习技术图像分类来验证它是否有徽章号码。
在这些步骤中测试它可能不是最好的方法,我想知道是否有任何本地 API 来获取徽章编号?
解决方案
查找此类信息的最佳方法是查找开源应用程序,例如设置或启动器应用程序:
如果您想验证通知徽章是打开还是关闭,您可以执行以下操作:
Settings.Secure.getInt(context.contentResolver, "notification_badging")
这甚至记录在Settings
类中,但设置名称 ( Settings.Secure.NOTIFICATION_BADGING
) 是隐藏(内部)API 的一部分。但它仍然有效,至少它适用于普通 Android。对于华为设备,您必须自己测试。
获取徽章数量,不知道能不能直接获取。从上面的第二个链接中,您似乎必须创建一个通知侦听器来计算传入的通知。
推荐阅读
- reactjs - 错误:设置 id_rsa 后无法验证第一个证书
- java - 我们不鼓励使用 Maven + Spring 编写 XML 配置吗?
- r - 如何在 R 中自动化栅格处理
- java - AutoCompleteAdapter 不会显示过滤结果
- python - 如何单击按钮以使用 Selenium Python 查看更多值?
- java - 菜单项没有响应
- javascript - How to add data to database with node.js&Mysql from online form?
- python-3.x - 如何从 KivyMD 上的 bottombarApp 中删除空白覆盖
- linux - 如何在解析后不丢失其他列/行的内容的情况下解析特定列或数据?
- android - 我们应该在适配器中使用 Koin Inject 吗?或者我们应该尝试把这个责任交给 Activity/Fragment 和它的 ViewModels?