我有一個通知是通過AlarmManager觸發的,通知還發出聲音 。ACTION_SCREEN_OFF後臺服務觸發器
顯然,當應用程序處於後臺時可能會觸發警報,並且我想讓用戶在按下鎖定按鈕時取消聲音 - 即收聽ACTION_SCREEN_OFF
。
因此,我想知道是否有可能開始服務,並聽取ACTION_SCREEN_OFF
?
我看過Listening for ACTION_SCREEN_OFF,但是隻有在前臺使用BroadCastReceiver纔有解決方案。對?
我有一個通知是通過AlarmManager觸發的,通知還發出聲音 。ACTION_SCREEN_OFF後臺服務觸發器
顯然,當應用程序處於後臺時可能會觸發警報,並且我想讓用戶在按下鎖定按鈕時取消聲音 - 即收聽ACTION_SCREEN_OFF
。
因此,我想知道是否有可能開始服務,並聽取ACTION_SCREEN_OFF
?
我看過Listening for ACTION_SCREEN_OFF,但是隻有在前臺使用BroadCastReceiver纔有解決方案。對?
例如,如果您正在嘗試執行ACTION_SCREEN_OFF,那麼您將在您的活動中定義您的廣播接收器,例如啓動鬧鐘。
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連接上啓動應用程序。即使沒有申請開放。
不,接收器應該在後臺工作。但我相信您需要爲清單中的警報活動添加一個意圖過濾器。我已經爲USB_DEVICE_ATTACHED這樣做了,例如,在過濾後連接設備時啓動應用程序。 –