问题标签 [appwidgetprovider]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1323 浏览

android - Android appWidgetProvider onEnabled 从未在平板电脑上调用过

场景一:

  1. 设备已加载
  2. 我添加第一个小部件
  3. OneX -> 调用 onEnabled | Galaxy Tab -> 不调用 onEnabled。

场景二:

  1. 设备已在屏幕上使用小部件启动。
  2. OneX -> 调用 onEnabled | Galaxy Tab -> Calls onEnabled

但是当用户在屏幕上放置一个时必须调用它(场景 1),否则有什么意义。当然,您不必重新启动设备即可调用 onEnabled。

它很重要,因为我附加了一个警报管理器以每 2 秒更新一次我的小部件:

有一个类似的问题没有有效的解决方案:AppWidgetProvider: not called onEnabled method

无需注册这些意图,这样做也无济于事。

我的问题是为什么 onEnabled 不调用,我该如何调用它。

它在谷歌文档上说:ACTION_APPWIDGET_ENABLED:

当 AppWidget 的实例第一次添加到主机时发送。如果安装了带有此提供程序实例的 AppWidgetHost,则会在启动时发送此广播。

基本上确认它应该在两种情况下都有效

这是触发onEnabled()的意图

在实例化此提供程序的 AppWidget 时调用以响应 ACTION_APPWIDGET_ENABLED 广播。重写此方法以实现您自己的 AppWidget 功能。

它适用于手机而不是平板电脑的事实很奇怪。这是 android 3.2 的问题吗?有解决方法吗?

0 投票
2 回答
1282 浏览

android - AppWidget setFillInIntent 无法处理 setData 或 componentName 中的数据集?

我想从我的应用小部件启动不同的应用程序。小部件是一个项目列表,单击一个项目应该会打开一个应用程序,例如 Google Plus。当按下列表中的项目时,没有任何反应。当我删除 setData 和 setComponentName 时,它​​会弹出一个对话框,询问要使用什么应用程序。不能将数据和组件名与 appWidget 集合上的 PendingIntent 合并吗?

我的 AppWidgetProvider 看起来像这样:

}

StreamsWidgetService 看起来像这样:

当使用没有 fillIntent 的正常活动时,这有效:

我该如何解决这个问题?我做错了什么?

0 投票
2 回答
752 浏览

android - 首次添加 AppWidget 未完成更新

编辑:我安装了我的 app 4.x 设备,没有问题。问题仅存在于 3.x 设备。

当设备上的用户设置发生更改时,我正在尝试手动更新 AppWidget。为此,我使用与此类似的代码:

我可以说我的 AppWidget onUpdate 方法被调用,因为我在代码中记录了一些调试字符串到 logcat。但是 AppWidget 本身不会在屏幕上改变。

有趣的部分来了:如果我旋转我的设备并强制刷新主屏幕(从 PORTRAIT 到 LANDSCAPE,反之亦然),那么最后我的 AppWidget 就会更新。但是旋转设备不会触发调用 onUpdate 方法,因此 AppWidget 必须使用早期更新中提供的 RemoteViews。

有人可以解释我在处理更新时如何强制我的 AppWidget 的主屏幕重绘吗?

我在用<uses-sdk android:minSdkVersion="11" />

我的服务:

0 投票
1 回答
1495 浏览

android - Android 从小部件更改屏幕亮度

我正在尝试从小部件更改屏幕亮度。基本上,我遵循了下一页的建议。 更改屏幕亮度 系统设置 Android

到目前为止,这是我能够做到的。1.我有一个带按钮的主Activity,当我点击按钮时,我可以改变屏幕的亮度。

  1. 我有一个带按钮的小部件。我已经确认从小部件按钮调用 RefreshScreen 类。我从 AppWidgetProvider 调用这个类。问题 屏幕亮度没有变化。当我使用调试模式运行问题时,我收到以下警告。

    10-21 12:20:21.579: W/BackupManagerService(137): dataChanged 但没有参与者 pkg='com.android.providers.settings' uid=10086

    10-21 12:20:21.579: W/InputManagerService(137): 窗口已经聚焦,忽略焦点增益:com.android.internal.view.IInputMethodClient$Stub$Proxy@40f56aa8

我有以下权限集。

我有以下代码来改变亮度。我很抱歉混淆了代码,但我有两个按钮。当亮度按钮改变时,屏幕应该是最亮的。更改音量按钮时,屏幕应该在最暗和最亮之间。

非常感谢任何输入。谢谢你。

0 投票
1 回答
747 浏览

android - 运行时 Android 小部件的 java.lang.NoClassDefFoundError

在运行 Android 2.3.3 及更早版本的 Android 小部件时遇到问题。

