Apple, Inc. v. Motorola, Inc. et al
Filing
107
Declaration of Winslow B. Taub filed by Plaintiffs Apple, Inc., Next Softward, Inc. re: 90 Motion Requesting Claims Construction by Plaintiffs. (Attachments: # 1 Ex. A, '486 Inf. Chart, # 2 Ex. B, '354 file history excerpt, # 3 Ex. C, '354 file history excerpt, # 4 Ex. D, Spielman report excerpts, # 5 Ex. E, '983 file history excerpts, # 6 Ex. F, '983 file history excerpts, # 7 Ex. G, '337 Inf. Chart, # 8 Ex. H, '002 Inf. Chart, # 9 Ex. I, '002 file history excerpt, # 10 Ex. J, '002 file history excerpt, # 11 Ex. K, '002 file history excerpt, # 12 Ex. L, dictionary definitions, # 13 Ex. N, JPS63-167588 cert. trans., # 14 Ex. O, appl. 08/050952 file history excerpt, # 15 Ex. P, invalidity conten. excerpt, # 16 Ex. Q, 6,371,977, # 17 Ex. R, 5,474,831) (Haslam, Robert) Modified on 7/18/2011 (llj).
EXHIBIT G
Exhibit L –U.S. Patent No. 5,566,337
Motorola directly and/or indirectly infringes at least claims 1, 3, 6-10, 12, 14, 16-19, 21, and 23-24 of the ’337 patent, either
literally or through the doctrine of equivalents. Motorola’s infringing products include mobile devices such as smartphones and
tablet computers, including but not limited to the: Atrix, Bravo, Cliq, Cliq XT, Cliq 2, Charm, Defy, Devour, BackFlip, Devour, Droid,
Droid 2, Droid 2 Global, Droid X, Droid Pro, Droid Bionic, Flipout, Flipside, i1, Xoom, (collectively, the “ ’337 Accused Products”).
For the purposes of this analysis, Plaintiffs will examine a representative mobile device, Motorola’s Droid X, which is shipped
operates with the Android 2.1 Platform. All other ’337 Accused Products meet the limitations of the asserted claims on the same
bases as indicated for the Droid X, unless otherwise stated.
These infringement contentions are preliminary and based only on publicly available information as to the ’337 Accused
Products. Motorola has not yet provided discovery as to its accused products and in addition Plaintiff's investigation of Motorola's
infringement is ongoing. Based on discovery and Plaintiff's continued investigations Plaintiff reserves the right to amend these
contentions to identify additional bases for infringement and additional accused products, including products that Motorola may
introduce in the future. Accordingly, Plaintiff reserves its right to amend these contentions as discovery and its investigation
proceeds. Also, these disclosures are made based on information ascertained to date, and Plaintiff expressly reserves the right to
modify or amend the disclosures contained herein based on the Court’s claim constructions or to reflect additional information that
becomes available to Plaintiff.
U.S. Patent No. 5,566,337
1. In a computer including at
least one event producer for
detecting that an event has
occurred in the computer and
generating an event
Infringement Contentions
The ’337 Accused Products are, inter alia, computers that include at least one event producer for
detecting that an event has occurred in the computer and generating an event.
•
For example, the Motorola Droid X includes a Texas Instruments OMAP3630 processor
for executing applications such as web browsers, email clients, and telephony
applications, see Exh. L-9 [Motorola Droid X Specification], and is therefore a
computer.
•
For example, the ’337 Accused Products contain a Bluetooth protocol that generates an
event when the Bluetooth state changes. See Exh. L-1 [BluetoothService.java].
•
For example, the Bluetooth code calls the Context.sendBroadcast() method, which
“initiates a broadcast [event] by passing an Intent object.” See Id.; Exh. L-2 [Android
U.S. Patent No. 5,566,337
Infringement Contentions
Dev Site, “Application Fundamentals”]. The Intent object that is passed in
Context.sendBroadcast() is an object that “defines a message . . . . and defines the action
to perform.” Id.
and at least one event consumer
which needs to be informed
when events occur in the
computer,
The ’337 Accused Products have at least one event consumer which needs to be informed when
events occur in the computer.
a system for distributing events
comprising:
The ’337 Accused Products have a system for distributing events comprising storing means for
storing a specific set of events of which said at least one event consumer is to be informed.
storing means for storing a
specific set of events of which
said at least one event consumer
is to be informed
•
For example, the ’337 Accused Products contain, inter alia, a Phone application that
needs to be informed of, e.g., changes to the Bluetooth settings. For that reason, the
Phone application registers a broadcast receiver for this event using an Android Manifest
file. “Broadcast receivers enable applications to receive intents that are broadcast by the
system or by other applications, even when other components of the application are not
running.” See Exh. L-3 [Android Dev Site, “Receiver”]; Exh. L-10
[AndroidManifest.xml].
•
For example, in the ’337 Accused Products, means for storing a specific set of events of
which said at least one event consumer is to be informed include the Activity Manager.
•
For example, when an event consumer registers to receive an event, it calls the
registerReceiver() method, which causes the system to store a specific set of events of
which at least one event consumer is to be informed. See Exh. L-4 [Android Dev Site,
“Context”], Exh. L-5 [ActivityManagerService.java].
•
For example, the Activity Manager includes a HashMap data structure named
mRegisteredReceivers which “[k]eeps track of all IIntentReceivers that have been
registered for broadcasts.” Id.
2
U.S. Patent No. 5,566,337
event manager control means
for receiving the event from the
event producer, comparing the
received event to the stored set
of events, and distributing an
appropriate event to an
appropriate event consumer
Infringement Contentions
The ’337 Accused Products have event manager control means for receiving the event from the
event producer.
•
For example, in the ’337 Accused Products, means for receiving the event from the event
producer, comparing the received event to the stored set of events, and distributing an
appropriate event to an appropriate event consumer include the Activity Manager.
•
For example, the ’337 Accused Products contains an Activity Manager which, inter alia,
manages events that are transmitted from event producers to event consumers. See Exh.
L-5 [ActivityManagerService.java]. The Activity Manager first receives events from the
event producer via a Context.sendBroadcast() call, which is called by event producers when
they have an event to transmit. The Context.sendBroadcast() method “broadcast[s] the
given intent to all interested BroadcastReceivers” by first sending it to the Activity
Manager. See, Exh. L-4 [Android Dev Site, “Context”].
The ’337 Accused Products have event manager control means for comparing the received event to
the stored set of events.
•
For example, the Activity Manager, inter alia, compares the received event to the stored set
of events. It will determine which event consumers are interested in the current event, and
return a list of interested consumers. See Exh. L-5 [ActivityManagerService.java].
The ’337 Accused Product have event manager control means for distributing an appropriate
event to an appropriate event consumer.
•
distributor means for receiving
the event from the control
means and directing said control
means to distribute an
For example, after identifying an appropriate event consumer through the distributor
means (see infra), “the Android system finds the appropriate activity, service, or set of
broadcast receivers to respond to the intent, instantiating them if necessary.” See Exh.
L-6 [Android Dev Site, “Intents and Intent Filters”]. For example, the Activity Service
Manager has a processNextBroadcast() method which delivers broadcasts. See Exh. L5 [ActivityManagerService.java].
The ’337 Accused Products have distributor means for receiving the event from the control
means and directing said control means to distribute an appropriate event to an appropriate event
consumer.
3
U.S. Patent No. 5,566,337
appropriate event to an
appropriate event consumer
Infringement Contentions
•
For example, in the ’337 Accused Products, means for receiving the event from the control
means and directing said control means to distribute an appropriate event to an appropriate
event consumer include the Activity Manager.
•
For example, the ’337 Accused Products utilize a permissions system which can be used to
direct the control means to distribute an appropriate event to an appropriate event
consumer:
“Using Permissions
A basic Android application has no permissions associated with it, meaning it can
not do anything that would adversely impact the user experience or any data on the
device. To make use of protected features of the device, you must include in your
AndroidManifest.xml one or more tags declaring the
permissions that your application needs.” See Exh. L-7 [Android Dev Site,
“Security and Permissions”].
•
For example, either the event producer or the event consumer can use permissions to
determine what events are appropriate for an event consumer to receive:
“Permissions
Access permissions can be enforced by either the sender or receiver of an Intent.
To enforce a permission when sending, you supply a non-null permission argument
to
sendBroadcast(Intent, String) or sendOrderedBroadcast(Intent, String,
BroadcastReceiver, android.os.Handler, int, String, Bundle). Only receivers
who have been granted this permission (by requesting it with the tag in their AndroidManifest.xml) will be able to receive the
broadcast.
To enforce a permission when receiving, you supply a non-null permission when
registering your receiver -- either when calling
registerReceiver(BroadcastReceiver, IntentFilter, String, android.os.Handler) or
in the static tag in your AndroidManifest.xml. Only broadcasters who
have been granted this permission (by requesting it with the
4
U.S. Patent No. 5,566,337
Infringement Contentions
tag in their AndroidManifest.xml) will be able to send an Intent to the receiver.”
See Exh. L-8 [Android Dev Site, “Broadcast Receiver”].
•
For example, the distributor means can receive the event from the event control means
and then can check that a target event consumer has the required permissions to view the
broadcast. The distributor means then may return a value to the event control means
directing it to either distribute or not distribute the event to a specific event consumer.
See Exh. L-5 [ActivityManagerService.java].
•
For example, the ActivityManager has methods for delivery, including
processingNextBroadcast() and broadcastIntent(); for confirming permissions,
including checkComponentPermission(); and a “[r]esolver for broadcast intents to
registered receivers,” such as mReceiverResolver. See Exh. L-5
[ActivityManagerService.java].
3. The system according to
claim 1, wherein a plurality of
event consumers are included in
the computer and the plurality
of consumers comprise:
broadcast consumers having no
relationship with other
consumers, the broadcast
consumers operating
independently of other
consumers and of the order in
which consumers are informed
of the event; and
The ’337 Accused Products have a plurality of event consumers comprising broadcast
consumers having no relationship with other consumers, the broadcast consumers operating
independently of other consumers and of the order in which consumers are informed of the
event.
sequential consumers having
relationships with other
consumers, the sequential
consumers requiring that no
other consumer be told about an
The ’337 Accused Products have sequential consumers having relationships with other
consumers, the sequential consumers requiring that no other consumer be told about an event
while they themselves are processing the event and having an ability to influence when they
receive the event relative to the other consumers.
•
•
For example, “[n]ormal broadcasts (sent with Context.sendBroadcast) are completely
asynchronous. All receivers of the broadcast are run in an undefined order, often at the
same time.” See Exh. L-8 [Android Dev Site, “BroadcastReceiver”], Exh. L-4
[Android Dev Site, “Context”].
For example, “[o]rdered broadcasts (sent with Context.sendOrderedBroadcast) are
5
U.S. Patent No. 5,566,337
Infringement Contentions
event while they themselves are
processing the event and having
an ability to influence when
they receive the event relative to
the other consumers.
delivered to one receiver at a time. As each receiver executes in turn, it can propagate a
result to the next receiver, or it can completely abort the broadcast so that it won't be
passed to other receivers. The order receivers run in can be controlled with the
android:priority attribute of the matching intent-filter.” See Exh. L-8 [Android Dev
Site, “BroadcastReceiver”].
6. The system according to
claim 3, wherein said storing
means comprises:
a subscription matrix for storing
subscriptions to events in which
the broadcast consumers are
interested; and
The ’337 Accused Products have storing means which comprises a subscription matrix for
storing subscriptions to events in which the broadcast consumers are interested.
For example, in the ’337 Accused Products, storing means which comprises a
subscription matrix for storing subscriptions to events in which the broadcast consumers
are interested include the Activity Manager.
•
For example, when an event consumer registers to receive an event, it calls the
registerReceiver() method, which causes the system to store events in which the
broadcast consumers are interested. See Exh. L-4 [Android Dev Site, “Context”], Exh.
L-5 [ActivityManagerService.java].
•
a sequential consumer database
for storing entries to events in
which the sequential consumers
are interested.
•
For example, the Activity Manager includes a HashMap data structure named
mRegisteredReceivers which “[k]eeps track of all IIntentReceivers that have been
registered for broadcasts.” See Exh. L-5 [ActivityManagerService.java].
The ’337 Accused Products have storing means which comprises a sequential consumer
database for storing entries to events in which the sequential consumers are interested.
•
For example, in the ’337 Accused Products, storing means which comprises a sequential
consumer database for storing entries to events in which the sequential consumers are
interested include the Activity Manager.
•
For example, ordered broadcasts are stored by the Activity Manager in the
mOrderedBroadcasts ArrayList. See Exh. L-5 [ActivityManagerService.java].
“Ordered broadcasts (sent with Context.sendOrderedBroadcast) are delivered to one
6
U.S. Patent No. 5,566,337
Infringement Contentions
receiver at a time. As each receiver executes in turn, it can propagate a result to the next
receiver, or it can completely abort the broadcast so that it won’t be passed to other
receivers. The order receivers run in can be controlled with the android:priority attribute
of the matching intent-filter.” See Exh. L-8 [Android Dev Site, “BroadcastReceiver”].
7. The system according to
claim 3, wherein said storing
means comprises an event
queue corresponding to each of
the broadcast consumers for
receiving distributed events
from said control means and for
storing the distributed events
until the events are consumed
by the corresponding broadcast
consumer.
The ’337 Accused Products have storing means which comprises an event queue corresponding
to each of the broadcast consumers for receiving distributed events from said control means and
for storing the distributed events until the events are consumed by the corresponding broadcast
consumer.
8. The system according to
claim 3, wherein said control
means comprises means for
passing an event to the
sequential consumers in
succession in accordance with
the entries in the sequential
consumer database.
The ’337 Accused Products have control means comprising means for passing an event to the
sequential consumers in succession in accordance with the entries in the sequential consumer
database.
9. The system according to
The ’337 Accused Products have a means for prohibiting passing of an event receiving an event
•
For example, in the ’337 Accused Products, storing means which comprises an event
queue corresponding to each of the broadcast consumers for receiving distributed events
from said control means and for storing the distributed events until the events are
consumed by the corresponding broadcast consumer include the Activity Manager.
•
For example, in the ’337 Accused Products, Normal Broadcasts are stored by the
Activity Manager in the mParallelBroadcasts ArrayList. See Exh. L-5
[ActivityManagerService.java].
•
For example, in the ’337 Accused Products, means for passing an event to the sequential
consumers in succession in accordance with the entries in the sequential consumer
database include the ordered broadcast API.
•
For example, “[o]rdered broadcasts (sent with Context.sendOrderedBroadcast) are
delivered to one receiver at a time. As each receiver executes in turn, it can propagate a
result to the next receiver, or it can completely abort the broadcast so that it won't be
passed to other receivers. The order receivers run in can be controlled with the
android:priority attribute of the matching intent-filter.” See Exh. L-8 [Android Dev
Site, “BroadcastReceiver”].
7
U.S. Patent No. 5,566,337
Infringement Contentions
claim 8, wherein said control
means comprises means for
prohibiting passing of an event
upon receiving an event handled
message from a sequential
consumer.
handled message from a sequential consumer.
10. A computer system
comprising: event producers for
detecting than an event has
occurred in the computer,
generating an event, and
generating a description of the
event;
The ’337 Accused Products are computers comprising event producers for detecting than an
event has occurred in the computer, generating an event, and generating a description of the
event.
•
For example, in the ’337 Accused Products, means for prohibiting the passing of an event
receiving an event handled message from a sequential consumer include the abort API
provided by broadcast receivers.
•
For example, “[o]rdered broadcasts (sent with Context.sendOrderedBroadcast) are
delivered to one receiver at a time. As each receiver executes in turn, it can propagate a
result to the next receiver, or it can completely abort the broadcast so that it won't be
passed to other receivers. The order receivers run in can be controlled with the
android:priority attribute of the matching intent-filter.” See Exh. L-8 [Android Dev
Site, “BroadcastReceiver”].
For example, the Motorola Droid X includes a Texas Instruments OMAP3630 processor
for executing applications such as web browsers, email clients, and telephony
applications, see Exh. L-9 [Motorola Droid X Specification], and is therefore a computer
system.
•
For example, the ’337 Accused Products contain a Bluetooth protocol that generates an
event when the Bluetooth state changes. See Exh. L-1 [BluetoothService.java].
•
event consumers which need to
be informed when events occur
in the computer, said event
consumers comprising a first
and a second class of
•
For example, the Bluetooth code calls the Context.sendBroadcast() method, which
“initiates a broadcast [event] by passing an Intent object.” See Id.; Exh. L-2 [Android
Dev Site, “Application Fundamentals”]. The Intent object that is passed in
Context.sendBroadcast() is an object that “holds the content of the message... and names
the action being announced.” Id.
The ’337 Accused Products have event consumers which need to be informed when events occur
in the computer, said event consumers comprising a first and second class of consumers.
•
For example, the ’337 Accused Products contain, inter alia, a Phone application that
needs to be notified of, e.g., changes to the Bluetooth settings. For that reason, the Phone
8
U.S. Patent No. 5,566,337
Infringement Contentions
consumers;
storing means for storing a
specific set of events of which
the event consumers are to be
informed;
application registers a broadcast receiver for this event using a Android Manifest file.
“Broadcast receivers enable applications to receive intents that are broadcast by the
system or by other applications, even when other components of the application are not
running.” See Exh.L-3 [Android Dev Site, “Receiver”]; Exh. L-10
[AndroidManifest.xml] .
The ’337 Accused Products have storing means for storing a specific set of events of which
event consumers are to be informed.
For example, in the ’337 Accused Products, means for storing a specific set of events of
which the event consumers are to be informed include the Activity Manager.
•
For example, when an event consumer registers to receive an event, it calls the
registerReceiver() method, which causes the system to store a specific set of events of
which at least one event consumer is to be informed. See, Exh. L-4 [Android Dev Site,
“Context”], Exh. L-5 [ActivityManagerService.java].
•
event manager control means
for receiving the event from the
event producers and comparing
the received event to the stored
set of events;
•
For example, the Activity Manager includes a HashMap data structure named
mRegisteredReceivers which “[k]eeps track of all IIntentReceivers that have been
registered for broadcasts.” See Exh. L-5 [ActivityManagerService.java].
The ’337 Accused Products have an event manager control means that receives the event from
the event producer and compares the received event to the stored set of events.
•
For example, in the ’337 Accused Products, means for receiving the event from the
event producers and comparing the received event to the stored set of events is the
Activity Manager.
•
For example, the ’337 Accused Products contains an Activity Manager which, inter
alia, manages events that are transmitted from event producers to event consumers.
See Exh. L-5 [ActivityManagerService.java]. The Activity Manager first receives
events from the event producer via a Context.sendBroadcast() call, which is called by
event producers when they have an event to transmit. The Context.sendBroadcast()
method “broadcast[s] the given intent to all interested BroadcastReceivers” by first
sending it to the Activity Manager. See, Exh. L-4 [Android Dev Site, “Context”].
9
U.S. Patent No. 5,566,337
Infringement Contentions
The ’337 Accused Product event manager control means then compares the information in the
event to a stored set of events.
•
distributor means, responsive to
said event control means, for
deciding if an event should be
passed to an event consumer;
For example, the Activity Manager, inter alia, compares the received event to the stored
set of events. It will determine which event consumers are interested in the current event,
and return a list of interested consumers. See Exh. L-5 [ActivityManagerService.java].
The ’337 Accused Products have distributor means responsive to said control means, for
deciding if an event should be passed to an event consumer.
•
For example, in the ’337 Accused Products, means, responsive to said event control
means, for deciding if an event should be passed to an event consumer include the
Activity Manager.
•
For example, the Android devices utilize a permissions system which can be used to
direct the control means to distribute an appropriate event to an appropriate event
consumer:
“Using Permissions
A basic Android application has no permissions associated with it, meaning it
can not do anything that would adversely impact the user experience or any data
on the device. To make use of protected features of the device, you must include
in your AndroidManifest.xml one or more tags declaring the
permissions that your application needs.” See Exh. L-7 [Android Dev Site,
“Security and Permissions”].
•
For example, either the event producer or the event consumer can use permissions
to determine what events are appropriate for an event consumer to receive:
“Permissions
Access permissions can be enforced by either the sender or receiver of an Intent.
To enforce a permission when sending, you supply a non-null permission argument
to sendBroadcast(Intent, String) or sendOrderedBroadcast(Intent, String,
BroadcastReceiver, android.os.Handler, int, String, Bundle). Only receivers who
have been granted this permission (by requesting it with the tag
10
U.S. Patent No. 5,566,337
Infringement Contentions
in their AndroidManifest.xml) will be able to receive the broadcast.
To enforce a permission when receiving, you supply a non-null permission when
registering your receiver -- either when calling
registerReceiver(BroadcastReceiver, IntentFilter, String, android.os.Handler) or
in the static tag in your AndroidManifest.xml. Only broadcasters who
have been granted this peimission (by requesting it with the
tag in their AndroidManifest.xml) will be able to send an Intent to the receiver.”
See Exh. L-8 [Android Dev Site, “Broadcast Receiver”].
•
For example, the distributor means can receive the event from the event control means and
then can check that a target event consumer has the required permissions to view the
broadcast. The distributor means then may return a value to the event control means
directing it to either distribute or not distribute the event to a specific event consumer.
See Exh. L-5 [ActivityManagerService.java].
•
For example, the ActivityManager has methods for delivery, including
processingNextBroadcast() and broadcastIntent(); for confirming permissions, including
checkComponentPermission(); and a “[r]esolver for broadcast intents to registered
receivers,” such as mReceiverResolver. See Exh. L-5 [ActivityManagerService.java].
said event manager control
means comprising:
first means for sending an
event to appropriate event
consumers of a first class in
accordance with the stored set
of events; and
The ’337 Accused Products have an event manager control means which comprises a first means
for sending an event to appropriate event consumers of a first class in accordance with the stored
set of events.
•
For example, in the ’337 Accused Products, means for sending an event to
appropriate event consumers of a first class in accordance with the stored set of
events include the Activity Manager.
•
For example, after the Android’s event manager control means will distribute an
event to appropriate sequential event consumers in accordance with the stored set of
events and then “finds the appropriate activity, service, or set of broadcast receivers
to respond to the intent, instantiating them if necessary.” See Exh. L-6 [Android
11
U.S. Patent No. 5,566,337
Infringement Contentions
Dev Site, “Intents and Intent Filters”].
•
second means for sending the
event to appropriate event
consumers of a second class
responsive to said distributor
means.
For example, the ActivityManager has methods for delivery, including
processingNextBroadcast() and broadcastIntent(); for confirming permissions,
including checkComponentPermission(); and a “[r]esolver for broadcast intents to
registered receivers,” such as mReceiverResolver. See Exh. L-5
[ActivityManagerService.java].
The ’337 Accused Products have an event manager control means which comprises a second
means for sending an event to appropriate event consumers of a second class responsive to said
distributor means.
•
For example, in the ’337 Accused Products, means for sending the event to
appropriate event consumers of a second class responsive to said distributor means
include the Activity Manager.
•
For example, the ’337 Accused Product utilize a permissions system which can be used
to direct the control means to distribute an appropriate event to an appropriate event
consumer:
“Using Permissions
A basic Android application has no permissions associated with it, meaning it
can not do anything that would adversely impact the user experience or any
data on the device. To make use of protected features of the device, you must
include in your AndroidManifest.xml one or more tags
declaring the permissions that your application needs.” See Exh. L-7
[Android Dev Site, “Security and Permissions”].
•
For example, either the event producer or the event consumer can use permissions to
determine what events are appropriate for an event consumer to receive:
“Permissions
Access permissions can be enforced by either the sender or receiver of an Intent.
To enforce a permission when sending, you supply a non-null permission argument
to sendBroadcast(Intent, String) or sendOrderedBroadcast(Intent, String,
12
U.S. Patent No. 5,566,337
Infringement Contentions
BroadcastReceiver, android.os.Handler, int, String, Bundle). Only receivers who
have been granted this permission (by requesting it with the tag
in their AndroidManifest.xml) will be able to receive the broadcast.
To enforce a permission when receiving, you supply a non-null permission when
registering your receiver -- either when calling
registerReceiver(BroadcastReceiver, IntentFilter, String, android.os.Handler) or
in the static tag in your AndroidManifest.xml. Only broadcasters who
have been granted this permission (by requesting it with the
tag in their AndroidManifest.xml) will be able to send an Intent to the receiver.”
See Exh. L-8 [Android Dev Site, “Broadcast Receiver”].
•
For example, the distributor means can receive the event from the event control means and
then can check that a target event consumer has the required permissions to view the
broadcast. The distributor means then may return a value to the event control means
directing it to either distribute or not distribute the event to a specific event consumer. See
Exh. L-5 [ActivityManagerService.java].
12. The system according to
claim 10, wherein
said first class of consumers
comprise sequential consumers
having relationships with other
consumers, the sequential
consumers requiring that no
other consumer be told about an
event while they themselves are
processing it, and having an
ability to influence when they
receive the event relative to the
other consumers; and
The ’337 Accused Products have a first class of consumers which comprise sequential
consumers having relationships with other consumers, the sequential consumers requiring that
no other consumer be told about an event while they themselves are processing it, and having an
ability to influence when they receive the event relative to the other consumers.
said second class of consumers
The ’337 Accused Products have a second class of consumers which comprise broadcast
•
For example, “[o]rdered broadcasts (sent with Context.sendOrderedBroadcast) are
delivered to one receiver at a time. As each receiver executes in turn, it can propagate a
result to the next receiver, or it can completely abort the broadcast so that it won't be passed
to other receivers. The order receivers run in can be controlled with the android:priority
attribute of the matching intent-filter.” See Exh. L-8 [Android Dev Site,
“BroadcastReceiver”].
13
U.S. Patent No. 5,566,337
comprise broadcast consumers
having no relationship with
other consumers, the broadcast
consumers operating
independently of other
consumers and of the order in
which consumers are informed
of the event.
Infringement Contentions
consumers having no relationship with other consumers, the broadcast consumers operating
independently of other consumers and of the order in which consumers are informed of the
event.
•
For example, the ’337 Accused Products contains an Activity Manager which, inter alia,
manages events that are transmitted from event producers to event consumers. See Exh.
L-5 [ActivityManagerService.java]. The Activity Manager first receives events from the
event producer via a Context.sendBroadcast() call, which is called by event producers
when they have an event to transmit. The Context.sendBroadcast() method “broadcast[s]
the given intent to all interested BroadcastReceivers” by first sending it to the Activity
Manager. See, Exh. L-4 [Android Dev Site, “Context”].
14. The system according to
claim 12, wherein said storing
means comprises:
a subscription matrix for storing
subscriptions to events in which
the broadcast consumers are
interested; and
The ’337 Accused Products have storing means which comprises a subscription matrix for
storing subscriptions to events in which the broadcast consumers are interested.
For example, in the ’337 Accused Products, storing means which comprise a subscription
matrix for storing subscriptions to events in which the broadcast consumers are interested
include the Activity Manager.
•
For example, when an event consumer registers to receive an event, it calls the
registerReceiver() method, which causes the system to store a specific set of events of
which at least one event consumer is to be informed. See Exh. L-4 [Android Dev Site,
“Context”], Exh. L-5 [ActivityManagerService.java].
•
a sequential consumer database
for storing entries to events in
which the sequential consumers
•
For example, the Activity Manager includes a HashMap data structure named
mRegisteredReceivers which “[k]eeps track of all IIntentReceivers that have been
registered for broadcasts.” See Exh. L-5 [ActivityManagerService.java].
The ’337 Accused Products have storing means which comprises a sequential consumer
database for storing entries to events in which the sequential consumers are interested.
•
For example, in the ’337 Accused Products, storing means which comprise a sequential
14
U.S. Patent No. 5,566,337
Infringement Contentions
are interested.
consumer database for storing entries to events in which the sequential consumers are
interested include the Activity Manager.
•
•
16. The system according to
claim 12, wherein said control
means comprises means for
passing an event to the
sequential consumers in
succession in accordance with
the entries in a sequential
consumer database.
For example, “[o]rdered broadcasts (sent with Context.sendOrderedBroadcast) are
delivered to one receiver at a time. As each receiver executes in turn, it can propagate a
result to the next receiver, or it can completely abort the broadcast so that it won't be
passed to other receivers. The order receivers run in can be controlled with the
android:priority attribute of the matching intent-filter.” See Exh. L-8 [Android Dev
Site, “BroadcastReceiver”].
For example, the Activity Manager includes a HashMap data structure named
mRegisteredReceivers which “[k]eeps track of all IIntentReceivers that have been
registered for broadcasts.” See Exh. L-5 [ActivityManagerService.java.]
The ’337 Accused Products have control means which comprises means for passing an event to the
sequential consumers in succession in accordance with the entries in a sequential consumer
database.
For example, in the ’337 Accused Products, control means which comprises means for
passing an event to the sequential consumers in succession in accordance with the entries
in a sequential consumer database include the Context.sendOrderedBroadcast() method.
•
For example, “[o]rdered broadcasts (sent with Context.sendOrderedBroadcast) are
delivered to one receiver at a time. As each receiver executes in turn, it can propagate a
result to the next receiver, or it can completely abort the broadcast so that it won't be passed
to other receivers. The order receivers run in can be controlled with the android:priority
attribute of the matching intent-filter.” See Exh. L-8 [Android Dev Site,
“BroadcastReceiver”].
•
17. The system according to
claim 16, wherein said control
•
For example, the ActivityManager has methods for delivery, including
processingNextBroadcast() and broadcastIntent(); for confirming permissions, including
checkComponentPermission(); and a “[r]esolver for broadcast intents to registered
receivers,” such as mReceiverResolver. See Exh. L-5 [ActivityManagerService.java].
The ’337 Accused Products have control means which comprises means for prohibiting passing
15
U.S. Patent No. 5,566,337
means comprises means for
prohibiting passing of an event
upon receiving an event handled
message from a sequential
consumer.
Infringement Contentions
of an event upon receiving an event handled message from a sequential consumer.
•
For example, in the ’337 Accused Products, control means which comprises means for
prohibiting passing of an event upon receiving an event handled message from a
sequential consumer include the abort API provided by broadcast receivers.
•
For example, “[o]rdered broadcasts (sent with Context.sendOrderedBroadcast) are
delivered to one receiver at a time. As each receiver executes in turn, it can propagate a
result to the next receiver, or it can completely abort the broadcast so that it won't be passed
to other receivers. The order receivers run in can be controlled with the android:priority
attribute of the matching intent-filter.” See Exh. L-8 [Android Dev Site,
“BroadcastReceiver”].
For example, the ActivityManager has methods for delivery, including
processingNextBroadcast() and broadcastIntent(); for confirming permissions, including
checkComponentPermission(); and a “[r]esolver for broadcast intents to registered
receivers,” such as mReceiverResolver. See Exh. L-5 [ActivityManagerService.java].
•
18. A method for distributing
events occurring in a computer,
said method comprising the
steps of: determining that an
event has been detected by an
event producer in the computer;
The ’337 Accused Products perform a method for distributing events occurring in a computer
by, first, determining that an event has been detected by an event producer in the computer.
For example, the Motorola Droid X includes a Texas Instruments OMAP3630 processor
for executing applications such as web browsers, email clients, and telephony
applications, see Exh. L-9 [Motorola Droid X Specification], and is therefore a
computer.
•
storing, in a storing means, a
specific set of events of which
an event consumer is to be
•
For example, the Bluetooth code calls the Context.sendBroadcast() method, which
“initiates a broadcast [event] by passing an Intent object.” See Exh. L-1
[BluetoothService.java]; Exh. L-2 [Android Dev Site, “Application Fundamentals”]. The
Intent object that is passed in Context.sendBroadcast() is an object that “holds the
content of the message... and names the action being announced.” Id.
The ’337 Accused Products perform the step of storing, in a storing means, a specific set of
events of which an event consumer is to be informed.
•
For example, in the ’337 Accused Products, storing means include the Activity
16
U.S. Patent No. 5,566,337
Infringement Contentions
informed;
Manager.
•
•
receiving the event in an event
control means from the event
producer;
For example, when an event consumer registers to receive an event, it calls the
registerReceiver() method, which causes the system to store a specific set of events of
which at least one event consumer is to be informed. See, Exh. L-4 [Android Dev Site,
“Context”], Exh. L-5 [ActivityManagerService.java].
For example, the Activity Manager includes a HashMap data structure named
mRegisteredReceivers which “[k]eeps track of all IIntentReceivers that have been
registered for broadcasts.” See Exh. L-5 [ActivityManagerService.java].
The ’337 Accused Products perform the step of receiving the event in an event control means
from the event producer.
For example, in the ’337 Accused Products, event control means includes the Activity
Manager.
•
comparing the received event to
the stored sets of events;
•
For example, the ’337 Accused Products contains an Activity Manager which, inter
alia, manages events that are transmitted from event producers to event consumers.
See L-5 [ActivityManagerService.java]. The Activity Manager first receives events
from the event producer via a Context.sendBroadcast() call, which is called by event
producers when they have an event to transmit. The Context.sendBroadcast() method
“broadcast[s] the given intent to all interested BroadcastReceivers” by first sending it
to the Activity Manager. See, Exh. L-4 [Android Dev Site, “Context”].
The ’337 Accused Product perform the step of comparing the received event to a stored set of
events.
•
receiving the event in a
distributor means from the
control means;
For example, the Activity Manager, inter alia, compares the received event to the stored
set of events. It will determine which event consumers are interested in the current event,
and return a list of interested consumers. See L-5 [ActivityManagerService.java].
The ’337 Accused Products perform the step of receiving the event in a distributor means from
the control means.
•
For example, in the ’337 Accused Products, distributor means include the Activity
17
U.S. Patent No. 5,566,337
Infringement Contentions
Manager.
•
For example, the distributor means receives the event in the form of a
BroadcastRecord (which contains, inter alia, the Intent object described supra) from
the event control means. See Exh. L-5 [ActivityManagerService.java].
directing the control means to
distribute an appropriate event
to an appropriate event
consumer; and
The ’337 Accused Products perform the step of directing the control means to distribute an
appropriate event to an appropriate event consumer.
distributing, via the control
means, an appropriate event
to an appropriate event
consumer.
The ’337 Accused Products perform the step of distributing, via the control means, an
appropriate event to an appropriate event consumer.
•
For example, the distributor means can receive the event from the event control means and
then can check that a target event consumer has the required permissions to view the
broadcast. The distributor means then may return a value to the event control means
directing it to either distribute or not distribute the event to a specific event consumer. See
Exh. L-5 [ActivityManagerService.java].
The ’337 Accused Product event manager control means then distributes an appropriate
event to an appropriate event consumer. For example, after identifying an appropriate event
consumer through the distributor means (see infra), “the Android system finds the
appropriate activity, service, or set of broadcast receivers to respond to the intent,
instantiating them if necessary.” See Exh. L-6 [Android Dev Site, “Intents and Intent
Filters”].
•
19. The method according to
claim 18, wherein the event
consumer comprises a plurality
of consumers including
broadcast consumers which
•
For example, the ActivityManager has methods for delivery, including
processingNextBroadcast() and broadcastIntent(); for confirming permissions, including
checkComponentPermission(); and a “[r]esolver for broadcast intents to registered
receivers,” such as mReceiverResolver. See Exh. L-5 [ActivityManagerService.java].
The ’337 Accused Products have an event consumer which comprises a plurality of consumers
including broadcast consumers which operate independently from one another and of the order
in which consumers are informed of events and sequential consumers which require that no
other consumer be told about an event while they themselves are processing it and have an
ability to influence when they receive the event relative to the other consumers.
18
U.S. Patent No. 5,566,337
operate independently from one
another and of the order in
which consumers are informed
of events and sequential
consumers which require that no
other consumer be told about an
event while they themselves are
processing it and have an ability
to influence when they receive
the event relative to the other
consumers.
Infringement Contentions
•
For example, “[o]rdered broadcasts (sent with Context.sendOrderedBroadcast) are
delivered to one receiver at a time. As each receiver executes in turn, it can propagate a
result to the next receiver, or it can completely abort the broadcast so that it won’t be
passed to other receivers. The order receivers run in can be controlled with the
android:priority attribute of the matching intent-filter.” See Exh. L-8 [Android Dev
Site, “BroadcastReceiver”].
21. The method according to
claim 19, wherein said step of
storing comprises the steps of:
storing, in a subscription matrix,
subscriptions to events in which
the broadcast consumers am
interested; and
The ’337 Accused Products perform the step of storing, in a subscription matrix, subscriptions
to events in which the broadcast consumers am interested.
For example, the ’337 Accused Products contains an Activity Manager which, inter alia,
manages events that are transmitted from event producers to event consumers. See Exh.
L-5 [ActivityManagerService.java]. The Activity Manager first receives events from the
event producer via a Context.sendBroadcast() call, which is called by event producers when
they have an event to transmit. The Context.sendBroadcast() method “broadcast[s] the
given intent to all interested BroadcastReceivers” by first sending it to the Activity
Manager. See, Exh. L-4 [Android Dev Site, “Context”].
•
storing, in a sequential
consumer database, entries to
events in which the sequential
•
For example, the Activity Manager includes a HashMap data structure named
mRegisteredReceivers which “[k]eeps track of all IIntentReceivers that have been
registered for broadcasts.” See Exh. L-5 [ActivityManagerService.java.
The ’337 Accused Products perform the step of storing, in a sequential consumer database,
entries to events in which the sequential consumers are interested.
•
For example, the ’337 Accused Products contains an Activity Manager which, inter
19
U.S. Patent No. 5,566,337
Infringement Contentions
consumers are interested.
alia, manages events that are transmitted from event producers to event consumers.
See Exh. L-5 [ActivityManagerService.java]. The Activity Manager first receives
events from the event producer via a Context.sendOrderedBroadcast() call. See Exh.
L-8 [Android Dev Site, “BroadcastReceiver”].
•
For example, the Activity Manager includes a HashMap data structure named
mRegisteredReceivers which “[k]eeps track of all IIntentReceivers that have been
registered for broadcasts.” See Exh. L-5 [ActivityManagerService.java].
23. The method according to
claim 19, wherein the step of
distributing comprises the step
of passing an event to the
sequential consumers in
succession upon receiving a
continue message from a
sequential consumer indicating
that it has completed
processing of the event.
The ’337 Accused Products perform the step of distributing, which comprises the step of
passing an event to the sequential consumers in succession upon receiving a continue message
from a sequential consumer indicating that it has completed processing of the event.
24. The method according to
claim 23, wherein the step of
distributing further comprises
the step of prohibiting passing
of an event upon receiving an
event handled message from a
sequential consumer.
The ’337 Accused Products perform the step of distributing, which further comprises the step
of prohibiting passing of an event upon receiving an event handled message from a sequential
consumer.
•
•
For example, a sequential consumer can send a continue message by returning a nonnull value with the BroadcastReceiver.SetResultData() method. See Exh. L-8
[Android Dev Site, “BroadcastReceiver”], Exh. L-11 [Android Dev Blog, “Processing
Ordered Broadcasts”].
For example, “[o]rdered broadcasts (sent with Context.sendOrderedBroadcast) are
delivered to one receiver at a time. As each receiver executes in turn, it can propagate a
result to the next receiver, or it can completely abort the broadcast so that it won't be
passed to other receivers. The order receivers run in can be controlled with the
android:priority attribute of the matching intent-filter.” See Exh. L-8 [Android Dev
Site, “BroadcastReceiver”].
20
Disclaimer: Justia Dockets & Filings provides public litigation records from the federal appellate and district courts. These filings and docket sheets should not be considered findings of fact or liability, nor do they necessarily reflect the view of Justia.
Why Is My Information Online?