Android 设置ExactAndAllowHileidle不适用于三星

Android 设置ExactAndAllowHileidle不适用于三星,android,kotlin,Android,Kotlin,我必须每15分钟叫醒一次我的申请。我用这个。它向W2BWakeUpReceiver发送意图,以执行某些事件。 它对小米有效,但对三星无效 为什么它不适用于三星 fun startAlarm() { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { val pi = PendingIntent.getBroadcast(app_context, 0, Intent(action_wake_up), 0)

我必须每15分钟叫醒一次我的申请。我用这个。它向W2BWakeUpReceiver发送意图,以执行某些事件。
它对小米有效,但对三星无效
为什么它不适用于三星

fun startAlarm() {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
        val pi = PendingIntent.getBroadcast(app_context, 0, Intent(action_wake_up), 0)
        alarmManager.setExactAndAllowWhileIdle(RTC_WAKEUP, System.currentTimeMillis() + periodWakeUp, pi)
    }
}
接受者

class W2BWakeUpReceiver : BroadcastReceiver() {
companion object {
    val action_wake_up = "AlarmWakeUpW2B"
}

private val service: W2BService?
    get() = W2BApp.service
private val testTime: Long?
    get() = W2BApp.service?.testTime

override fun onReceive(context: Context?, intent: Intent?) {
    service?.startAlarm()
    val now = Calendar.getInstance().timeInMillis
    if (Repository.selectedDevice?.isConnect == true
        && testTime != null
        && now - testTime!! > 50_000
    ) {
        ControllerThread.getThread(TypeThread.Worker).workInThread {
            service?.restartMeasurement()
        }
    }
}
显示

<receiver android:name=".service.wake_up.W2BWakeUpReceiver">
        <intent-filter>
            <action android:name="AlarmWakeUpW2B" />
        </intent-filter>
</receiver>