当我在屏幕上安装我的小部件时,会打印此错误:

问题是由于编译器没有到达在 StackWidgetProvider 类的 onUpdate 方法中的这一行执行到 StackWidgetService 类的链接:

该小部件适用于其他版本的 Android,如 3.0、4.0 等...

请帮我 :)

0 投票
1 回答
1821 浏览

android - Android小部件,如何在Android API <11中使用notifyAppWidgetViewDataChanged

我想更新我的小部件以兼容 Android 2.3.3 (API 10)。

我的代码有一些问题。

minsdkversion = 10 时无法识别以下方法。

如何在我的 APPwidgetProvider 类中替换它们,以便将我的小部件与 Android 2.3.3、3.0 .... 4.0 一起使用?

0 投票
1 回答
465 浏览

android - Android Widget (AppWidgetProvider) > 'two state' button like a toggle button.. 和 WindowManager

我终于设法用一个按钮创建了一个简单的小部件(1x1 单元格)。在我的情况下(现在)祝酒。这实际上很难做到。小部件的工作方式与普通应用程序不同。

到目前为止,我的所有重要文件的代码:http:
//paste2.org/p/2427468


问题1:

我有一个普通的按钮,有背景。我在那个按钮上有一个@drawable/...xml,它定义了正常和按下状态的不同图像。这很好用。由于小部件不支持切换按钮,我不得不使用“按钮”,但我想要切换按钮的效果。因此,在单击按钮后,按下状态必须固定/冻结!再次单击后,我应该修复/冻结正常状态。你怎么做到这一点?



问题 2:

如果问题 1 有效:我需要对正常状态和按下状态采取不同的操作。我想降低/提高屏幕的亮度。

在我创建的应用程序中,这很有效:

如何在小部件中实现这一点?

我相信我几乎完成了这个小部件,但需要解决这两个问题。

谢谢!

0 投票
2 回答
1490 浏览

android - 从配置活动中获取 appWidgetId 的问题

我正在创建一个带有一些小部件的 Android 应用程序。一切正常,直到我开始创建设置活动...首先,我的代码:

[编辑] 只是想清楚一点:捆绑包(来自intent.getExtras())总是为空......我该怎么做才能纠正它?[/编辑]

活动:

“System.out.println”仅用于调试(文本是葡萄牙语,因为它是我的第一语言)。

无论如何,问题在这里显示:

它总是去其他地方......所以整个事情都没有任何错误。:/

我必须做什么才能工作?我是否必须更改 AndroidManifest.xml 或类似的东西?

谢谢!

PS:嗯...我对Android开发完全陌生...所以,如果有什么奇怪的事情,请告诉我。

0 投票
0 回答
361 浏览

android - (Android) AlarmManager 在错误的时间调用服务 - 多个警报

好吧,我有一个 AppWidget(当然还有一个 AppWidgetProvider)、一个配置设置(用户在其中选择 5 分钟到 2 小时之间的更新率)和一个更新小部件的服务。

正在发生的事情是,如果主屏幕上只有一个 AppWidget,那么一切正常。但是,如果我在主屏幕上放了第二个 AppWidget,它们就会同时开始更新,使用相同的数据(并且是随机数据)等等。

那么,我该怎么做才能纠正呢?

代码,他们去:

SettingsActivity,我开始警报的地方:

WidgetServiceSmall(Service类)的onStartCommand方法:

WidgetProviderSmall(AppWidgetProvider类)的onDeleted方法,报警停止的地方:

WidgetProviderSmall(AppWidgetProvider类)的onDisabled方法,服务停止的地方:

我在 StackOverflow 上的其他帖子的答案中看到了一个代码,用户说要像这样创建 Pen:

代替:

问题是:一旦我像这样创建它,以后如何取消它?

谢谢!

0 投票
1 回答
620 浏览

android - 为什么主屏幕上有隐藏的 appWidget?

从主屏幕删除我的最后一个 appWidget 实例后onDisabledonEnabled无法正常工作。

我将我的小部件注册为广播接收器,主屏幕上没有实例,但广播接收,而且我看到我的日志写在我的 appWidget 核心类中!

卸载我的应用程序并再次安装后,问题解决了,并且onDisabledonEnabled添加(删除)第一个(最后一个)实例后正常工作。

我手动收集了 appWidgetIds 并将其保存在一个文件中,以提供一些更好的方式来访问我所有的小部件 ID,但隐藏的 appWidget 并未从我收集的小部件 ID 中删除,并且还存在于主屏幕中!

问题:

问题是 Android 版本 2.3.4(测试设备)上的错误吗?在这种情况下,解决方案是什么?

代码的重要部分: