OSDN Git Service

Throttle number of sound trigger operations / day
authorPhilip P. Moltmann <moltmann@google.com>
Sat, 10 Mar 2018 04:22:58 +0000 (20:22 -0800)
committerPhilip P. Moltmann <moltmann@google.com>
Tue, 20 Mar 2018 20:57:14 +0000 (13:57 -0700)
commit7e25b3d9155343c6ee227499a5c29f42ae9d791c
tree57a43329eea462739fd412431c548bfd3a44a1d1
parent18e3eb816887156f40def1c14db434ddde9ec245
Throttle number of sound trigger operations / day

It is not clear when the day should start. Further a day might have
25 hours in the case of daylight savings time.
Hence a day in this case is the last 24 hours, not a calendar day.

Keeping track of the time of each operation might waste memory as we
don't need that much precision.

Hence keep track how many operations were performed in the last 24
hours in buckets of hours. If the total count reaches a maximum suppress
any further operations.

The maximum is configurable via global settings. It can be updated
by apps that have the appropriate permissions. Hence if the default
value turns out to be incorrect, it can be adjusted after release.

This does not throttle based on battery state as it is better to
completely unload the sound model to not even have a detection event.

Test: atest SoundTriggerDetectionServiceTests (separate CL)
      atest android.provider.SettingsBackupTest
Bug: 73829108
Change-Id: Ied8570b60b61b6a055bd2576d1502c1b36424efa
core/proto/android/providers/settings.proto
core/tests/coretests/src/android/provider/SettingsBackupTest.java
packages/SettingsProvider/res/values/defaults.xml
packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java
packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java
services/voiceinteraction/java/com/android/server/soundtrigger/SoundTriggerService.java