我还通过AlarmManager和通知触发了通知 发出声音。
显然,当app在后台时可能会触发警报,我想让用户在按下锁定按钮时取消声音 - 即收听ACTION_SCREEN_OFF
。
因此,我想知道是否有可能启动服务并倾听ACTION_SCREEN_OFF
?
我已经看过Listening for ACTION_SCREEN_OFF但是只有当应用程序位于前台时才能使用BroadCastReceiver的解决方案。正确?
答案 0 :(得分:0)
例如,如果您尝试执行ACTION_SCREEN_OFF,那么您可以在Activity中定义广播接收器,例如启动警报。
public class SomeListener extends BroadcastReceiver
{
@Override
public void onReceive(Context context, Intent intent)
{
//Turn off sounds
}
}
然后在清单中,在使用监听器的活动中提供类似这样的东西。
<intent-filter>
<action android:name="android.hardware.usb.action.ACTION_SCREEN_OFF" />
</intent-filter>
<meta-data android:name="android.hardware.usb.action.ACTION_SCREEN_OFF"
android:resource="@xml/my_filter" />
额外的my_filter类可以提供额外的元数据。在这种情况下,它是对设备的串行或UUID的检查,因此不能在所有USB连接上启动。但你应该能够做类似的事情。
当动作发生时,这应该在你的应用程序中触发监听器,正如我所理解的那样。此功能适用于过去在USB连接上启动应用程序。即使没有首先打开应用程序。