我开发的应用程序可以将小部件插到主屏幕上,它在大多数设备上都能很好地工作,但在华为和Vivo手机上却不行。
当我通过调用appWidgetManager.requestPinAppWidget()将一个小部件与华为/Vivo设备连接时,它将调用appwidget-provider的android:configure字段中定义的配置屏幕。一旦我确认了配置,设置就会被正确保存,但是华为/Vivo启动器会显示一个错误,并且不会加载小部件(而且错误与我的应用程序无关!)
我还试图在没有appwidget-provider参数的情况下创建另一个-- android:configure参数,并且它在华为手机上运行得很好(但不是在Vivo!)。但是,Android将在launcher的小部件选择屏幕(即小部件选择器)上显示另一个小部件。如果我使用android:widgetFeatures=hide_from_picker,它将只在Android 28+上工作,而旧设备仍然会看到一个无法配置的“错误”小部件选项(注意:华为手机将忽略这些选项,即使它们是API 28+)。
我可以用任何方法来修复固定在华为手机、Vivo手机或设备上的小部件吗?
更新:目前,当Build.MANUFACTURER.toLowerCase()是"vivo"或"huawei"时,我决定禁用小部件固定功能。
更新2:我用Nova发射器进行了测试,appWidgetManager.requestPinAppWidget()也非常适合华为和Vivo设备,因此他们的默认发射器是错误的.:(
发布于 2022-06-08 21:19:14
这不是解决问题的方法,但我最终以以下方式禁用了使用Vivo和华为默认启动程序的设备的appWidgetManager.requestPinAppWidget()功能:
注意:使用第三方发射器的更多精通技术的用户仍然可以享受华为和Vivo设备上的小部件定位功能,其余用户将不得不从发射器本身添加小部件.
https://stackoverflow.com/questions/72492999
复制相似问题