Mobile device and method attributing media services network usage to requesting application

Patent No. US9647918 (titled "Mobile device and method attributing media services network usage to requesting application") on Aug 3, 2016. The application was issued on May 9, 2017.

What is this patent about?

’918 is related to the field of wireless network management and device-assisted service usage accounting. Specifically, it addresses the technical challenge of accurately attributing data consumption to specific applications when those applications use intermediate operating system functions, such as media players or download managers, to handle their network traffic. In modern mobile operating systems, traditional network stack monitoring often incorrectly credits data usage to these system proxies rather than the originating application, leading to inaccurate billing and ineffective policy enforcement.

The underlying idea behind ’918 is to bridge the visibility gap between high-level application requests and low-level network data flows by implementing a multi-stage tracking mechanism. The invention recognizes that while an application may not open a network socket directly, it initiates a request through a specialized API for a specific media object or network resource. By capturing the association between the originating application and the resource identifier at the moment of the request, the system can later map the resulting background data transfers back to the correct source, even if the traffic is physically managed by a common system service.

The claims of ’918 focus on a device architecture that utilizes two distinct Application Programming Interfaces (APIs) to track and reconcile data usage. The first API handles standard, direct data flows, while the second API is specifically designed for media object requests associated with network resource identifiers like URLs or IP addresses. A media service manager coordinates the actual transfer, while service classification and measurement agents perform the critical task of attributing usage from both APIs to the specific originating application to maintain an accurate, aggregate record of its total network footprint.

In practice, the invention works by monitoring the media service manager to intercept data transfer requests before they are handed off to the network stack. When an application like a streaming music client requests a song via a URL, the system records the application's identity and the specific resource identifier. As the network stack begins the download, the classification agent uses these stored associations to virtually or literally tag the resulting packets. This allows the device to distinguish between different applications that may all be using the same system-level media library simultaneously.

This approach differs from prior solutions by moving beyond simple socket-to-process mapping, which typically fails when a proxy service manager is involved. Instead of allowing system services to mask the identity of data-hungry applications, ’918 provides a reconciliation element that aggregates usage across different access methods. This ensures that service providers can implement granular traffic controls and sponsored billing models that remain accurate regardless of whether an application communicates directly with the network or offloads its tasks to the operating system's background services.

How does this patent fit in bigger picture?

Technical Landscape

In the late 2000s when ’918 was filed, mobile data consumption was beginning to transition from specialized, carrier-certified devices toward general-purpose internet devices at a time when network capacity was typically implemented using fixed resource allocations for radio access bearers. During this era, systems commonly relied on centralized core network management to handle congestion rather than device-side intelligence, and hardware constraints made the frequent signaling required for persistent background data synchronization non-trivial for both battery life and base station transaction limits. Technical practices often involved simple power-save states that, while preserving local energy, created significant overhead when devices frequently cycled between idle and active modes to service background application requests.

Prosecution Position

The disclosed invention represents a meaningful technical advancement by shifting the architectural responsibility for network capacity protection from the core network to the end-user device through a device-assisted service framework. This integration enables the classification of network service activities into differential priority levels, such as background or quality-of-service classes, based on real-time monitoring of application behavior and network busy states. The technical effect achieved is a reduction in signaling congestion and radio access network overload, as the device can intelligently defer, throttle, or aggregate low-priority data requests at the source. This architectural shift overcomes the constraint of blind centralized blocking, which often wastes over-the-air spectrum on incomplete connection attempts, by ensuring that network access is granted only when both device-side policy and network availability align.

Claims

This patent contains 19 claims, with claims 1, 14, 15, and 19 serving as the independent claims. The independent claims focus on a wireless end-user device and a corresponding method that utilize two distinct application programming interfaces—one for general network stack data flows and another for media object data transfer requests—to enable a media service manager and classification agents to track, reconcile, and attribute aggregate wireless data usage to specific device applications. The dependent claims further define the system by specifying methods for identifying applications through names or process identifiers, detailing the types of network resource identifiers used, describing the integration of multiple media service managers, and outlining the use of local databases and user interfaces for displaying or enforcing application-based data usage controls.

Key Claim Terms New

Definitions of key terms used in the patent claims.

