Search in sources :

Example 41 with NetworkTemplate

use of android.net.NetworkTemplate in project android_frameworks_base by DirtyUnicorns.

the class NetworkStatsManager method querySummaryForUser.

/**
     * Query network usage statistics summaries. Result is summarised data usage for all uids
     * belonging to calling user. Result is a single Bucket aggregated over time, state and uid.
     * This means the bucket's start and end timestamp are going to be the same as the 'startTime'
     * and 'endTime' parameters, state is going to be {@link NetworkStats.Bucket#STATE_ALL} and uid
     * {@link NetworkStats.Bucket#UID_ALL}.
     *
     * @param networkType As defined in {@link ConnectivityManager}, e.g.
     *            {@link ConnectivityManager#TYPE_MOBILE}, {@link ConnectivityManager#TYPE_WIFI}
     *            etc.
     * @param subscriberId If applicable, the subscriber id of the network interface.
     * @param startTime Start of period. Defined in terms of "Unix time", see
     *            {@link java.lang.System#currentTimeMillis}.
     * @param endTime End of period. Defined in terms of "Unix time", see
     *            {@link java.lang.System#currentTimeMillis}.
     * @return Bucket object or null if permissions are insufficient or error happened during
     *         statistics collection.
     */
public Bucket querySummaryForUser(int networkType, String subscriberId, long startTime, long endTime) throws SecurityException, RemoteException {
    NetworkTemplate template;
    try {
        template = createTemplate(networkType, subscriberId);
    } catch (IllegalArgumentException e) {
        if (DBG)
            Log.e(TAG, "Cannot create template", e);
        return null;
    }
    NetworkStats stats;
    stats = new NetworkStats(mContext, template, startTime, endTime);
    stats.startSummaryEnumeration();
    stats.close();
    return stats.getSummaryAggregate();
}
Also used : NetworkTemplate(android.net.NetworkTemplate)

Example 42 with NetworkTemplate

use of android.net.NetworkTemplate in project android_frameworks_base by DirtyUnicorns.

the class NetworkStatsManager method queryDetails.

/**
     * Query network usage statistics details. Result filtered to include only uids belonging to
     * calling user. Result is aggregated over state but not aggregated over time or uid. This means
     * buckets' start and end timestamps are going to be between 'startTime' and 'endTime'
     * parameters. State is going to be {@link NetworkStats.Bucket#STATE_ALL}, uid will vary,
     * tag {@link NetworkStats.Bucket#TAG_NONE} and roaming is going to be
     * {@link NetworkStats.Bucket#ROAMING_ALL}.
     * <p>Only includes buckets that atomically occur in the inclusive time range. Doesn't
     * interpolate across partial buckets. Since bucket length is in the order of hours, this
     * method cannot be used to measure data usage on a fine grained time scale.
     *
     * @param networkType As defined in {@link ConnectivityManager}, e.g.
     *            {@link ConnectivityManager#TYPE_MOBILE}, {@link ConnectivityManager#TYPE_WIFI}
     *            etc.
     * @param subscriberId If applicable, the subscriber id of the network interface.
     * @param startTime Start of period. Defined in terms of "Unix time", see
     *            {@link java.lang.System#currentTimeMillis}.
     * @param endTime End of period. Defined in terms of "Unix time", see
     *            {@link java.lang.System#currentTimeMillis}.
     * @return Statistics object or null if permissions are insufficient or error happened during
     *         statistics collection.
     */
public NetworkStats queryDetails(int networkType, String subscriberId, long startTime, long endTime) throws SecurityException, RemoteException {
    NetworkTemplate template;
    try {
        template = createTemplate(networkType, subscriberId);
    } catch (IllegalArgumentException e) {
        if (DBG)
            Log.e(TAG, "Cannot create template", e);
        return null;
    }
    NetworkStats result;
    result = new NetworkStats(mContext, template, startTime, endTime);
    result.startUserUidEnumeration();
    return result;
}
Also used : NetworkTemplate(android.net.NetworkTemplate)

Example 43 with NetworkTemplate

use of android.net.NetworkTemplate in project android_frameworks_base by DirtyUnicorns.

the class NetworkStatsManager method querySummary.

/**
     * Query network usage statistics summaries. Result filtered to include only uids belonging to
     * calling user. Result is aggregated over time, hence all buckets will have the same start and
     * end timestamps. Not aggregated over state or uid. This means buckets' start and end
     * timestamps are going to be the same as the 'startTime' and 'endTime' parameters.
     * State and uid are going to vary, and tag is going to be the same.
     *
     * @param networkType As defined in {@link ConnectivityManager}, e.g.
     *            {@link ConnectivityManager#TYPE_MOBILE}, {@link ConnectivityManager#TYPE_WIFI}
     *            etc.
     * @param subscriberId If applicable, the subscriber id of the network interface.
     * @param startTime Start of period. Defined in terms of "Unix time", see
     *            {@link java.lang.System#currentTimeMillis}.
     * @param endTime End of period. Defined in terms of "Unix time", see
     *            {@link java.lang.System#currentTimeMillis}.
     * @return Statistics object or null if permissions are insufficient or error happened during
     *         statistics collection.
     */
