19066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* 275279904202357565cf5a1cb11148d01f42b4569Jeff Sharkey * Copyright (C) 2011 The Android Open Source Project 39066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 49066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License"); 59066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * you may not use this file except in compliance with the License. 69066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * You may obtain a copy of the License at 79066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 89066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 99066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Unless required by applicable law or agreed to in writing, software 119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * See the License for the specific language governing permissions and 149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * limitations under the License. 159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1775279904202357565cf5a1cb11148d01f42b4569Jeff Sharkeypackage android.net; 1875279904202357565cf5a1cb11148d01f42b4569Jeff Sharkey 19b52e3e55098c4a6e3dbfe19885895411cfb38911Jeff Sharkeyimport android.net.INetworkStatsSession; 20d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkeyimport android.net.NetworkStats; 2175279904202357565cf5a1cb11148d01f42b4569Jeff Sharkeyimport android.net.NetworkStatsHistory; 221b5a2a96f793211bfbd39aa29cc41031dfa23950Jeff Sharkeyimport android.net.NetworkTemplate; 2375279904202357565cf5a1cb11148d01f42b4569Jeff Sharkey 2475279904202357565cf5a1cb11148d01f42b4569Jeff Sharkey/** {@hide} */ 2575279904202357565cf5a1cb11148d01f42b4569Jeff Sharkeyinterface INetworkStatsService { 2675279904202357565cf5a1cb11148d01f42b4569Jeff Sharkey 27b52e3e55098c4a6e3dbfe19885895411cfb38911Jeff Sharkey /** Start a statistics query session. */ 28b52e3e55098c4a6e3dbfe19885895411cfb38911Jeff Sharkey INetworkStatsSession openSession(); 29d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey 30b52e3e55098c4a6e3dbfe19885895411cfb38911Jeff Sharkey /** Return network layer usage total for traffic that matches template. */ 31b52e3e55098c4a6e3dbfe19885895411cfb38911Jeff Sharkey long getNetworkTotalBytes(in NetworkTemplate template, long start, long end); 329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 33a63ba59260cd1bb3f5c16e395ace45a61f1d4461Jeff Sharkey /** Return data layer snapshot of UID network usage. */ 34a63ba59260cd1bb3f5c16e395ace45a61f1d4461Jeff Sharkey NetworkStats getDataLayerSnapshotForUid(int uid); 35234766a36af6214644fa8205202287084ca9cf93Jeff Sharkey /** Return set of any ifaces associated with mobile networks since boot. */ 36234766a36af6214644fa8205202287084ca9cf93Jeff Sharkey String[] getMobileIfaces(); 37234766a36af6214644fa8205202287084ca9cf93Jeff Sharkey 38a63ba59260cd1bb3f5c16e395ace45a61f1d4461Jeff Sharkey /** Increment data layer count of operations performed for UID and tag. */ 39a63ba59260cd1bb3f5c16e395ace45a61f1d4461Jeff Sharkey void incrementOperationCount(int uid, int tag, int operationCount); 40a63ba59260cd1bb3f5c16e395ace45a61f1d4461Jeff Sharkey 41b5d55e302d2253e4bfb233ea705caf258cdc4cb9Jeff Sharkey /** Mark given UID as being in foreground for stats purposes. */ 42b5d55e302d2253e4bfb233ea705caf258cdc4cb9Jeff Sharkey void setUidForeground(int uid, boolean uidForeground); 43350083e36b9db6062e165954403ef921ff3dfdadJeff Sharkey /** Force update of statistics. */ 44350083e36b9db6062e165954403ef921ff3dfdadJeff Sharkey void forceUpdate(); 45ac3fcb1590e1da21324c13ce237ec48f2bf488bfJeff Sharkey /** Advise persistance threshold; may be overridden internally. */ 46ac3fcb1590e1da21324c13ce237ec48f2bf488bfJeff Sharkey void advisePersistThreshold(long thresholdBytes); 47350083e36b9db6062e165954403ef921ff3dfdadJeff Sharkey 489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project} 49