Term (Source)Support for SpecificationInterpretation
Data packet flows
(Claim 1, Claim 14, Claim 15, Claim 19)
It may also be desirable to hook at certain locations, such as in the socket, to tag back to a traffic stack “opened socket for thread” and give a socket-to-thread mapping. Combined with an API mapping, it is possible to map socket-to-app, which can then be pushed to a low level interface where traffic can be observed (e.g., a driver, in a kernel, etc.). Where every packet is counted at, e.g., a firewall, the low level interface can see the thread and can map each packet to the appropriate app even though the counted packets are, e.g., identified as those of the proxy.Individual streams of data packets established via a network stack, which can be mapped to specific application threads or socket connections for monitoring and control.
Media service manager
(Claim 1, Claim 14, Claim 15, Claim 19)
Example Proxy Service Managers include the following: media service manager (e.g. android media service library function), email service manger, DNS function, software download service manager, media download manager (e.g. audio player, streaming media player, movie downloader, media service OS function, etc), data download service manager, Android “media” library function, Android.net library function, Jave.net library function, Apache library function, other similar software/library functions or services in other device operating systems, SMTP/IMAP/POP proxy, HTTP proxy, IM proxy, VPN service manager, SSL proxy, etc. In such embodiments an app can sometimes simply requests a network access service activity from an OS component such as a proxy service component rather then directly accessing the network. This is accomplished by inserting service usage monitors that allow a mapping of (i) the initiating application identifier to (ii) the request to the proxy service and subsequently to (iii) the network service flows between the proxy service and the network elements that service the information communications.An intermediary software component or proxy service function within the device operating system that manages data transfers for media objects (such as audio or video) by interfacing between an application and the network stack.
Network resource identifier
(Claim 1, Claim 14, Claim 15, Claim 19)
In particular, wherein the network resource identifier comprises one or more of an Internet Protocol address, a Uniform Resource Locator, a remote file name/address, a stream name, and an object name. The data transfer request comprises a network resource identifier that identifies a source of the data to be transferred, a proxy to the source of the data to be transferred, or the media object to be transferred. Each stored entry further comprising information about the corresponding network resource identifier for the data transfer request.A specific technical label or address provided by an application to identify the source, proxy, or specific object (like a stream or file) to be transferred over the network.
Reconcile wireless network data usage
(Claim 1, Claim 14)
In such embodiments it is important to be able to categorize all applications, functions and processes on a device that contribute to the service usage of a service activity so that the service activity can be monitored for service usage, have the service usage accounted for. In the case of service activity components that belong exclusively to one aggregate service activity (e.g. an application, application JAR file or OS function), this may be accomplished by including each of the component service activities on a list that identifies the service activity components that belong to the aggregate service activity, and then monitoring, possibly controlling and providing user notifications based on the aggregate or component behavior of each service activity. This ability to group usage for a related set of service activity components dedicated to an aggregate service activity as described herein is used to improve usage reporting of service activities.The process of aggregating and matching data usage from direct network stack calls and indirect proxy service calls to provide a total data consumption count for a specific application.
Service classification and measurement agents
(Claim 1)
In order to implement background service controls or user notification of application service usage, it is necessary to monitor the application proxy service flows, classify them as being initiated by or belonging to a particular application or service activity, and implement the proper background service classifications. Once this mapping is accomplished, the service usage flows of the proxy service can then be accounted back to the initiating application, device software process or other service activity. This ability to track service usage for an service activity through a proxy service as described herein is used to improve usage reporting of service activities to a service controller for the purpose of statistically identifying service activities that are candidates for background service policy controls or network protections service policy controls.Software modules or functions on the device responsible for identifying which application initiated a network request (either directly or via a proxy) and tracking the resulting data usage to attribute it to the correct source.

Litigation Cases New

US Latest litigation cases involving this patent.

Case NumberFiling DateTitle
4:25-cv-09558Nov 5, 2025Google LLC v. Headwater Research LLC
3:25-cv-07591Sep 5, 2025Apple Inc v. Headwater Research LLC
5:25-cv-07453Sep 3, 2025Google LLC v. Headwater Research LLC

Patent Family

Patent Family

File Wrapper

The dossier documents provide a comprehensive record of the patent's prosecution history - including filings, correspondence, and decisions made by patent offices - and are crucial for understanding the patent's legal journey and any challenges it may have faced during examination.

  • Get instant alerts for new documents

US9647918

Application Number
US15227814A
Filing Date
Aug 3, 2016
Publication Date
May 9, 2017
External Links
Slate, USPTO , Google Patents