From 3022ee14a207d41a0d990da5e9a7ecbdcab7a982 Mon Sep 17 00:00:00 2001 From: Jeff Sharkey Date: Tue, 17 Apr 2012 12:23:40 -0700 Subject: [PATCH] Add ALLOW_METERED column to DownloadManager. Also allow isActiveNetworkMetered() to inspect networks without requiring ACCESS_WIFI_STATE. Bug: 3001465 Change-Id: Ibc23577d4ad941e4f93db417be6b046881dcbfb1 --- .../android/server/ConnectivityService.java | 36 ++++++++++++------- 1 file changed, 24 insertions(+), 12 deletions(-) diff --git a/services/java/com/android/server/ConnectivityService.java b/services/java/com/android/server/ConnectivityService.java index 359074a07c..722e312b4e 100644 --- a/services/java/com/android/server/ConnectivityService.java +++ b/services/java/com/android/server/ConnectivityService.java @@ -865,27 +865,39 @@ private NetworkStateTracker makeWimaxStateTracker() { @Override public NetworkQuotaInfo getActiveNetworkQuotaInfo() { enforceAccessPermission(); - final NetworkState state = getNetworkStateUnchecked(mActiveDefaultNetwork); - if (state != null) { - try { - return mPolicyManager.getNetworkQuotaInfo(state); - } catch (RemoteException e) { + + final long token = Binder.clearCallingIdentity(); + try { + final NetworkState state = getNetworkStateUnchecked(mActiveDefaultNetwork); + if (state != null) { + try { + return mPolicyManager.getNetworkQuotaInfo(state); + } catch (RemoteException e) { + } } + return null; + } finally { + Binder.restoreCallingIdentity(token); } - return null; } @Override public boolean isActiveNetworkMetered() { enforceAccessPermission(); - final NetworkState state = getNetworkStateUnchecked(mActiveDefaultNetwork); - if (state != null) { - try { - return mPolicyManager.isNetworkMetered(state); - } catch (RemoteException e) { + + final long token = Binder.clearCallingIdentity(); + try { + final NetworkState state = getNetworkStateUnchecked(mActiveDefaultNetwork); + if (state != null) { + try { + return mPolicyManager.isNetworkMetered(state); + } catch (RemoteException e) { + } } + return false; + } finally { + Binder.restoreCallingIdentity(token); } - return false; } public boolean setRadios(boolean turnOn) {