1d5cdd597b895a48ffa9a8e39f8a2504cd9b905c4Jeff Sharkey/* 2d5cdd597b895a48ffa9a8e39f8a2504cd9b905c4Jeff Sharkey * Copyright (C) 2011 The Android Open Source Project 3d5cdd597b895a48ffa9a8e39f8a2504cd9b905c4Jeff Sharkey * 4d5cdd597b895a48ffa9a8e39f8a2504cd9b905c4Jeff Sharkey * Licensed under the Apache License, Version 2.0 (the "License"); 5d5cdd597b895a48ffa9a8e39f8a2504cd9b905c4Jeff Sharkey * you may not use this file except in compliance with the License. 6d5cdd597b895a48ffa9a8e39f8a2504cd9b905c4Jeff Sharkey * You may obtain a copy of the License at 7d5cdd597b895a48ffa9a8e39f8a2504cd9b905c4Jeff Sharkey * 8d5cdd597b895a48ffa9a8e39f8a2504cd9b905c4Jeff Sharkey * http://www.apache.org/licenses/LICENSE-2.0 9d5cdd597b895a48ffa9a8e39f8a2504cd9b905c4Jeff Sharkey * 10d5cdd597b895a48ffa9a8e39f8a2504cd9b905c4Jeff Sharkey * Unless required by applicable law or agreed to in writing, software 11d5cdd597b895a48ffa9a8e39f8a2504cd9b905c4Jeff Sharkey * distributed under the License is distributed on an "AS IS" BASIS, 12d5cdd597b895a48ffa9a8e39f8a2504cd9b905c4Jeff Sharkey * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13d5cdd597b895a48ffa9a8e39f8a2504cd9b905c4Jeff Sharkey * See the License for the specific language governing permissions and 14d5cdd597b895a48ffa9a8e39f8a2504cd9b905c4Jeff Sharkey * limitations under the License. 15d5cdd597b895a48ffa9a8e39f8a2504cd9b905c4Jeff Sharkey */ 16d5cdd597b895a48ffa9a8e39f8a2504cd9b905c4Jeff Sharkey 17d5cdd597b895a48ffa9a8e39f8a2504cd9b905c4Jeff Sharkeypackage android.net; 18d5cdd597b895a48ffa9a8e39f8a2504cd9b905c4Jeff Sharkey 19c006f1aec15454782c35e028ad64d79a5c161cc1Jeff Sharkeyimport android.net.INetworkPolicyListener; 2021c9c45e5caf62b935354b74392fb40c4bf18529Jeff Sharkeyimport android.net.NetworkPolicy; 21f0ceede8fff5df24e5c98701d81c2b71eb138aa9Jeff Sharkeyimport android.net.NetworkQuotaInfo; 22f0ceede8fff5df24e5c98701d81c2b71eb138aa9Jeff Sharkeyimport android.net.NetworkState; 2341ff7ec82422a5b6d00892afdb3232bc0e53d851Jeff Sharkeyimport android.net.NetworkTemplate; 24c006f1aec15454782c35e028ad64d79a5c161cc1Jeff Sharkey 25d5cdd597b895a48ffa9a8e39f8a2504cd9b905c4Jeff Sharkey/** 26d5cdd597b895a48ffa9a8e39f8a2504cd9b905c4Jeff Sharkey * Interface that creates and modifies network policy rules. 27d5cdd597b895a48ffa9a8e39f8a2504cd9b905c4Jeff Sharkey * 28d5cdd597b895a48ffa9a8e39f8a2504cd9b905c4Jeff Sharkey * {@hide} 29d5cdd597b895a48ffa9a8e39f8a2504cd9b905c4Jeff Sharkey */ 30d5cdd597b895a48ffa9a8e39f8a2504cd9b905c4Jeff Sharkeyinterface INetworkPolicyManager { 31d5cdd597b895a48ffa9a8e39f8a2504cd9b905c4Jeff Sharkey 32f0ceede8fff5df24e5c98701d81c2b71eb138aa9Jeff Sharkey /** Control UID policies. */ 33d0c6ccbafdebc73d03cf3cd47f02f9f6c78a69ffJeff Sharkey void setUidPolicy(int uid, int policy); 34be7c50e0a14e91330ce13161bc14a33d34ff6acaDianne Hackborn void addUidPolicy(int uid, int policy); 35be7c50e0a14e91330ce13161bc14a33d34ff6acaDianne Hackborn void removeUidPolicy(int uid, int policy); 36d0c6ccbafdebc73d03cf3cd47f02f9f6c78a69ffJeff Sharkey int getUidPolicy(int uid); 37d0c6ccbafdebc73d03cf3cd47f02f9f6c78a69ffJeff Sharkey int[] getUidsWithPolicy(int policy); 38d5cdd597b895a48ffa9a8e39f8a2504cd9b905c4Jeff Sharkey 399599cc5f21152860af9d18015b1398b50743da76Jeff Sharkey boolean isUidForeground(int uid); 409599cc5f21152860af9d18015b1398b50743da76Jeff Sharkey 41be7c50e0a14e91330ce13161bc14a33d34ff6acaDianne Hackborn int[] getPowerSaveAppIdWhitelist(); 42be7c50e0a14e91330ce13161bc14a33d34ff6acaDianne Hackborn 43c006f1aec15454782c35e028ad64d79a5c161cc1Jeff Sharkey void registerListener(INetworkPolicyListener listener); 44c006f1aec15454782c35e028ad64d79a5c161cc1Jeff Sharkey void unregisterListener(INetworkPolicyListener listener); 45c006f1aec15454782c35e028ad64d79a5c161cc1Jeff Sharkey 46f0ceede8fff5df24e5c98701d81c2b71eb138aa9Jeff Sharkey /** Control network policies atomically. */ 4722c055e6424e0e9579711545d8f4800c0f796db8Jeff Sharkey void setNetworkPolicies(in NetworkPolicy[] policies); 4822c055e6424e0e9579711545d8f4800c0f796db8Jeff Sharkey NetworkPolicy[] getNetworkPolicies(); 49d5cdd597b895a48ffa9a8e39f8a2504cd9b905c4Jeff Sharkey 50f0ceede8fff5df24e5c98701d81c2b71eb138aa9Jeff Sharkey /** Snooze limit on policy matching given template. */ 510e2e5f8b564bebd5798c9fa387fbff96429ab5d2Jeff Sharkey void snoozeLimit(in NetworkTemplate template); 5241ff7ec82422a5b6d00892afdb3232bc0e53d851Jeff Sharkey 53f0ceede8fff5df24e5c98701d81c2b71eb138aa9Jeff Sharkey /** Control if background data is restricted system-wide. */ 544664500de0c1b270bce4991a400ab439ff2ef77bJeff Sharkey void setRestrictBackground(boolean restrictBackground); 554664500de0c1b270bce4991a400ab439ff2ef77bJeff Sharkey boolean getRestrictBackground(); 564664500de0c1b270bce4991a400ab439ff2ef77bJeff Sharkey 57f0ceede8fff5df24e5c98701d81c2b71eb138aa9Jeff Sharkey NetworkQuotaInfo getNetworkQuotaInfo(in NetworkState state); 589f7cbf0e50bcb7e9163b23524814003ba8784732Jeff Sharkey boolean isNetworkMetered(in NetworkState state); 59f0ceede8fff5df24e5c98701d81c2b71eb138aa9Jeff Sharkey 60d5cdd597b895a48ffa9a8e39f8a2504cd9b905c4Jeff Sharkey} 61