Android 有没有办法处理小部件/服务中的关键事件?

Android 有没有办法处理小部件/服务中的关键事件?,android,android-widget,media,android-service,Android,Android Widget,Media,Android Service,我想在我的应用程序小部件中处理音量增大和音量减小按键事件。 它确实应该发生在应用程序小部件或服务中,而不是在活动中(应该显示主屏幕) 但据我所知,似乎不可能通过应用程序小部件或服务与用户做出反应,因此我无法获取keyEvents 因此,我的问题是,如果我错了,有可能获得关键事件,或者可能使活动不可见?如果“小部件”是指“应用程序小部件”,那么,不,你不能从应用程序小部件响应关键事件。我发现了一个窍门。这不是最好的,但我可以用它 与分配主题有关 android:theme="@android:s

我想在我的应用程序小部件中处理
音量增大
音量减小
按键事件。 它确实应该发生在
应用程序小部件
或服务中,而不是在活动中(应该显示主屏幕)

但据我所知,似乎不可能通过应用程序小部件或服务与用户做出反应,因此我无法获取keyEvents


因此,我的问题是,如果我错了,有可能获得关键事件,或者可能使活动不可见?

如果“小部件”是指“应用程序小部件”,那么,不,你不能从应用程序小部件响应关键事件。

我发现了一个窍门。这不是最好的,但我可以用它

与分配主题有关

 android:theme="@android:style/Theme.Dialog" 

在Android清单中,可以有一个看起来像对话框或透明的活动。因此,主屏幕是可见的,在活动中,我可以获得keyEvents


虽然在活动运行期间,用户不可能与主屏幕交互,但在我的情况下,这并不是必需的。

@tschob:是的,我真希望谷歌能为“应用程序小部件”想出另一个名字,而不是让我们经常怀疑“小部件”是否意味着类似于
TextView
或者“widget”真正的意思是“appwidget”。。。
 android:theme="@android:style/Theme.Translucent.NoTitleBar"