From b9471063dd0da6054e8f84b98961cb8748240500 Mon Sep 17 00:00:00 2001 From: junyulai Date: Mon, 18 Nov 2019 18:10:39 +0800 Subject: [PATCH] [SP02] Add provider interfaces to system API This change contains a base class that allows external modules to implement a custom network statistics provider. And a callback interface that allows the implementation to signal the system. These interfaces will be used in the follow-up changes that implement the functionality. Test: atest FrameworksNetTests CtsUsageStatsTestCases Test: m doc-comment-check-docs Bug: 130855321 Change-Id: Ib23377c8b9cef02bc32253462b068fd10734d21a --- .../provider/INetworkStatsProvider.aidl | 28 +++++++++++++++++ .../INetworkStatsProviderCallback.aidl | 31 +++++++++++++++++++ 2 files changed, 59 insertions(+) create mode 100644 core/java/android/net/netstats/provider/INetworkStatsProvider.aidl create mode 100644 core/java/android/net/netstats/provider/INetworkStatsProviderCallback.aidl diff --git a/core/java/android/net/netstats/provider/INetworkStatsProvider.aidl b/core/java/android/net/netstats/provider/INetworkStatsProvider.aidl new file mode 100644 index 0000000000..55b3d4edb1 --- /dev/null +++ b/core/java/android/net/netstats/provider/INetworkStatsProvider.aidl @@ -0,0 +1,28 @@ +/* + * Copyright (C) 2020 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.net.netstats.provider; + +/** + * Interface for NetworkStatsService to query network statistics and set data limits. + * + * @hide + */ +oneway interface INetworkStatsProvider { + void requestStatsUpdate(int token); + void setLimit(String iface, long quotaBytes); + void setAlert(long quotaBytes); +} diff --git a/core/java/android/net/netstats/provider/INetworkStatsProviderCallback.aidl b/core/java/android/net/netstats/provider/INetworkStatsProviderCallback.aidl new file mode 100644 index 0000000000..3ea9318f10 --- /dev/null +++ b/core/java/android/net/netstats/provider/INetworkStatsProviderCallback.aidl @@ -0,0 +1,31 @@ +/* + * Copyright (C) 2020 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.net.netstats.provider; + +import android.net.NetworkStats; + +/** + * Interface for implementor of {@link INetworkStatsProviderCallback} to push events + * such as network statistics update or notify limit reached. + * @hide + */ +oneway interface INetworkStatsProviderCallback { + void onStatsUpdated(int token, in NetworkStats ifaceStats, in NetworkStats uidStats); + void onAlertReached(); + void onLimitReached(); + void unregister(); +}