public NetworkStats querySummary(int networkType, String subscriberId, long startTime, long endTime) throws SecurityException, RemoteException {
    NetworkTemplate template;
    try {
        template = createTemplate(networkType, subscriberId);
    } catch (IllegalArgumentException e) {
        if (DBG)
            Log.e(TAG, "Cannot create template", e);
        return null;
    }
    NetworkStats result;
    result = new NetworkStats(mContext, template, startTime, endTime);
    result.startSummaryEnumeration();
    return result;
}
Also used : NetworkTemplate(android.net.NetworkTemplate)

Example 44 with NetworkTemplate

use of android.net.NetworkTemplate in project android_frameworks_base by DirtyUnicorns.

the class NetworkPolicyEditor method setPolicyMetered.

public void setPolicyMetered(NetworkTemplate template, boolean metered) {
    boolean modified = false;
    NetworkPolicy policy = getPolicy(template);
    if (metered) {
        if (policy == null) {
            policy = buildDefaultPolicy(template);
            policy.metered = true;
            policy.inferred = false;
            mPolicies.add(policy);
            modified = true;
        } else if (!policy.metered) {
            policy.metered = true;
            policy.inferred = false;
            modified = true;
        }
    } else {
        if (policy == null) {
        // ignore when policy doesn't exist
        } else if (policy.metered) {
            policy.metered = false;
            policy.inferred = false;
            modified = true;
        }
    }
    // Remove legacy unquoted policies while we're here
    final NetworkTemplate unquoted = buildUnquotedNetworkTemplate(template);
    final NetworkPolicy unquotedPolicy = getPolicy(unquoted);
    if (unquotedPolicy != null) {
        mPolicies.remove(unquotedPolicy);
        modified = true;
    }
    if (modified)
        writeAsync();
}
Also used : NetworkTemplate(android.net.NetworkTemplate) NetworkPolicy(android.net.NetworkPolicy)

Example 45 with NetworkTemplate

use of android.net.NetworkTemplate in project android_frameworks_base by AOSPA.

the class NetworkPolicyEditor method setPolicyMetered.

public void setPolicyMetered(NetworkTemplate template, boolean metered) {
    boolean modified = false;
    NetworkPolicy policy = getPolicy(template);
    if (metered) {
        if (policy == null) {
            policy = buildDefaultPolicy(template);
            policy.metered = true;
            policy.inferred = false;
            mPolicies.add(policy);
            modified = true;
        } else if (!policy.metered) {
            policy.metered = true;
            policy.inferred = false;
            modified = true;
        }
    } else {
        if (policy == null) {
        // ignore when policy doesn't exist
        } else if (policy.metered) {
            policy.metered = false;
            policy.inferred = false;
            modified = true;
        }
    }
    // Remove legacy unquoted policies while we're here
    final NetworkTemplate unquoted = buildUnquotedNetworkTemplate(template);
    final NetworkPolicy unquotedPolicy = getPolicy(unquoted);
    if (unquotedPolicy != null) {
        mPolicies.remove(unquotedPolicy);
        modified = true;
    }
    if (modified)
        writeAsync();
}
Also used : NetworkTemplate(android.net.NetworkTemplate) NetworkPolicy(android.net.NetworkPolicy)

Aggregations

NetworkTemplate (android.net.NetworkTemplate)111 NetworkPolicy (android.net.NetworkPolicy)33 RemoteException (android.os.RemoteException)21 NetworkPolicyManager.uidRulesToString (android.net.NetworkPolicyManager.uidRulesToString)15 NetworkStats (android.net.NetworkStats)12 IOException (java.io.IOException)12 AlertDialog (android.app.AlertDialog)6 Dialog (android.app.Dialog)6 DialogInterface (android.content.DialogInterface)6 NetworkIdentity (android.net.NetworkIdentity)6 Time (android.text.format.Time)6 NtpTrustedTime (android.util.NtpTrustedTime)6 TrustedTime (android.util.TrustedTime)6 FastXmlSerializer (com.android.internal.util.FastXmlSerializer)6 AppItem (com.android.settingslib.AppItem)6 FileInputStream (java.io.FileInputStream)6 FileNotFoundException (java.io.FileNotFoundException)6 FileOutputStream (java.io.FileOutputStream)6 XmlSerializer (org.xmlpull.v1.XmlSerializer)6 Bucket (android.app.usage.NetworkStats.Bucket)5