首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >小部件不适用于Android、华为和Vivo设备

小部件不适用于Android、华为和Vivo设备
EN

Stack Overflow用户
提问于 2022-06-03 17:08:19
回答 1查看 237关注 0票数 1

我开发的应用程序可以将小部件插到主屏幕上,它在大多数设备上都能很好地工作,但在华为和Vivo手机上却不行。

当我通过调用appWidgetManager.requestPinAppWidget()将一个小部件与华为/Vivo设备连接时,它将调用appwidget-providerandroid: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设备,因此他们的默认发射器是错误的.:(

EN

回答 1

Stack Overflow用户

发布于 2022-06-08 21:19:14

这不是解决问题的方法,但我最终以以下方式禁用了使用Vivo和华为默认启动程序的设备的appWidgetManager.requestPinAppWidget()功能:

  1. 添加到您的舱单:

  1. 使用此方法检测当前默认启动程序是否支持小部件固定: 私有静态布尔值isUsingSupportedLauncher(上下文){ PackageManager packageManager = context.getPackageManager();意图=新意图(Intent.ACTION_MAIN);intent.addCategory(Intent.CATEGORY_HOME);String pname =packageManager.resolveActivity(意图,packageManager //华为启动器不支持如果(TextUtils.equals(pname,"com.huawei.android.launcher"))返回false;// Vivo和Nokia启动器不支持小部件固定if (TextUtils.equals(pname,"com.android.launcher3"))返回false;返回true;}

注意:使用第三方发射器的更多精通技术的用户仍然可以享受华为和Vivo设备上的小部件定位功能,其余用户将不得不从发射器本身添加小部件.

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72492999

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档