US Pat. No. 9,271,100

SOUND FIELD SPATIAL STABILIZER WITH SPECTRAL COHERENCE COMPENSATION

2236008 Ontario Inc., On...

1. A computer implemented method for maintaining spatial stability of a sound field comprising:
calculating one or more balance gains for two or more microphone signals, where each of the two or more microphone signals
is from a corresponding one of two or more microphones, the one or more balance gains represent a detected balance of a spatial
image of the sound field received by the microphones;

calculating one or more signal values for each of the two or more microphone signals, where the one or more signal values
is characterized as a background noise estimate or one or more signal gains associated with an echo cancellation or noise
reduction process;

calculating a pair-wise spectral coherence between each of the two or more microphone signals; and
maintaining the detected balance of the spatial image of the sound field received at the microphones by gain adjusting the
two or more microphone signals responsive to the one or more balance gains, the one or more signal values, and the pair-wise
spectral coherence for each of the two or more microphone signals.

US Pat. No. 9,099,973

SOUND FIELD SPATIAL STABILIZER WITH STRUCTURED NOISE COMPENSATION

2236008 Ontario Inc., Wa...

12. A system for maintaining spatial stability of a sound field comprising:
a balance calculator to calculate balance gains for each of two or more microphone signals;
two or more signal value generators, each one associated with one of the two or more microphone signals, to calculate one
or more signal values;

a structured noise detector to detect structured noise content for each of the two or more microphone signals;
a channel mixer to mix a first microphone signal of the two or more microphone signals with a second microphone signal of
the two or more microphone signals responsive to the detected structured noise; and

a gain adjuster to adjust the two or more microphone signals, including the mixed first microphone signal and second microphone
signal, responsive to the calculated balance gains and the one or more signal values for each of the two or more microphone
signals.

US Pat. No. 9,224,404

DYNAMIC AUDIO PROCESSING PARAMETERS WITH AUTOMATIC SPEECH RECOGNITION

2236008 Ontario Inc., Wa...

1. A communication system comprising:
an audio-gateway that converts input audio signals into a compatible form used by a receiving network;
a noise reduction module resident to the audio gateway configured to reduce in-vehicle echo and noise; and
a speech recognition engine remote from the audio gateway generates and transmits commands through a wireless network that
cause the audio gateway to modify the audio gateway's noise reduction processing state in response to a recognized request
at the audio gateway for an automated speech recognition;

where the noise reduction module applies knowledge of a reverberation time, knowledge of a plurality of microphone placement,
and knowledge of driver's location stored in a data store to reduce the in-vehicle echo and noise.

US Pat. No. 9,094,830

MANAGING DATA TRANSFER ACROSS A NETWORK INTERFACE

BLACKBERRY LIMITED, Wate...

1. A method implemented on a communication device for managing data transfer from the communication device to a communication
network over a wireless connection, the communication device having a cellular data services controller to establish and control
access to a protected connection over the communication network, the method comprising:
determining that a requesting process on the communication device is authorized to transfer data to the communication network
over the protected connection based on a process ID associated with the requesting process, wherein determining includes

sending an authorization request from the requesting process via a persistent publish and subscribe service designated for
the protected connection, and wherein the requesting process is a permitted subscriber of the persistent publish and subscribe
service,

verifying that the requesting process is permitted to access the protected connection,
responding, by the cellular data service controller, to the authorization request via the persistent publish and subscribe
service, and

activating a PDP context to connect the requesting process to the protected connection; and,
after activating the PDP context, the cellular data services controller configuring a network interface on the communication
device to allow data packets to be transferred from the requesting process to the communication network over the protected
connection, wherein the network interface is associated with the protected connection.

US Pat. No. 9,491,704

METHODS AND APPARATUS FOR CONTROLLING POWER CONSUMPTION IN AN ELECTRONIC DEVICE WITH A COMMUNICATION SUBSYSTEM

BlackBerry Limited, Wate...

1. A method of controlling a communication subsystem in an electronic device between a power saving mode and an active mode,
a first threshold of communication traffic being defined for switching from the power saving mode to the active mode and a
second threshold of communication traffic being defined for switching from the active mode to the power saving mode, the method
comprising:
detecting an activity state of the electronic device, the detected activity state being one of a plurality of defined activity
states, the defined activity states each being defined by activation or deactivation of at least one application or component
of the electronic device, wherein each defined activity state is associated with a corresponding anticipated level of communication
traffic; and

changing at least one of the first threshold and the second threshold based on the detected activity state, wherein the first
threshold comprises a first packets per interval, and the second threshold comprises a second packets per interval, and wherein
the first packets per interval is greater than the second packets per interval.

US Pat. No. 9,424,860

MIXER WITH ADAPTIVE POST-FILTERING

2236008 Ontario Inc., Wa...

1. A noise reduction system comprising:
a signal mixing device configured to:
mix input signals according to a mixing ratio; and
constructively add the input signals to generate an output,
where the mixing ratio is based on a magnitude and a signal-to-noise ratio of the input signals, and
where the input signals comprise a first input signal and a second input signal, and where the signal mixing device is further
configured to rotate the first input signal in phase with the second input signal to mix the input signals.

US Pat. No. 9,274,677

METHOD AND SYSTEM FOR PROVIDING TRANSPARENT ACCESS TO HARDWARE GRAPHIC LAYERS

2236008 Ontario Inc., Wa...

1. A method of directing an input event in a three-dimensional event space, the three-dimensional space comprising a plurality
of two-dimensional graphics regions ordered along a third-dimension axis, the method comprising:
associating each two-dimensional graphics region of a set of the two-dimensional graphics regions with a respective one of
a plurality of hardware layers, wherein the hardware layers are included in a layering hardware;

receiving the input event directed to the three-dimensional event space;
traversing at least a portion of the third-dimension axis with the input event;
determining one or more intersections of the input event with the two-dimensional graphics regions as the input event traverses
the at least a portion of the third-dimension axis; and

for each of the one or more intersections with a respective intersected graphics region:
determining whether the respective intersected graphics region is associated with any of the hardware layers;
determining, when the respective intersected graphics region is not associated with any of the hardware layers, whether the
input event is to be processed by a software application associated with content of the respective intersected graphics region
and, when the input event is to be processed by the software application, directing the received input event to the software
application; and

directing, when the respective intersected graphics region is associated with any of the hardware layers, the input event
to the software application associated with the content of the respective intersected graphics region.

US Pat. No. 9,196,250

APPLICATION SERVICES INTERFACE TO ASR

2236008 Ontario Inc., Wa...

1. An application services interface system comprising:
a processor;
an automatic speech recognition control application program interface that receives a request for a recognition session from
an application-based automatic speech recognition controller;

an automatic speech recognition control engine in communication with the automatic speech recognition control application
program interface directs the performance of an automatic speech recognition module; and

the automatic speech recognition module comprises two or more synchronous processing modules delivering a combination of grammar-based
ASR recognition results and natural language-based ASR recognition results and compares a spoken utterance to a vocabulary
of active grammars to generate recognition results;

where the recognition results are generated by the two or more synchronous processing modules in an ASR session with limited
callbacks between the automatic speech recognition control engine and the application-based automatic speech recognition controller.

US Pat. No. 9,123,352

AMBIENT NOISE COMPENSATION SYSTEM ROBUST TO HIGH EXCITATION NOISE

2236008 Ontario Inc., Wa...

1. A noise compensation method, comprising:
estimating how loud a background noise resulting from an excitation signal played over a speaker into an acoustic environment
would be in a signal captured by a microphone in the acoustic environment;

generating an ambient noise estimate associated with the acoustic environment;
performing a comparison between the background noise estimate resulting from the excitation signal and a threshold based on
the ambient noise estimate; and

controlling a gain of the excitation signal based on a result of the comparison;
where the estimate of the loudness of the background noise comprises estimating a coupling factor value that represents a
ratio of the excitation signal magnitude to an error signal after a filtering stage of an echo canceller.

US Pat. No. 9,093,076

MULTIPASS ASR CONTROLLING MULTIPLE APPLICATIONS

2236008 Ontario Inc., Wa...

1. A multipass processing system comprising:
a first grammar-based speech recognition system that compares a spoken utterance to a sub-grammar comprising keywords or key
phrases from active grammars of a plurality of other grammar-based speech recognition systems and each of the keywords or
key phrases uniquely identifies one of a plurality of application engines and an associated one of the plurality of other
grammar-based speech recognition systems, to generate a first grammar-based speech recognition result and a first grammar-based
confidence score;

a demultiplexer that receives the spoken utterance through an input and transmits the spoken utterance to a selected one of
the plurality of other grammar-based speech recognition systems wherein the selection of the other grammar-based speech recognition
system is based on the first grammar-based speech recognition result, and wherein the selected one of the plurality of other
grammar-based speech recognition systems generates a second grammar-based speech recognition result and a second confidence
score; and

a system management controller communicatively coupled to the plurality of other grammar-based speech recognition systems,
which receives the second grammar-based speech recognition result and the second confidence score and enables forwarding of
the spoken utterance from the demultiplexer to a second one of the plurality of the other grammar-based speech recognition
systems in instances when the second confidence score does not exceed a predetermined threshold.

US Pat. No. 9,426,145

DESIGNATION OF CLASSES FOR CERTIFICATES AND KEYS

BlackBerry Limited, Wate...

1. A method of creating a certificate store in a memory of a device, the method comprising:
receiving, at a space management module, a command to create a memory space, the memory space associated with a designation
of a class identifying a first mode of operation of the device, such that data in the memory space can not be accessed by
applications executed on the device when the device is operating in a second mode of operation;

designating, at the space management module, a range of addresses in a memory for the memory space; and
initializing, at a certificate manager, a certificate store in the memory of the device, the certificate store associated
with the designation of the class.

US Pat. No. 9,218,125

PORTABLE ELECTRONIC DEVICE AND METHOD OF CONTROLLING SAME

BlackBerry Limited, Wate...

1. A method comprising:
displaying information associated with a first application on a touch-sensitive display including a non-display area and a
display area, wherein a boundary is disposed between the display area and the non-display area, and a buffer area extends
around the boundary between the display area and the non-display area, the buffer area having a predetermined width;

detecting a touch on a touch-sensitive display and determining touch attributes including a start location of the touch;
determining whether the touch is a meta-navigation gesture associated with a second application or a non-meta-navigation gesture
associated with the first application based on whether the start location is in the buffer area by:

when the detected touch has the start location outside the buffer area and in the non-display area and travels through the
buffer area and across the boundary, determining that the touch is the meta-navigation gesture;

when the detected touch has a start location in the buffer area and travels across the boundary, determining that the touch
is the non-meta-navigation gesture; and

when the touch is determined to be the meta-navigation gesture, displaying information associated with the second application
on the touch-sensitive display, otherwise forwarding touch data to the first application.

US Pat. No. 9,203,527

SHARING A DESIGNATED AUDIO SIGNAL

2236008 Ontario Inc., Wa...

7. A system for sharing a designated audio signal comprising:
a transducer to reproduce the designated audio signal into an acoustic space;
a receiver to receive an input audio signal representing a sound field in the acoustic space;
a suppressor to suppress a component in the input audio signal contributed by the reproduced designated audio signal;
a time delay circuit that delays the designated audio signal in time; and
a mixer to mix the delayed designated audio signal with the suppressed input audio signal to generate an uplink audio signal.

US Pat. No. 9,190,069

IN-SITU VOICE REINFORCEMENT SYSTEM

2236008 Ontario Inc., Wa...

1. A voice reinforcement system, comprising:
a reflective boundary to reflect a voice signal from a speaker toward a listening location, the listening location spaced
apart from a location of the speaker;

a microphone, located between the speaker and the reflective boundary, to convert the voice signal to an intermediate electrical
signal, where the microphone is spaced apart from the reflective boundary;

a filter to extract a portion of the intermediate electrical signal representing a consonant sound from the voice signal to
an extracted signal, the extracted signal based on frequency content of the intermediate electrical signal;

an amplifier to amplify the extracted signal to an amplified signal; and
a converter to convert the amplified signal into an audible signal that is directed toward the listening location and is substantially
in-phase with a portion of the reflected voice signal to generate a reinforced signal formed from a summation of a portion
of the amplified signal and the portion of the reflected voice signal.

US Pat. No. 9,075,955

MANAGING PERMISSION SETTINGS APPLIED TO APPLICATIONS

BlackBerry Limited, Wate...

1. A computer-implemented method comprising:
identifying a plurality of management policies that apply to an application associated with a first perimeter of a plurality
of perimeters on a device, each perimeter being associated with a separate file system on the device, wherein each of the
plurality of management policies determines whether a resource on the device can be accessed, the plurality of management
policies includes a first management policy and a second management policy and the plurality of management policies are received
from one or more sources;

determining, for the application, a priority ranking for each of the plurality of management policies, wherein the priority
ranking for at least one of the management policies is determined based on the association of the application with the first
perimeter;

applying a permission setting to the application based on the priority rankings for the plurality of management policies,
wherein applying the permission setting comprises:

determining that the first management policy conflicts with the second management policy; and
applying the second management policy in response to determining that the second management policy has a higher priority ranking
than the first management policy;

determining that a source from which a management policy was received has rescinded the management policy; and
in response to determining that the source has rescinded the management policy, re-calculating a new priority ranking for
each of remaining management policies.

US Pat. No. 9,497,220

DYNAMICALLY GENERATING PERIMETERS

BlackBerry Limited, Wate...

1. A method, comprising: receiving a request to add to a mobile device an enterprise application for accessing an enterprise
account;
in response to detection of a parameter or a pattern associated with an account setting, retrieving a security policy from
a resource server for the enterprise account; in response to the request to add the enterprise application and the detection
of the parameter or the pattern associated with the account setting, generating, by the mobile device, a new logical separation
of resources associated with the enterprise application and other enterprise resources on the mobile device, wherein the new
logical separation of resources prevents applications on the mobile device external to the new logical separation of resources
from accessing resources associated with the new logical separation of resources;

receiving, from the resource server, a client certificate for establishing a secure channel with an enterprise;
assigning the client certificate to the new logical separation of resources; when the new logical separation of resources
is unlocked, granting access between the other enterprise resources and the enterprise application and granting the external
resources on the mobile device to access the enterprise application and the other enterprise resources on the mobile device,
wherein an unlock state allows applications to access files in a file system domain;

when the new logical separation of resources is soft locked, granting access and operations between the other enterprise resources
and the enterprise application while preventing user interactions with the enterprise application the external resources on
the mobile device from accessing the enterprise application and the other enterprise resources on the mobile device, wherein
the soft locked state allows applications running on the mobile device to access the files in the file system domain and locks
an user interface on the mobile device; and

when the new logical separation of resources is hard locked, preventing access between the other enterprise resources and
the enterprise application while preventing the external resources on the mobile device from accessing the enterprise application
and the other enterprise resources on the mobile device, wherein a hard lock state prohibits applications from accessing the
files in the file system domain and locks an underlying encryption domain.

US Pat. No. 9,342,699

METHOD AND APPARATUS FOR CONTROLLING ACCESS TO ENCRYPTED DATA

BLACKBERRY LIMITED, Wate...

1. A method comprising:
controlling access to encrypted data files, stored at a memory of a device, the encrypted data files categorized according
to a plurality of categories, each encrypted data file encrypted using one or more respective file encryption keys, each respective
file encryption key in a category encrypted using a respective category key respective to the category, the respective category
key encrypted using a respective domain master key respective to the category, the respective domain master key available
using a system master key, which is turn encrypted using a processor key stored at a processor of the device, the system master
key configured to protect each of respective domain master keys of each of the plurality of categories; and,

controlling access to the encrypted data files by: upon startup of the device, decrypting the system master key using the
processor key; and, when criteria associated with the category is met:

one or more of decrypting or generating the respective domain master key;
decrypting the respective category key using the respective domain master key;
decrypting the one or more respective file encryption keys using the respective domain master key;
destroying an unencrypted respective domain master key after the one or more respective file encryption keys are decrypted,
the criteria comprising one or more of: the device being turned on; receiving a password at an input device of the device
that matches password data stored at the memory; or receiving a personal identification number at the input device that matches
data read from an external memory reader of the device.

US Pat. No. 9,292,525

SEARCHING DATA USING PRE-PREPARED SEARCH DATA

BlackBerry Limited 223600...

1. A processor-implemented method of searching of data associated with an electronic device, comprising:
receiving a search query;
identifying a search data file associated with a third party application, the search data file being prepared according to
predetermined format rules by the third party application, and stored at a location of memory of the electronic device;

searching at least a portion of the search data file using the search query to identify information that matches the search
query;

using the predetermined format rules to identify associated information in the search data file that is related to the information
that matches the search query;

obtaining search results from at least one other source; and
displaying, at a first section of a display, third party application search results based on the information matching the
search query and the associated information, the display including, at a second section of the display, the search results
from the at least one other source.

US Pat. No. 9,258,645

ADAPTIVE PHASE DISCOVERY

2236008 Ontario Inc., Wa...

1. A method for determining phase difference, the method comprising:
determining a phase of a first signal and a phase of a second signal;
determining an instantaneous phase difference between said first signal and
said second signal based on said phase of said first signal and said phase of said second signal;
filtering said instantaneous phase difference over time for frequencies below a specified frequency threshold;
estimating a phase difference between said first signal and said second signal at one or more frequencies above said specified
frequency threshold, based on said filtered phase difference of frequencies below said specified frequency threshold; and

detecting presence of an audio signal based on signal to noise ratio, signal level or signal power level at one or more frequencies
below said specified frequency threshold and including said audio signal in said filtering said instantaneous phase difference
over time for frequencies below said specified frequency threshold.

US Pat. No. 9,183,657

COMPOSITION MANAGER CAMERA

2236008 Ontario Inc., Wa...

1. A system comprising:
an image buffer in which a video stream from a non-sensor image source is buffered;
a processor; and
a memory comprising a camera service, the camera service executable with the processor to provide one or more image consuming
applications access to a plurality of image sources through a camera application programming interface, the camera application
programming interface configured to provide a unified view of the image sources and to treat each of the image sources as
a camera,

the camera service executable with the processor to receive a request to select an image source from which to receive video
content through the camera service,

wherein the camera service is further executable to select, based on the request, the image source from among the image sources,
the image sources comprising a sensor image source and the non-sensor image source, and

wherein the camera service is further executable to provide the video stream buffered in the image buffer to an application
based on a selection of the non-sensor image source as the image source.

US Pat. No. 9,065,576

SYSTEM, APPARATUS AND METHOD FOR TRANSMITTING CONTINUOUS AUDIO DATA

2236008 Ontario Inc., Wa...

12. An audio sending device for transmitting encoded audio data, to an audio receiving device coupled to via a transport,
the audio sending device comprising:
a processor;
a memory coupled to the processor containing instructions, executable by the processor, for performing;
receiving a stream of application audio data from any of a plurality of audio source applications on the audio sending device;
encoding the stream of application audio data;
when the stream of application audio data ends, encoding a stream of filler audio data;
transmitting any of the encoded stream of application audio data and the encoded stream of filler audio data via a continuous
encoded output data stream to the audio receiving device;

receiving an audio enable indication;
starting, responsive to receiving the audio enable indication, to produce the encoded output data stream;
receiving an audio disable indication and in response starting a timer; and
stopping, responsive to the timer exceeding a timeout threshold, to produce the encoded output data stream.

US Pat. No. 9,467,329

COORDINATING ACTIVITY VIEWS ACROSS OPERATING SYSTEM DOMAINS

BlackBerry Limited, Wate...

1. A method comprising:
executing a first application within a first operating system domain of a device, the first application associated with at
least a first activity view;

detecting user input associated with the first application, wherein the user input activates a second activity view of a second
application;

responsive to determining that the second application corresponds to a second operating system domain of the device, generating
a first proxy link within the first operating system domain;

sending a message to the second operating system domain to generate a second proxy link after generating the first proxy link;
and

establishing a link between the first proxy link within the first operating system domain and the second proxy link within
the second operating system domain, the first proxy link associated with causing the second proxy link to invoke the second
activity view of the second application within the second operating system domain.

US Pat. No. 9,426,573

SOUND FIELD ENCODER

2236008 Ontario Inc., Wa...

1. A computer implemented method for encoding a sound field comprising:
detecting one or more indications of the orientation of a first computing device;
selecting one or more microphones from a plurality of microphones that are on sides of the first computing device responsive
to the indications of the orientation of the first computing device, the plurality of microphones including at least two microphones
on one side of the first computing device; and

encoding a sound field received by the selected microphones by associating descriptive information with the sound field indicating
the orientation of the first computing device, wherein a second computing device is configured to select audio transducers
to reproduce the sound field based on the descriptive information indicating the orientation of the first computing device.

US Pat. No. 9,396,346

SYSTEM AND METHOD FOR ACCESSING AND UPDATING SECURED DATA

BlackBerry Limited, Wate...

1. An electronic device comprising:
a display;
a communication component;
a memory storing first data in a first sandbox and second data in a second sandbox, the first sandbox being a secure sandbox
and having a shadow data component, the shadow data component storing a subset of the first data stored in the first sandbox;
and

a processor coupled to the display, the communication component, and the memory, the processor being configured to:
in response to a request:
provide the first data stored in the first sandbox when the first sandbox is in an unlocked mode; and
provide the first data stored in the shadow data component when the first sandbox is in a locked mode.

US Pat. No. 9,348,491

METHOD AND SYSTEM TO LAYOUT APPLICATIONS ON MULTIPLE PLATFORMS

2236008 Ontario Inc., Wa...

1. A method, at a network element, for providing applications to a device having one of a plurality of device types, the method
comprising:
maintaining a plurality of user interface formatting specifications for an application;
receiving a request for the application from the device, the request including an identifier associated with the device, the
identifier identifying at least one of screen size and screen resolution;

correlating one or more device display characteristics associated with the identifier with one of the plurality of user interface
formatting specifications for the application, said correlating comprising:

finding user interface formatting specifications which are compatible with a maximum number of said one or more device display
characteristics; and

determining a priority between user interface formatting specifications which are compatible with the identifier, the priority
of each user interface formatting specification being pre-assigned;

configuring the application with the one of the plurality of user interface formatting specifications, the configuring comprising
combining the one of the plurality of user interface formatting specifications with an executable code portion for installation
on the device; and

sending the configured application to the device;wherein the executable code portion is identical for each of the plurality of user interface formatting specifications.

US Pat. No. 9,285,858

METHODS FOR MONITORING AND ADJUSTING PERFORMANCE OF A MOBILE COMPUTING DEVICE

BlackBerry Limited, Wate...

1. A method for managing energy consumption of a mobile computing device by means of a Dynamic Voltage/Frequency Scaling (DVFS)
module of the device, the method comprising:
the DVFS module obtaining generated application-based performance data related to execution of an application by a processor
of the device, the application-based performance data generated by:

obtaining temporal data from the application including at least one of a time-point at which the application started performing
a task and a time-point at which the application completed performing the task,

computing a time increment related to the application's performance of the task, based on the temporal data,
comparing the computed time increment to a target time increment, and
at least one of: generating a flag based on whether the computed time increment exceeds the target time increment and incrementing
a running count of occasions when the computed time increment exceeds the target time increment; and

the DVFS module determining an operating point of the processor based on the performance data.

US Pat. No. 9,210,505

MAINTAINING SPATIAL STABILITY UTILIZING COMMON GAIN COEFFICIENT

2236008 Ontario Inc., Wa...

1. A computer implemented method for maintaining the spatial stability of a sound field comprising:
estimating a background noise estimate for each of a first audio signal and a second audio signal;
calculating a first gain coefficient responsive to the first audio signal and the background noise estimate of the first audio
signal;

calculating a second gain coefficient responsive to the second audio signal and the background noise estimate of the second
audio signal;

selecting a common gain coefficient from the first gain coefficient and the second gain coefficient; and
applying the selected common gain coefficient to each of the first audio signal and the second audio signal.

US Pat. No. 9,137,600

SYSTEM AND METHOD FOR DYNAMIC RESIDUAL NOISE SHAPING

2236008 Ontario Inc., Wa...

1. A dynamic residual noise shaping method, comprising:
detecting an amount of high frequency hiss noise in an audio signal by a computer processor;
calculating noise suppression gains by the computer processor by applying a noise reduction filter to the audio signal;
modifying the calculated noise suppression gains by the computer processor responsive to the detected amount of high frequency
hiss noise; and

applying the modified noise suppression gains by the computer processor to the audio signal.

US Pat. No. 9,794,418

METHOD AND SYSTEM FOR DYNAMIC CELLULAR NETWORKING ACTIVATION FOR VIRTUAL SIM SERVICE

BlackBerry Limited, Wate...

1. A method at a user equipment to facilitate activation and splitting of data billing between at least two parties, the method
comprising:
starting, at the user equipment, a virtual subscriber identity module platform (‘VSP’) service on the user equipment, the
user equipment being configured with a first data networking Access Point Name (‘APN’) for a carrier network;

verifying VSP configuration information with a network server;
upon verification, starting a second data networking APN for the same carrier network based on the configuration information
on the user equipment;

setting a status indicator on the user equipment to indicate the VSP service is enabled; and
activating the splitting of data billing on the user equipment.

US Pat. No. 9,557,746

VEHICLE ENERGY MANAGEMENT

2236008 Ontario Inc., Wa...

1. A method for vehicle energy management comprising:
in a controlled vehicle, receiving electronic signals and data related to a driving context from a plurality of data sources
including crowdsourcing while the vehicle is operating;

retrieving the driving context that includes vehicle characteristics and data generated by a powertrain management system
from a memory in the controlled vehicle;

projecting a future driving context based on the data generated by the powertrain management system in the controlled vehicle
in response to the driving context;

deriving one or more suggested control inputs in the controlled vehicle in response to the driving context and the future
driving contexts; and

in the controlled vehicle, automatically adjusting powertrain functions and a magnitude of braking in the controlled vehicle
in response to processing the one or more suggested control inputs;

where the future driving context conveys an external driving environment that the controlled vehicle is about to encounter.

US Pat. No. 9,225,318

SUB-BAND PROCESSING COMPLEXITY REDUCTION

2236008 Ontario Inc., Wa...

2. A sub-band processing method, comprising:
transforming a signal into a plurality of frequency bins each having a phase value;
partitioning the plurality of frequency bins into a smaller number of bands;
defining a first band to include multiple bins of the plurality of frequency bins;
determining a representative phase value for the first band by a processor programmed to determine the representative phase
value based on the phase value of at least one of the multiple bins within the first band; and

processing the first band using the representative phase value;
where the determining the representative phase value comprises selecting, as the representative phase value, the phase value
of a bin within the first band that has a lowest frequency within the first band.

US Pat. No. 9,099,084

ADAPTIVE EQUALIZATION SYSTEM

2236008 Ontario Inc., Wa...

12. An adaptive equalization system, comprising:
a computer processor;
a speech intelligibility measurement module executable by the computer processor to calculate a speech intelligibility measurement
of a speech signal;

a spectral shape adjustment module executable by the computer processor to generate a weighted long-term speech curve that
varies with speech signal conditions and is based on a first predetermined long-term average speech curve, a second predetermined
long-term average speech curve, and the speech intelligibility measurement; and

an adaptive equalization module executable by the computer processor to adapt equalization coefficients for the speech signal
based on the weighted long-term speech curve.

US Pat. No. 9,536,536

ADAPTIVE EQUALIZATION SYSTEM

2236008 Ontario Inc., Wa...

1. An adaptive equalization method comprising:
generating a speech intelligibility value from a speech signal by a computer processor;
selecting a plurality of predetermined long-term average speech curves;
generating a weighted long-term target spectral shape curve by the computer processor based on the plurality of long-term
average speech curves and the speech intelligibility value; and

adapting equalization coefficients for the speech signal by the computer processor based on the weighted long-term target
spectral shape curve;

where the plurality of long-term average speech curves change based on speech signal conditions.

US Pat. No. 9,431,012

POST PROCESSING OF NATURAL LANGUAGE AUTOMATIC SPEECH RECOGNITION

2236008 Ontario Inc., Wa...

1. A post-processing automated speech recognition system comprising:
a natural language-based speech recognition system that compares a spoken utterance to a natural language vocabulary comprising
words in one or more active grammars to generate a natural language speech recognition result and a natural language confidence
score;

a master conversation module engine that post processes the natural language speech recognition result by comparing the natural
language speech recognition result generated by the natural language-based speech processing system to lists of words and
phrases from a plurality of active sub-grammars that are mapped to a plurality of domain specific words and phrases, and generates
a post processed natural language speech recognition result confidence score for each of the listed words and phrases from
the plurality of active sub-grammars based on a likelihood that the respective listed words and phrases from the plurality
of active sub-grammars match the natural language speech recognition result;

a voting module engine that is interfaced to the master conversation module engine and that is operable to select a word or
a phrase from the list of words and phrases from the plurality of active sub-grammars, based on the post processed natural
language speech recognition result confidence scores; wherein:

when the voting module engine selects a word or phrase from the plurality of active sub-grammars based on the post processed
natural language speech recognition result confidence scores, the selected word or phrase is transmitted to an application
control system that transmits control signals used to control an internal or an external device or an internal or an external
process; or

when both of:
the voting module does not select a word or phrase from the plurality of active sub-grammars based on the post processed natural
language speech recognition result confidence scores, and

the natural language confidence score exceeds a specified threshold,
then the master conversation module engine selects the natural language speech recognition result to be transmitted to the
application control system;

where the natural language-based speech recognition system, the master conversation module engine, and the voting module engine
are executed by one or more processors.

US Pat. No. 9,383,918

PORTABLE ELECTRONIC DEVICE AND METHOD OF CONTROLLING SAME

BlackBerry Limited, Wate...

1. A method comprising:
detecting a touch at a plurality of touch locations, including a first touch location, a second touch location, and a third
touch location on a touch-sensitive display of an electronic device, wherein the first touch location, the second touch location,
and the third touch location comprise consecutively reported touch locations, and wherein the first touch location is near
an edge of the touch-sensitive display;

identifying an expected direction dependent on the first touch location and the edge of the touch-sensitive display that is
near the first touch location;

determining a touch direction from the first touch location to the second touch location and filtering touch data based on
the touch direction by comparing the touch direction to an expected direction and when the touch direction does not match
the expected direction within an acceptable error limit, discarding the second touch location and utilizing the third touch
location as a next touch location to identify when the touch is a first gesture type that has an origin at a location on the
electronic device that is non-touch-sensitive, and when the touch direction matches the expected direction, within the acceptable
error limit, utilizing the second touch location as the next touch location to identify when the touch is a first gesture
type;

identifying, based on the filtered touch data including the first touch location and the next touch location, when the touch
is the first gesture by:

in response to determining that a time between the first touch location and the next touch location exceeds a threshold time,
determining that the touch is not the first gesture type; and

in response to determining that a distance between the first touch location and the next touch location fans to meet a threshold
distance, determining that the touch is not the first gesture type; and

in response to determining that the time between the first touch location and the next touch location does not exceed the
threshold time and that the distance between the first touch location and the next touch location meets the threshold distance,
identifying the touch as the first gesture type that has an origin at a location on the electronic device that is non-touch-sensitive.

US Pat. No. 9,141,256

PORTABLE ELECTRONIC DEVICE AND METHOD THEREFOR

2236008 Ontario Inc., Wa...

1. A portable electronic device comprising:
a display; and
a processor configured to:
render an active application on substantially the entire display without reserving a substantial portion of the display for
displaying status indications to the exclusion of the active application; and

in response to any one of a plurality of status changes, render an alert on the rendered active application at a location
on the periphery of the display without substantially visually obscuring the active application, the alert comprising an object
rendered at the periphery of the display, the alert being devoid of text and pictorial representations, a visual characteristic
of the alert indicating a characteristic of the status change;

wherein a function of the device is activated by a gesture applied to the alert; and
wherein the location on the periphery of the display indicates the gesture to be applied to the alert to activate the function.

US Pat. No. 9,645,728

PORTABLE ELECTRONIC DEVICE AND METHOD THEREFOR

BlackBerry Limited, Wate...

1. A portable electronic device comprising:
a display;
a memory;
a processor coupled to the display and the memory, the memory storing statements and instructions for execution by the processor
to carry out a method of:

displaying, in a first view on the display, a first application interface providing a visual representation of a first application;
receiving a navigational command to access a second application visually represented by a second application interface;
displaying, in a transitional view on the display and in response to the received navigational command, a transition between
the first application interface and the second application interface, the transitional view including the first and second
application interfaces displayed as appearing in a non-overlapping arrangement on a planar surface, and the transitional view
further including the first and second application interfaces displayed as moving translationally along the planar surface;
and

displaying, in a second view on the display, the second application interface.

US Pat. No. 9,349,383

AUDIO BANDWIDTH DEPENDENT NOISE SUPPRESSION

2236008 Ontario Inc., Wa...

10. A system for audio bandwidth dependent noise suppression comprising:
an audio bandwidth detector to detect the audio bandwidth of an audio signal responsive to one or more audio indicators;
a noise suppression gain calculator to calculate noise suppression gains responsive to the audio signal;
a noise suppression gain modifier to modify the noise suppression gains responsive to the detected audio bandwidth; and
a noise suppression gain applier to apply the modified noise suppression gains to the audio signal
where the audio indicators comprise one or more of a compression format associated with the audio signal and a data rate associated
with the compression format.

US Pat. No. 9,337,790

SYSTEM AND METHOD FOR ENHANCING COMPREHENSIBILITY THROUGH SPATIALIZATION

2236008 Ontario Inc., Wa...

1. A method for enhancing comprehensibility through spatialization comprising:
receiving two or more audio signals each associated with one of two or more audio sources;
calculating a respective panning gains for each of the two or more audio signals, respectively based on the total number of
audio sources and the total number of output channels;

gain adjusting each of the two or more audio signals responsive to the respective panning gain; and
mixing each of the two or more gain adjusted audio signals to create two or more output channels wherein a reproduction of
the output channels produces enhanced comprehensibility.

US Pat. No. 9,318,092

NOISE ESTIMATION CONTROL SYSTEM

2236008 Ontario Inc., Wa...

1. A noise estimation control method, comprising:
receiving an input audio signal detected within a space;
receiving a reference audio signal that is transmitted by a speaker as an aural signal into the space;
processing the input audio signal and the reference audio signal by a signal processor to determine a coherence value based
on an amount of the aural signal that is included in the input audio signal;

determining whether the input audio signal satisfies a first criterion or a second criterion by processing the input audio
signal by the signal processor executing a mode selection;

determining a background noise level of the input audio signal; and
calculating an amount to adjust a stored background noise estimate by the signal processor based on the coherence value and
the background noise level of the input audio signal;

where the first criterion and the second criterion enables storing the adjustment of the background noise estimate.

US Pat. No. 9,213,571

SYSTEM AND METHOD FOR CHANGING ABILITIES OF A PROCESS

2236008 Ontario Inc., Wa...

1. A computer implemented method for changing the abilities of a process comprising:
associating, by a process manager, each of one or more user-ids with a default set of privileges;
assigning to a process, by the process manager at process creation time, a default set of privileges based on the default
set of privileges associated with a user-id of the one or more user-ids, wherein the user-id is an owner of the process;

executing the process, wherein the assigned default set of privileges comprises process abilities that the process is authorized
to have while executing in an operating system;

receiving, at a system interface, a request from the process or from a different process to modify the assigned default set
of privileges that was assigned to the process at process creation time; and

modifying, by the process manager, the assigned default set of privileges assigned to the process to become a sub-set of the
assigned default set of privileges assigned to the process, wherein the modification is applied responsive to the request
from the process or from the different process received by the system interface, and the modification to the assigned default
set of privileges is applied during subsequent execution of the process wherein the subset of the assigned default set of
privileges comprises process abilities that the process is authorized to have while executing in the operating system subsequent
to the modification.

US Pat. No. 9,189,153

VIDEO PHONE SYSTEM

2236008 Ontario Inc., Wa...

1. A computer implemented method that facilitates a user's interaction with a communication device having a display comprising
a gesture sensitive screen or a touch sensitive screen comprising:
detecting a contact with the gesture sensitive screen or the touch sensitive screen when the communication device is processing
a multi-user call with a plurality of participants in a first user session of the multi-user call;

transitioning the communication device to a private conversation state and creating a private sub-session of the multi-user
call when the detected contact corresponds to a predefined gesture;

where the predefined gesture comprises moving at least a first image toward a second image on the gesture sensitive screen
or the touch sensitive screen in accordance with the contact, where the at least first image comprises a graphical user interface
object with which a user interacts in order select at least one participant of the multi-user call for the private sub-session,
and where the user is allowed to move multiple images toward the second image to select multiple participants of the multi-user
call for the private sub-session;

automatically inviting the at least one selected participant to join the private sub-session of the multi-user call; and
adding at least one invited participant of the multi-user call to the private sub-session, while the first user session continues.

US Pat. No. 9,143,107

SYSTEM AND METHOD FOR DYNAMICALLY MIXING AUDIO SIGNALS

2236008 Ontario Inc., Wa...

11. A system for dynamically mixing audio signals comprising:
one or more amplitude calculators to calculate a signal amplitude for each of two or more audio signals;
a sum calculator to calculate a signal sum using each of the two or more signal amplitudes;
one or more smoothing filters to smooth each of the two or more signal amplitudes and to smooth the signal sum;
one or more gain calculators to calculate a respective mixing gain for each of the two or more audio signals using a respective
ratio of each of the two or more smoothed signal amplitudes and the smoothed signal sum;

one or more gain adjusters to gain adjust each of the two or more audio signals responsive to the respective mixing gain;
and

a mixer to mix each of the two or more gain adjusted audio signals to create an output signal.

US Pat. No. 9,734,686

SYSTEM AND METHOD FOR ENHANCING A PROXIMITY WARNING SOUND

BlackBerry Limited, Wate...

1. A method for enhancing a proximity warning sound comprising:
determining an indicator of a distance between a first physical object and a second physical object by a processor; and
generating a proximity warning sound, by an audio signal processor, including a reverberation mimicking component that includes
reverberation tail components indicative of the proximity of the first physical object to the second physical object responsive
to the determined distance indicator; where the reverberation mimicking component included in the proximity warning sound
that is indicative of the determined distance indicator.

US Pat. No. 9,553,967

STATEFUL INTEGRATION OF A VEHICLE INFORMATION SYSTEM USER INTERFACE WITH MOBILE DEVICE OPERATIONS

BlackBerry Limited, Wate...

10. An electronic device, comprising:
a display screen;
a communications subsystem adapted for communication with an in-vehicle information system; anda processor configured to enable:
providing, to the in-vehicle information system using the communications subsystem, access to an application executing on
the electronic device, the in-vehicle information system providing user interface access to the application on a display screen
of the in-vehicle information system while the application is executing on the electronic device;

determining that a link with the in-vehicle information system has been terminated such that communication between the electronic
device and the in-vehicle information system is terminated; and

in response to determining that the link has been terminated, resuming operation of the application on the electronic device
and automatically changing a mode associated with the application.

US Pat. No. 9,495,520

SYSTEM AND METHOD FOR PREVENTING OBSERVATION OF PASSWORD ENTRY USING FACE DETECTION

2236008 Ontario Inc., Wa...

1. An electronic device comprising:
a processor;
a display coupled to the processor;
a memory coupled to the processor;
a front facing camera coupled to the processor; and
a security module saved in the memory, the security module for configuring the processor to:
activate the front facing camera to acquire an image when the electronic device is in a password entry mode to unlock the
electronic device;

process the image to detect any faces in the image;
when no faces are detected in the image, disable the password entry mode;
when one or more faces are detected in the image,
process the image to determine whether each face in the image is the face of an authorized user of the electronic device;
when any face other than a face of an authorized user of the electronic device is detected in the image,
present on the display a visual notification including a warning indicating observation of the display of the wireless device;
and

disable the password entry mode.

US Pat. No. 9,424,093

PROCESS SCHEDULER EMPLOYING ADAPTIVE PARTITIONING OF PROCESS THREADS

2236008 Ontario Inc., Wa...

1. A system comprising:
a processor;
one or more memory storage units;
instructions stored in the one or more memory storage units, where the instructions are executable by the processor to configure
the system to:

create a plurality of adaptive partitions each having an associated guaranteed processor time budget;
create a plurality of process threads each having a priority;
dynamically associating each of the plurality of process threads with any one of the plurality of adaptive partitions; and
implement a process scheduler to:
when the system is under a normal load, allocate the processor to a process thread, of the plurality of process threads, that
is in a ready state and having a highest priority amongst process threads, of the plurality of process threads, that are in
the ready state; and

when the system is in overload, allocate the processor to a process thread, of the plurality of process threads, that is in
the ready state, having a highest priority amongst process threads, of the plurality of process threads, that are in the ready
state and for which the adaptive partition that the process thread is associated with has available guaranteed processor time
budget;

where a portion of the guaranteed processor time budget associated with each adaptive partition is billed whenever the processor
is allocated to a process thread associated with the adaptive partition.

US Pat. No. 9,164,778

MODAL PROGRESS DIALOG

2236008 Ontario Inc., Wa...

1. A method for modal progress dialog, implement by processor, comprising:
receiving an action request associated with a resource;
processing the action on the resource;
determining when a progress dialog is to be displayed, the determination triggered when a predicted duration of processing
the action request exceeds a threshold, where the predicted duration is a function of any one or more of: the action requested,
the resource associated with the action requested, a location of the resource, a measured time to execute a portion of the
action;

displaying the progress dialog when the determination is triggered; and returning a result of the action request.

US Pat. No. 9,053,411

SYSTEM AND METHOD FOR TRANSFERRING DOCUMENTS

2236008 Ontario Inc., Wa...

12. A sending device for transferring an electronic document, the sending device comprising:
a processor;
a memory coupled to the processor containing instructions for execution by the processor, the instruction for performing:
receiving an indication to print an electronic document on the sending device;
sending to a location server a request generated from a mobile device printer driver executed by the sending device, the request
comprising a target identifier for receiving the electronic document;

receiving from the location server a network identifier of a mobile device associated with the target identifier, the network
identifier provided to the location server by the mobile device after the mobile device has registered to a network;

formatting the electronic document based on one or more parameters associated with the mobile device; and
transferring the formatted electronic document using the network identifier in response to the indication to print the electronic
document wherein transferring the formatted electronic document further comprises determining an access method through a network
address translation (NAT) between a first network coupled to the location server and the network on which the mobile device
is registered when the sender device cannot access the mobile device after attempting a direct connection using an initially
received network identifier.

US Pat. No. 9,698,975

KEY MANAGEMENT ON DEVICE FOR PERIMETERS

BlackBerry Limited, Wate...

1. A method, at a computing device, for enabling recovery of an encryption key used for encrypting data of an encryption perimeter,
the method comprising:
establishing, with a server, a public/private key pair, the public key being stored on the computing device and the private
key being stored on the server;

using a Password Key Derivation Function (PKDF) for computing a PKDF value, based on a password, at the computing device,
the PKDF value being used to derive the encryption key by combining the PKDF value with device specific random data;

encrypting data within the encryption perimeter on the computing device with the encryption key;
encrypting the PKDF value with the public key;
storing the encrypted PKDF value;
deleting the password and the PKDF value from memory on the computing device;
establishing a secure channel with the server;
sending the encrypted PKDF value to the server;
receiving a decrypted PKDF value from the server; and
combining the decrypted PKDF value with the device specific random data to derive the encryption key;
wherein the secure channel is established with cryptographic credentials which are distinct from the password, the PKDF value,
and the public and private key pair.

US Pat. No. 9,684,444

PORTABLE ELECTRONIC DEVICE AND METHOD THEREFOR

BlackBerry Limited, Wate...

1. A portable electronic device comprising:
a display;
a memory;
a processor coupled to the display and the memory, the memory storing statements and instructions for execution by the processor
to carry out a method of:

displaying, in a first view on the display, a first application interface providing a visual representation of a first application;
receiving a navigational command to access a second application visually represented by a second application interface;
displaying, in a transitional view on the display and in response to the received navigational command, a transition between
the first application interface and the second application interface, the transitional view including the first and second
application interfaces displayed as appearing in a non-overlapping arrangement on a planar surface, and the transitional view
further including the first and second application interfaces displayed as moving translationally along the planar surface;
and

displaying, in a second view on the display, the second application interface.

US Pat. No. 9,479,541

SHARING DATA ACROSS PROFILES

BlackBerry Limited, Wate...

1. A mobile device, comprising:
a display component;
data processing apparatus; and
memory storing a first application associated with a first profile on the mobile device, a first hybrid agent associated with
the first profile, a second application associated with a second profile on the mobile device, and a second hybrid agent associated
with the second profile, wherein the first and the second hybrid agents are modules configured to provide secure date sharing
across profiles;

the first hybrid agent comprising computer-readable instructions that, when executed by the data processing apparatus, cause
the data processing apparatus to:

receive, from the first application, a first request for application data associated with the second application;
in response to receiving the first request, send to the second hybrid agent a second request for the application data;
receive, in response to the second request and from the second hybrid agent, the application data from the second hybrid agent;
and

send the application data to the first application, wherein the application data is used by the first application to generate
a graphical interface for presentation on the display component, the graphical interface comprising a unified view of data
associated with the first and second profiles; and

the second hybrid agent comprising computer-readable instructions that, when executed by the data processing apparatus, cause
the data processing apparatus to:

in response to receiving the second request, determine that the first application is authorized to receive the application
data based on a security policy;

retrieve the application data from the second application; and
send the application data to the first hybrid agent.

US Pat. No. 9,437,181

OFF-AXIS AUDIO SUPPRESSION IN AN AUTOMOBILE CABIN

2236008 Ontario Inc., Wa...

1. A method of off-axis audio suppression in an audio environment comprising:
receiving first and second audio signals from first and second microphones positioned within the audio environment;
calculating a phase difference between the first and second audio signals;
calculating a direction error between the calculated phase difference and a target slope, the target slope defining a desired
phase difference between signals from the first and second microphones corresponding to audio originating from a region of
interest; and

processing the first and second audio signals based on the calculated direction error to determine if the first and second
audio signals correspond to audio originating from the region of interest and to suppress off-axis audio relative to the positions
of the first and second microphones and the region of interest and further comprising adjusting the target slope based on
the calculated phase difference between the first and second audio signals to adapt the region of interest based on a location
of a human speaker within the audio environment.

US Pat. No. 9,361,156

ADAPTIVE PARTITIONING FOR OPERATING SYSTEM

2236008 ONTARIO INC., Wa...

1. A system comprising:
a processor;
one or more memory storage units;
software code stored in the one or more memory storage units, where the software code is executable by the processor and comprises:
a plurality of adaptive partitions each having a respective guaranteed processor time budget and one or more process threads;
a plurality of process threads each having a priority and each belonging to any one of the plurality of adaptive partitions;
and

a process scheduler executable by the processor configured to:
when the system is under a normal load, allocate the processor to a process thread, of the plurality of process threads, that
is ready for execution and having the highest priority amongst process threads, of the plurality of process threads, that
are ready for execution; and

when the system is in overload, allocate the processor to a process thread, of the plurality of process threads, that is ready
for execution, having the highest priority amongst process threads, of the plurality of process threads, that are ready for
execution and for which the adaptive partition having the process thread has an available guaranteed processor time budget.

US Pat. No. 9,106,196

SOUND FIELD SPATIAL STABILIZER WITH ECHO SPECTRAL COHERENCE COMPENSATION

2236008 Ontario Inc., Wa...

15. A system for maintaining spatial stability of a sound field comprising:
a balance calculator to calculate balance gains for each of two or more microphone signals;
two or more signal value generators, each one associated with one of the two or more microphone signals, to calculate one
or more signal values;

an echo filter to calculate a predicted echo for a received audio signal;
a coherence echo calculator to calculate a pair-wise echo spectral coherence between the predicted echo and each of the two
or more microphone signals;

a coherence calculator to calculate a pair-wise spectral coherence between each of the two or more microphone signals; and
a gain adjuster to adjust the two or more microphone signals responsive to the calculated balance gains, the one or more signal
values, the echo spectral coherence and the pair-wise spectral coherence for each of the two or more microphone signals.

US Pat. No. 9,854,358

SYSTEM AND METHOD FOR MITIGATING AUDIO FEEDBACK

2236008 Ontario Inc., Wa...

14. A system for mitigating audio feedback comprising:
a frequency spectrum smoother to calculate a smoothed frequency spectrum of an audio signal;
a candidate feedback tone detector to detect candidate feedback tones responsive to a frequency spectrum of the audio signal,
the smoothed frequency spectrum and previously detected candidate feedback tones;

a signal characteristic calculator to calculate one or more signal characteristics associated with the audio signal;
a feedback coefficient calculator to calculate feedback coefficients associated with the candidate feedback tones responsive
to the one or more signal characteristics; and

a feedback detector to determine actionable feedback tones responsive to the associated feedback coefficients exceeding a
respective feedback threshold.

US Pat. No. 9,836,587

SYSTEM AND METHOD FOR GRANTING PERMISSION FOR A MACHINE ACTION

2236008 Ontario Inc., Wa...

1. A method performed within a network accessible server-based architecture for granting permission for a machine action comprising:
receiving, at one or more processing devices, a machine generated request associated with a source, where the machine generated
request comprises request parameters that include a requested machine action, a target recipient of the requested machine
action, and the source of the requested machine action;

deriving a request hash of the request parameters;
accessing with the one or more processing devices a stored set of capabilities on a memory operably coupled to the one or
more processing devices, the memory comprising a device for storing and retrieving data, where each of the one or more capabilities
comprises a capability hash of permission parameters that include a permissible action, a specified recipient of the permissible
action, and a specified source of the permissible action;

for each of the one or more capabilities in the stored set of capabilities:
determining with the one or more processing devices whether the request hash of the request parameters associated with the
machine generated request match the capability hash of the permission parameters associated with the capability; and

granting permission to apply the machine generated request to the target recipient when a match of the request hash and the
capability hash is determined

wherein at least one of the source and the target recipient reside outside of the network accessible server-based architecture.

US Pat. No. 9,720,915

PRESENTING METADATA FROM MULTIPLE PERIMETERS

BlackBerry Limited, Wate...

1. A method of presenting data through a display of a device, the device comprising a first logical separation of resources
and a second logical separation of resources, the method comprising:
presenting information based on a combination of first metadata associated with the first logical separation of resources
and second metadata associated with the second logical separation of resources when the second logical separation of resources
is unlocked; and

presenting information based on a combination of the first metadata and a portion of the second metadata when the second logical
separation of resources is locked, the portion of the second metadata being less than the second metadata used when the second
logical separation of resources is unlocked,

wherein the second logical separation of resources is configured to prevent resources of the device external to the second
logical separation of resources from accessing resources associated with second logical separation of resources.

US Pat. No. 9,613,219

MANAGING CROSS PERIMETER ACCESS

BlackBerry Limited, Wate...

1. A method of managing access to resources in a device, comprising:
receiving, by a hardware data processing apparatus on the device, from a first resource associated with a first plurality
of resources defined on the device, a request to access a second resource associated with a second plurality of resources,
wherein the device includes the first plurality of resources, the first resource, the second plurality of resources, and the
second resource, and wherein the first plurality of resources and the second plurality of resources are logically separated
and access between the first plurality of resources and the second plurality of resources is determined based on one or more
management policies, the first plurality of resources including a first network connection profile and a first encryption
certificate for the first plurality of resources, and the second plurality of resources including a second network connection
profile and a second encryption certificate for the second plurality of resources, and wherein the request to access the second
resource comprises a request to make a network connection by the first resource using the second network connection profile;

determining, by a hardware data processing apparatus on the device, whether the request to make the network connection is
prohibited based on a first management policy for the first plurality of resources and a second management policy for the
second plurality of resources, the first management policy defining one or more rules for the first plurality of resources
for accessing resources associated with the second plurality of resources including the second resource, the second management
policy defining one or more rules for the second plurality of resources for allowing access to resources associated with the
second plurality of resources including the second resource, and the determination comprises:

if the first management policy prohibits the first resource to use any network connection profiles included in the second
plurality of resources to make the network connection, prohibiting the request to make the network connection; and

if the second management policy prohibits the resources outside of the second plurality of resources to use any network connection
profiles included in the second plurality of resources to make the network connection, prohibiting the request to make the
network connection;

when the request to make the network connection is granted, enabling the first resource associated with the first plurality
of resources to use the second network connection profile to make the network connection.

US Pat. No. 9,524,488

METHOD AND APPARATUS PERTAINING TO SHARING INFORMATION VIA A PRIVATE DATA AREA

BlackBerry Limited, Wate...

1. A method to facilitate sharing information between a plurality of processing entities that each have a corresponding private
data area at least in part in a memory of a same processing platform hosting the plurality of processing entities, data stored
in a private data area of one of the processing entities being accessible thereto and inaccessible to any other of the processing
entities, the method comprising:
by a control circuit, operably coupled to the memory of the same processing platform hosting the plurality of processing entities:
placing data corresponding to information from a first one of the private data areas for a first one of the processing entities
directly into a second one of the private data areas for a second one of the processing entities without placing the data
in an intervening shared data area, that is accessible to a plurality of the processing entities, and without the first one
or the second one of the processing entities directly invoking a system administrator-like entity that can access the first
one and the second one of the private data areas with impunity to read data and/or write data.

US Pat. No. 9,516,418

SOUND FIELD SPATIAL STABILIZER

2236008 Ontario Inc., Wa...

1. A computer implemented method for maintaining spatial stability of a sound field comprising:
calculating one or more balance gains for two or more microphone signals, where each of the two or more microphone signals
is from a corresponding one of two or more microphones, the one or more balance gains represent a detected balance of a spatial
image of the sound field received by the microphones;

calculating one or more signal values for each of the two or more microphone signals;
limiting differences between corresponding one or more signal values for each of the two or more microphone signals; and
maintaining the detected balance of the sound field in two or more output signals generated by gain adjusting the two or more
microphone signals taking into account the one or more balance gains and the limited one or more signal values for each of
the two or more microphone signals.

US Pat. No. 9,949,034

SOUND FIELD SPATIAL STABILIZER

2236008 Ontario Inc., Wa...

1. A method for maintaining spatial stability of a received sound field, the method comprising:calculating one or more balance gains for two or more microphone signals, wherein each of the two or more microphone signals is from a corresponding one of two or more microphones, the one or more balance gains represent a detected balance of a spatial image of the received sound field, the received sound field received by the microphones;
performing audio processing on the two or more microphone signals resulting in generated signal gains for the two or more microphone signals; and
maintaining the detected balance of the spatial image of the received sound field in two or more output signals over time, wherein maintaining the detected balance of the spatial image includes:
adjusting the generated signal gains over time based on the one or more balance gains, and
generating the two or more output signals by gain adjusting the two or more microphone signals according to the adjusted generated signal gains.

US Pat. No. 9,843,880

ENHANCED SPATIALIZATION SYSTEM WITH SATELLITE DEVICE

2236008 Ontario Inc., Wa...

1. A system that enhances spatialization with a satellite microphone comprising:
a plurality of microphones arranged in an array that convert sound waves into electrical signals;
a satellite device that processes sound waves at a location remote from the plurality of microphones, wherein the satellite
device is movable relative to the plurality of microphones; and

a spatial analyzer configured to:
analyze the sound waves received by the plurality of microphones and the sound waves received by the satellite device to derive
a directionality of the sound waves received by the satellite device relative to a directionality of the sound waves received
by the plurality of microphones;

determine whether the satellite device has changed position relative to the plurality of microphones;
smoothing the directionality of the sound waves recived by the satellite device related to the directionality of the sound
waves recived by the plurality of microphones over time to limit sudden changes in derived sound directionality; and

when a specified condition is met, update the directionality of the sound waves received by the satellite device relative
to the directionality of the sound waves received by the plurality of microphones.

US Pat. No. 9,723,118

METHOD OF IDENTIFYING CONTACTS FOR INITIATING A COMMUNICATION USING SPEECH RECOGNITION

BlackBerry Limited, Wate...

1. A method of initiating a communication using speech recognition on a mobile wireless communication device, comprising:
receiving through a microphone a voice input for initiating a communication;
parsing the voice input using speech recognition to identify and extract a name and a communication type to be initiated from
a plurality of potential communication types including a telephone call, email, SMS message, MMS message, instant message,
device-to-device message and a social media service message;

searching a local address book stored in a memory of the mobile wireless communication device to determine whether any contact
records in the local address book match the extracted information, wherein the local address book is searched to identify
all records having both a contact name including the name extracted from the voice input and a populated address field associated
with the communication type extracted from the voice input;

when only one contact record in the local address book matches the extracted information, automatically initiating a communication
to a contact address from the populated address field of the contact record using an application associated with the communication
type;

when more than one contact record in the local address book matches the extracted information, outputting to an output interface
of the mobile wireless communication device, a selectable list of all of the matching contacts, receiving selection of one
of the contacts from the selectable list via an input interface of the mobile wireless communication device, and initiating
a communication to a contact address from the populated address field of the contact record using an application associated
with the communication type.

US Pat. No. 9,674,337

SYSTEM AND METHOD FOR DISTRACTION MITIGATION

2236008 Ontario Inc., Wa...

1. A method for distraction mitigation comprising:
receiving one or more signals containing location information associated with one or more emitters, wherein the one or more
emitters are located within a vehicle;

determining under instructions from a microprocessor a location of a mobile device within the vehicle in response to receiving
the one or more signals associated with the location information associated with the one or more emitters;

receiving a signal containing zone information defining one or more zones of a plurality of zones in the vehicle;
determining at the mobile device if the mobile device is located within the one or more zones of the plurality of zones in
the vehicle in response to receiving the signal generated in the vehicle containing the zone information; and

modifying the behavior of the mobile device under instructions from the microprocessor in response to the one or more zones,
that the mobile device is determined to be in;

where the location information and the zone information .s are added to an audio signal and the location information and the
zone information are masked in response to a time and frequency based psychoacoustic model that is utilized to determine where
within the audio signal the location information and the zone information are added to the audio signal.

US Pat. No. 9,632,584

ON-DEMAND USER CONTROL

2236008 Ontario Inc., Wa...

1. A method for on-demand user control on a system having a display device, the method comprising:
detecting a user's intent to interact with a displayable control not yet shown on the display device by detecting the user's
hand in relation to a touch sensitive display;

selecting the type of displayable control to be rendered on the touch sensitive display device in response to the detection
of the user's hand in relation to the touch sensitive display;

displaying, on the touch sensitive display, the selected displayable control at a location on the touch sensitive display
in response to detecting the user's intent and the location associated with the detected user's intent, displaying the selected
displayable control

comprising progressively rendering different portions of the selected displayable control's three dimensional depth in response
to the detection of the presence of the user's hand approaching the touch sensitive display of the selected displayable control,
a final appearance of the selected displayable control being rendered when a portion of the user's hand is positioned above
a portion of the display and at least a portion of the selected displayable control; and

receiving an interaction with the selected displayable control from the user;
the appearance of the selected displayable control first rendered on the touch sensitive display is being based on the user's
detected intent; and the progressively rendering different portions of the selected displayable control's three dimensional
depth corresponding to the changing distance between the user's hand and the selected displayable control; and

displaying the selected displayable control further comprising animating the touch sensitive display to cause the selected
displayable control to appear to be morphed from a background image.

US Pat. No. 9,981,602

SYSTEM AND METHOD FOR PEDESTRIAN ALERT

2236008 Ontario Inc., Wa...

1. A method for issuing a pedestrian alert comprising:deriving a pedestrian path representing a projected path for a pedestrian;
deriving a vehicle path representing a projected path for a vehicle;
determining an intersection of the pedestrian path and the vehicle path;
determining an alert characteristic responsive to the determined intersection; and
emitting an alert signal from the vehicle responsive to the determined alert characteristic using an array of loudspeakers, wherein the determined alert characteristic includes a direction and the alert signal is emitted in a direction responsive to the direction characteristic, and the direction of the emitted signal from the array of loudspeakers is electronically steered using phase modulation;
wherein the emitted alert signal draws the attention of the pedestrian to the presence of the vehicle to mitigate the likelihood of a collision between the vehicle and the pedestrian.

US Pat. No. 9,736,611

ENHANCED SPATIALIZATION SYSTEM

2236008 Ontario Inc., Wa...

1. A system that enhances spatialization, comprising:
a receiver that processes incoming signals received from a plurality of input devices that convert sound into electrical signals;
a processor that executes a non-transitory computer readable storage medium comprising:
computer program code that derives from the received incoming signals spatial information comprising locations of each of
one or more sound sources relative to the plurality of input devices by computing over a range of frequencies an amplitude
ratio for a first received signal rotated into phase with a second received signal, and computing from the amplitude ratio
over the range of frequencies an average amplitude ratio; and

computer program code that derives from the average amplitude ratio a set of fading weights used for mixing the received incoming
signals into each channel of a multichannel output signal to emulate at a receiving location, spatial information representing
locations of each of the sound sources relative to the plurality of input devices.

US Pat. No. 9,122,575

PROCESSING SYSTEM HAVING MEMORY PARTITIONING

2236008 ONTARIO INC., Wa...

1. A memory resource management system for managing memory storage, the memory resource management system comprising:
a virtual memory allocator adapted to respond to memory requests from a process, the virtual memory allocator using virtual
memory locations that are mapped to physical memory locations;

a physical memory allocator adapted to allocate physical memory and track which process is using which physical memory locations;
and

a partitioning module that arbitrates communications between the virtual memory allocator and the physical memory allocator,
where the partitioning module generates and manages memory partitions associated with the memory requests, and where each
memory partition is generated for a single memory class and managed based on rules established on a per memory class basis
in accordance with predetermined attributes of the memory partition, the attributes including an amount of memory reserved
for the memory partition and an amount of discretionary memory which is not guaranteed to be available for the memory partition;
and

the partitioning module associates a process with multiple partitions in instances when the process creates objects that utilize
multiple different memory classes.

US Pat. No. 9,503,813

SYSTEM AND METHOD FOR DYNAMIC RESIDUAL NOISE SHAPING

2236008 Ontario Inc., Wa...

1. A dynamic residual noise shaping method, comprising:
detecting an amount and a type of hiss noise in an audio signal;
calculating noise suppression gains by applying a noise reduction filter to the audio signal; and
modifying the calculated noise suppression gains by applying a dynamic attenuation floor responsive to the detected amount
and type of hiss noise.

US Pat. No. 9,944,127

SYSTEM AND METHOD FOR SYNTHESIZING AN ENGINE SOUND

2236008 Ontario Inc., Wa...

1. A method for synthesizing an engine sound comprising:receiving one or more vehicle operational data signals associated with a vehicle;
modifying one or more tone parameters associated with a Shepard tone generator through a signal processor responsive to the one or more vehicle operational data signals;
generating a Shepard tone responsive to the signal processor that renders the modified one or more tone parameters;
generating an audio post processing feedback parameter by post processing the Shepard tones;
reproducing the Shepard tone using one or more audio transducers;
where the modification of the one or more tone parameters occurs when the vehicle's velocity is substantially constant resulting in a low volume level of the reproduced Shepard tone;
where the signal processor modifies the audio post processing feedback parameter when a vehicle operating condition is detected.

US Pat. No. 9,916,841

METHOD AND APPARATUS FOR SUPPRESSING WIND NOISE

2236008 Ontario Inc., Wa...

1. A method for attenuating noise in a signal detected by a sound detector device, comprising:
receiving separately by the sound detector device, at least a first signal and a second signal, wherein the first signal and
the second signal being uncorrelated to each other both in phase and in amplitude;

performing separately, a time-frequency transform on the first signal and the second signal to obtain respective transformed
data, wherein the first signal and the second signal remain uncorrelated to each other both in phase and in amplitude when
respectively being time-frequency transformed;

performing signal analysis on the respective transformed data, by a processor, to identify wind noise in the respective transformed
data that is caused by wind pressure fluctuations associated with wind striking a portion of the sound detector device;

identifying the wind noise by detecting a difference of both the amplitude and the phase between a plurality of signal peaks
that comprise the respective transformed data that exceed an amplitude threshold and a phase threshold, respectively to identify
the wind noise; and

attenuating at least a portion of the wind noise identified in the respective transformed data.

US Pat. No. 9,747,003

MULTIPLE-STAGE INTERFACE CONTROL OF A MOBILE ELECTRONIC DEVICE

BlackBerry Limited, Wate...

1. A method implemented by an electronic device, the method comprising:
sequentially displaying, on a display of the electronic device, a plurality of panels of a homescreen of the electronic device,
the plurality of panels comprising:

a panel comprising a fullscreen view for a unified inbox application on the electronic device;
when a plurality of applications is executing in a multitasking mode on the electronic device, a fullscreen multitasking panel
comprising one or more reduced-size views of the applications executing in the multitasking mode on the electronic device,
the fullscreen multitasking panel being excluded from the plurality of panels when no application other than the unified inbox
application is executing in the multitasking mode; and

a plurality of fullscreen launch panels comprising a plurality of graphical user interface elements, each of the plurality
of graphical user interface elements being associated with a corresponding application entry point, wherein sequentially displaying
the plurality of panels comprises:

displaying a first fullscreen launch panel of the plurality of fullscreen launch panels;
when a directional swipe gesture in a first direction is detected on the first fullscreen launch panel, displaying the fullscreen
multitasking panel in place of the first fullscreen launch panel when the fullscreen multitasking panel is included in the
plurality of panels, and displaying the fullscreen view for the unified inbox application when the fullscreen multitasking
panel is excluded from the plurality of panels; and

when a directional swipe gesture in a second direction opposite to the first direction is detected on the first fullscreen
launch panel, displaying a second fullscreen launch panel of the plurality of fullscreen launch panels.

US Pat. No. 9,769,568

SYSTEM AND METHOD FOR SPEECH REINFORCEMENT

2236008 Ontario Inc., Wa...

1. A method for speech reinforcement comprising:
determining, by a processor, a spatial location of an audio source;
determining, by the processor, a spatial location of a listener;
capturing an audio signal generated by the audio source;
determining, by the processor, a spatial location, relative to the listener, of two or more audio transducers that emit a
reinforcing audio signal to reinforce the audio signal; and

processing, by the processor, the captured audio signal, responsive to the spatial location of the audio source, the spatial
location of the listener, and the spatial location of the two or more audio transducers, to generate the reinforcing audio
signal wherein, when emitted by the two of more audio transducers, the listener perceives a source transmitting the reinforcing
audio signal to be spatially located in substantially the same spatial location of the audio source; and

wherein the processor convolves a transfer function of a desired spatial reinforcement signal with an inverse transfer function
of a cross reinforcement signal.

US Pat. No. 9,767,784

SYSTEM AND METHOD FOR ACOUSTIC MANAGEMENT

2236008 Ontario Inc., Wa...

12. A system for acoustic management comprising:
an acoustic management module:
receiving first control parameters from a first audio processing module and receiving second control parameters from a second
audio processing module;

deriving an audio processing interaction between with the first audio processing module and the second audio processing module
determined from the first control parameters and the second control parameters;

modifying the first control parameters and the second control parameters responsive to the derived audio processing interaction;
and

transmitting the modified first control parameters to the first audio processing module and the modified second control parameters
to the second audio processing module where each of the first audio processing module and the second audio processing module
performs one or more of processing audio captured from an acoustic environment and processing audio to be reproduced in the
acoustic environment.

US Pat. No. 9,703,370

DEVICES AND METHODS FOR DISPLAYING DATA IN RESPONSE TO DETECTED EVENTS

BlackBerry Limited, Wate...

1. A method for use at a first electronic device, the first electronic device being communicatively coupled with a second
electronic device, the method comprising, at the first electronic device:
generating first data for display at the first electronic device, the first data pertaining to an application running on the
first electronic device;

displaying the first data at the first electronic device;
receiving a signal at the first electronic device from the second electronic device in response to a gesture input event detected
at the second electronic device, the signal for causing the first electronic device to generate and send application data
for display on the second electronic device;

wherein the first electronic device and the second electronic device are end user computing devices;
in response to the received signal:
modifying the first data displayed on the first electronic device to indicate that data input to the application running on
the first electronic device is activated at the second electronic device and deactivated at the first electronic device;

generating second data for display at the second electronic device, the second data pertaining to the application running
on the first electronic device and being substantially similar to the first data displayed at the first electronic device;
and

sending the second data to the second electronic device for display on the second electronic device;
wherein the application is only active on the first electronic device;
receiving, at the first electronic device, from the second electronic device, user-entered data entered at the second electronic
device for initiating a modification of the application data such that the application that is only active on the first electronic
device is controlled to perform actions based on user selections at the second electronic device; and

in response to receiving at the first electronic device, the user-entered data entered at the second electronic device:
at the first electronic device, updating the application data with the user-entered data to generate:
updated first data modifying the application at the first electronic device and updated second data; and
sending the updated second data to the second electronic device for display.

US Pat. No. 9,692,788

METHOD AND SYSTEM FOR DOMAIN CREATION AND BOOTSTRAPPING

BlackBerry Limited, Wate...

1. A method at a mobile device for creating a managed domain on the mobile device, the method comprising:
initializing a container on the mobile device to house the managed domain, said initializing comprising creating the container,
the domain comprising a virtualized operating system, and the container comprising a memory area on the device to house the
managed domain;

after said initializing the container, retrieving a management agent for the managed domain;
installing the management agent into the initialized container and executing the management agent within the initialized container;
establishing, by the management agent, policies to govern the creation of the managed domain; and
configuring the initialized container for the domain based on the established policies.

US Pat. No. 9,524,729

SYSTEM AND METHOD FOR NOISE ESTIMATION WITH MUSIC DETECTION

2236008 Ontario Inc., Wa...

1. A method, executable on one or more processors, for noise estimation with music detection, the method comprising:
generating a music classification for music content in an audio signal comprising a value selected from a range of values
indicating a proportion of an amount of music content to an amount of non-music content in the audio signal and a voice classification
for voice content in an audio signal;

adjusting an adaption rate responsive to the generated music classification and the generated voice classification; and
calculating a noise estimate applying the adjusted adaption rate;
where the adaption rate varies inversely with the strength of the music content detected in the audio signal.

US Pat. No. 10,114,634

UPDATING A CONTROLLER UNIT IN A VEHICLE

2236008 Ontario Inc., Wa...

1. A method comprising:receiving, by a service, releases comprising machine-readable instructions from different vendors, the releases for respective controller units of a vehicle;
presenting, by the service, a console accessible by the vendors to provide the releases to the service; and
communicating, by the service, the releases wirelessly to the vehicle to update machine-readable instructions executing on the respective controller units of the vehicle.
US Pat. No. 9,756,440

MAINTAINING SPATIAL STABILITY UTILIZING COMMON GAIN COEFFICIENT

2236008 Ontario Inc., Wa...

1. A method for maintaining the spatial stability of a sound field, the method comprising:
receiving a first audio signal and a second audio signal each corresponding to a distinct channel in a multichannel audio
signal, where the multichannel audio signal includes sound field content that is a spatial representation of an audible environment;

calculating a plurality of gain coefficients for the first audio signal, where the plurality of gain coefficients for the
first audio signal is calculated to remove a plurality of undesired content in the first audio signal;

calculating a plurality of gain coefficients for the second audio signal, where the plurality of gain coefficients for the
second audio signal is calculated to remove a plurality of undesired content in the second audio signal;

selecting a common gain coefficient from amongst the plurality of gain coefficients for the first audio signal and the plurality
of gain coefficients for the second audio signal; and

applying the common gain coefficient to each of the first audio signal and the second audio signal, wherein the spatial representation
of the sound field is substantially maintained when the audible environment is reproduced using the first audio signal and
the second audio signal with the common gain coefficient applied;

where the selection of the common gain coefficient is responsive to the plurality of gain coefficients calculated for the
first audio signal and the plurality of gain coefficients calculated for the second audio signal.

US Pat. No. 9,947,318

SYSTEM AND METHOD FOR PROCESSING AN AUDIO SIGNAL CAPTURED FROM A MICROPHONE

2236008 Ontario Inc., Wa...

1. A method for processing an audio signal captured from a microphone comprising:reproducing a reference audio signal with an audio transducer into an acoustic space, the reference audio signal representative of audio not present in the acoustic space prior to reproducing the reference audio signal;
capturing a microphone audio signal from the acoustic space, the microphone audio signal comprises a known audio signal corresponding to the reference audio signal and one or more unknown audio signals corresponding to noise in the acoustic space;
receiving processing control information created by a downstream audio processor configured to recognize speech and alternate between a plurality of speech processing modes, the speech processing modes including a keyword recognition mode and voice recognition mode, the processing control information indicative of a current speech processing mode configured on the downstream audio processor;
determining, in response to receipt of the processing control information, that the current speech processing mode configured on the downstream audio processer changed from at least one of the speech processing modes to the keyword recognition mode or the voice recognition mode;
identifying, based on the reference audio signal, the known audio signal in the microphone audio signal; and
adjusting reduction of the known audio signal in the microphone audio signal in response to determination that the downstream audio processer changed from at least one of the speech processing modes to the keyword recognition mode or the voice recognition mode.

US Pat. No. 9,904,532

SYSTEM AND METHOD FOR DISTRIBUTING SOFTWARE UPDATES

2236008 ONTARIO INC., Wa...

1. A method for distributing software updates to a plurality of devices comprising:
receiving at a service delivery platform, a plurality of single number hashed hardware version information, wherein each single
number hashed hardware version information is associated with a respective one of the plurality of devices, that are separate
from the service delivery platform, the single number hashed hardware version information providing a composite identifier
associated with one or more device states, of its respective one of the plurality of device, which includes hardware version
information and a plurality of computing component states associated with a plurality of computing components each contained
in the respective one of the plurality of devices, each of the plurality of associated computing component states includes
hardware version information;

receiving a software update configuration at the service delivery platform, the software update configuration defining available
software update files and hardware versions to be applied to a device or computing component and relevant device states and
computing component states for applying the respective software update;

receiving one or more software update files at the service delivery platform associated with the software update configuration;
determining a candidate device list utilizing the software update configuration and the single number hashed hardware version
information for each of the one of the plurality of devices, the candidate device list containing references to one or more
targeted devices of the plurality of devices and associated plurality of computing components, and reference to one or more
software update files to apply to each of the one or more targeted devices and associated plurality of computing components
targeted to receive one or more of the one or more software update files by comparing the single number hashed version information
for each of the one of the plurality of devices with a single number associated with version information for each device including
hardware component version information, hardware states, computing component version information, and associated computing
state information and version information contained in the software update configuration; and

transmitting each of the one or more software update files referenced in the candidate device list to the determined one or
more targeted devices to be installed.

US Pat. No. 9,794,419

METHOD AND SYSTEM FOR TRANSITION OF APPLICATIONS TO A SECOND CELLULAR DATA NETWORKING INTERFACE FOR A VIRTUAL SIM SERVICE

BlackBerry Limited, Wate...

1. A method at a user equipment to facilitate splitting of data billing between at least two parties, the method comprising:
assigning a first subset of application to a first forwarding information base (“FIB”) on the user equipment;
creating, within the first FIB, an association of the first FIB to a first cellular data interface;
activating the splitting of data billing on the user equipment; and
replacing, within the first FIB, the association of the first FIB to the first cellular data interface with an association
between a second cellular data interface and the first FIB.

US Pat. No. 10,042,680

CROSS-DOMAIN DATA SHARING WITH PERMISSION CONTROL

BlackBerry Limited, Wate...

1. A method performed on an electronic device, the method comprising:executing a first clipboard agent in a first operating system (OS) domain of the electronic device, the first clipboard agent associated with a first clipboard service of the first OS domain;
coordinating between the first clipboard agent and a second clipboard agent of a second OS domain of the electronic device regarding clipboard commands in the first OS domain and the second OS domain;
mediating, at the first clipboard agent, cross-domain access to the first clipboard service based at least in part on permissions associated with the first OS domain;
receiving, at the first clipboard agent, a clipboard request from a first application in the first OS domain requesting to retrieve content from the first clipboard service;
determining that the second OS domain has most recently processed a store command associated with storing the content in a corresponding clipboard service of the first and second OS domains; and
sending a cross-domain request to the second clipboard agent to request the content from a second clipboard service in the second OS domain,
wherein the first clipboard agent and the second clipboard agent separately enforce security parameters to limit access to content stored in the first clipboard service and the second clipboard service, respectively, the security parameters comprising at least one of:
one or more keyword-based permissions specifying that access to content from the first or second clipboard service is restricted to content that does not contain one or more specific keywords;
one or more time-specific permissions specifying that access to content from the first or second clipboard service is restricted to one or more specific days and/or times of the day; or
one or more location-specific permissions specifying that access to content stored in the first or second clipboard service is restricted to when the electronic device is at one or more specific locations.

US Pat. No. 9,881,632

SYSTEM AND METHOD FOR ECHO SUPPRESSION FOR IN-CAR COMMUNICATIONS

2236008 Ontario Inc., Wa...

1. A method that enhances speech through reinforcement comprising:
capturing one or more microphone signals containing echo from loudspeaker signals reproduced by one or more loudspeakers;
decomposing the loudspeaker signals into a plurality of virtual audio sources where the number of the plurality of virtual
audio sources is less than the number of the one or more loudspeakers;

estimating the echo paths from each of the plurality of virtual audio sources to each of the one or more microphones; and
processing the captured microphone signals in response to the estimated echo paths by subtracting the echo contributions of
each of the plurality of virtual audio sources to the one or more microphones.

US Pat. No. 10,140,089

SYNTHETIC SPEECH FOR IN VEHICLE COMMUNICATION

2236008 Ontario Inc., Wa...

1. A method that enhances voice through synthetic speech reinforcement comprising:capturing one or more microphone signals;
estimating a plurality of echo paths from each of the one or more microphone signals;
synthesizing a speech reinforcement signal in response to and corresponding to speech detected in the one or more microphone signals, wherein synthesizing the speech reinforcement signal includes inferring the speech reinforcement signal from a linguistic context of the captured one or more microphone signals;
concatenating portions of the synthesized speech reinforcement signal with the captured microphone signals to render a reinforcement signal; and
processing the captured microphone signals in response to the estimated plurality of echo paths by subtracting the echo contributions of each of the plurality of echo paths from the captured microphone signals.

US Pat. No. 10,115,174

SYSTEM AND METHOD FOR FORWARDING AN APPLICATION USER INTERFACE

2236008 Ontario Inc., Wa...

1. A method for forwarding application user interfaces, the method comprising:generating a first source content that represents a first application user interface on a first computing platform;
generating a second source content that represents a second application user interface on the first computing platform;
encoding the first application user interface and the second application user interface independently into two or more encoded content streams on the first computing platform where the two or more encoded content streams contain composition metadata and information reproducible as a composite application user interface where the composition metadata includes information for compositing graphics content from the two or more encoded content streams for concurrent representation in a display; and
sending the two or more encoded content streams from the first computing platform to a second computing platform on which the two or more encoded content streams are decodable into two or more decoded independent content streams from which the composite application user interface is compositable based on the composition metadata, the two or more encoded content streams comprising commands based on a graphics API for rendering graphical images accelerated by a GPU (Graphics Processing Unit), where the composite application user interface enables a user to send a command to the first computing platform through an input received on the second computing platform, where the second computing platform includes the GPU capable of rendering the composite application user interface including the graphics content based on the commands and the composition metadata from the two or more encoded content streams to the user.

US Pat. No. 10,074,150

SYSTEM AND METHOD FOR FORWARDING AN APPLICATION USER INTERFACE

2236008 Ontario Inc., Wa...

1. A method for forwarding application user interfaces, the method comprising:generating a first source content that represents a first application user interface on a first computing platform;
generating a second source content that represents a second application user interface on the first computing platform;
encoding the first application user interface and the second application user interface independently into two or more encoded content streams on the first computing platform where the two or more encoded content streams contain composition metadata and information reproducible as a composite application user interface where the composition metadata includes information for compositing graphics content from the two or more encoded content streams for concurrent representation in a display; and
sending the two or more encoded content streams from the first computing platform to a second computing platform on which the two or more encoded content streams are decodable into two or more decoded independent content streams from which the composite application user interface is compositable based on the composition metadata, the two or more encoded content streams comprising commands based on a graphics API for rendering graphical images accelerated by a GPU (Graphics Processing Unit), where the composite application user interface enables a user to send a command to the first computing platform through an input received on the second computing platform, where the second computing platform includes the GPU capable of rendering the composite application user interface including the graphics content based on the commands and the composition metadata from the two or more encoded content streams to the user.

US Pat. No. 9,978,355

SYSTEM AND METHOD FOR ACOUSTIC MANAGEMENT

2236008 Ontario Inc., Wa...

1. A non-transitory machine-readable medium encoded with machine-executable instructions, wherein execution of the machine-executable instructions is for:receiving first control parameters from a first audio processing module;
receiving second control parameters from a second audio processing module;
deriving an audio processing interaction between with the first audio processing module and the second audio processing module determined from the first control parameters and the second control parameters;
modifying the first control parameters and the second control parameters responsive to the derived audio processing interaction; and
sending the modified first control parameters to the first audio processing module and the modified second control parameters to the second audio processing module where the first audio processing module and the second audio processing module performs one or more of processing audio captured from an acoustic environment and processing audio to be reproduced in the acoustic environment.

US Pat. No. 9,788,112

ACTIVE NOISE EQUALIZATION

2236008 Ontario Inc., Wa...

1. A method for active noise equalization comprising:
obtaining a sync signal from a noise source reproduced into an acoustic space;
generating a noise model, representing one or more complex tones, responsive to the sync signal;
receiving an audio signal representing a sound field in the acoustic space;
applying an estimate of a secondary path transfer function to the noise model in a frequency domain; and
applying a transformation function to the noise model where the transform function is responsive to reducing a sum of the
output of the transformation function and the received audio signal;

where applying the estimate of the secondary path transfer function comprises an online calculation; and where an output of
the secondary path transfer function is limited to a range of frequencies that lies within an aural range.

US Pat. No. 9,743,179

SOUND FIELD SPATIAL STABILIZER WITH STRUCTURED NOISE COMPENSATION

2236008 Ontario INC., Wa...

1. A method comprising:
determining a spatial image of a sound field received by two or more microphone signals, the determining the spatial image
of the sound field comprising measuring an energy level of each of the two or more microphone signals, where each of the two
or more microphone signals is from a corresponding one of two or more microphones;

detecting structured noise content in at least one of the two or more microphone signals; and
generating two or more output signals with a circuit by combining at least a portion of a first signal of the two or more
microphone signals with a second signal of the two or more microphone signals responsive to the detected structured noise
content in the at least one of the two or more microphone signals, where the generating the two or more output signals comprises
causing a ratio of energy levels between two of the two or more output signals to match a ratio of the energy levels between
two of the two or more microphone signals.

US Pat. No. 9,563,780

MANAGING CROSS PERIMETER ACCESS

BlackBerry Limited, Wate...

1. A method of managing access to resources in a device, comprising:
receiving, by a hardware data processing apparatus on the device, from a first resource associated with a first plurality
of resources defined on the device, a request to access a second resource associated with a second plurality of resources,
wherein the device includes the first plurality of resources, the first resource, the second plurality of resources, and the
second resource, and wherein the first plurality of resources and the second plurality of resources are logically separated
and access between the first plurality of resources and the second plurality of resources is determined based on one or more
management policies, the first plurality of resources including a first network connection profile and a first encryption
certificate for the first plurality of resources, and the second plurality of resources including a second network connection
profile and a second encryption certificate for the second plurality of resources, and wherein the request to access the second
resource comprises a request to make a network connection by the first resource using the second network connection profile;

determining, by a hardware data processing apparatus on the device, whether the request to make the network connection is
prohibited based on a first management policy for the first plurality of resources and a second management policy for the
second plurality of resources, the first management policy defining one or more rules for the first plurality of resources
for accessing resources associated with the second plurality of resources including the second resource, the second management
policy defining one or more rules for the second plurality of resources for allowing access to resources associated with the
second plurality of resources including the second resource, and the determination comprises:

if the first management policy prohibits the first resource to use any network connection profiles included in the second
plurality of resources to make the network connection, prohibiting the request to make the network connection; and

if the second management policy prohibits the resources outside of the second plurality of resources to use any network connection
profiles included in the second plurality of resources to make the network connection, prohibiting the request to make the
network connection;

when the request to make the network connection is granted, enabling the first resource associated with the first plurality
of resources to use the second network connection profile to make the network connection.

US Pat. No. 10,135,938

PUBLISH-SUBSCRIBE SYSTEM

2236008 Ontario Inc., Wa...

1. A system comprising:a distributed computer architecture configured to service publish-subscribe events through file system commands, the distributed computer architecture including:
a processor configured to invoke a first file open function in a file system application programming interface in response to a publisher application that causes the processor to prepare to publish one or more attributes of an object associated with a publish-subscribe file;
the processor configured to invoke a file write function in the file system application programming interface that causes the processor to write or delete the one or more attributes of the object associated with the publish-subscribe file in response to data elements that accompany the file write function;
the processor configured to invoke a second file open function in the file system application program interface in response to a subscriber application that causes the processor to establish a subscription to the publish-subscribe file identified by the subscriber application;
the processor configured to invoke a notification to the subscriber application in response to the invocation of the file write function executed by the file system; and
the processor configured to, in response to the notification to the subscriber application that includes an identifier of the publish-subscribe file, invoke a file read function in the file system application programming interface that causes the processor to publish the one or more attributes of the object associated with the publish-subscribe file that changed since a prior invocation of the file read function.

US Pat. No. 10,162,042

METHODS AND DEVICES FOR CODING POSITION IN V2X COMMUNICATIONS

BlackBerry Limited, Wate...

1. A method of determining a geographic position of a sending device using a communications channel between a receiving device and the sending device, the sending device being nearby the receiving device, the method comprising:receiving, at the receiving device from the sending device over the communications channel, a message containing delta position data for the sending device from which a delta position can be determined;
determining a coordinate position of the receiving device and quantizing the coordinate position of the receiving device to obtain a receiving device quantized coordinate position;
disambiguating between candidate quantized coordinate positions for the sending device to identify a sending device quantized coordinate position used by the sending device to determine the delta position data;
determining a coordinate position of the sending device by adding the delta position to the identified sending device quantized coordinate position; and
causing an action based on the determined coordinate position of the sending device.

US Pat. No. 10,348,502

ENCRYPTING AND DECRYPTING DATA ON AN ELECTRONIC DEVICE

BlackBerry Limited, Wate...

1. A method of encrypting data, the method comprising:generating, by a primary data service application on an electronic device, a first primary secret key based on a primary ephemeral key pair and a primary master public key;
generating, by the primary data service application, a first primary ciphertext by encrypting a first portion of the data using the first primary secret key;
generating a second primary secret key based on the first primary secret key;
deleting the first primary secret key;
sending the first primary ciphertext from the primary data service application to a secondary data service application;
receiving, by the primary data service application, a first encrypted text from the secondary data service application, wherein the first encrypted text is generated by encrypting the first primary ciphertext;
generating, by the primary data service application, a second primary ciphertext by encrypting a second portion of the data using the second primary secret key;
deleting the second primary secret key;
sending the second primary ciphertext from the primary data service application to the secondary data service application; and
receiving, by the primary data service application, a second encrypted text from the secondary data service application, wherein the second encrypted text is generated by encrypting the second primary ciphertext.

US Pat. No. 10,313,218

MEASURING AND COMPENSATING FOR JITTER ON SYSTEMS RUNNING LATENCY-SENSITIVE AUDIO SIGNAL PROCESSING

2236008 Ontario Inc., Wa...

1. A system for real-time audio signal processing that receives one or more captured signals through a captured audio path which includes a microphone, and produces one or more playback signals through a playback audio path which includes a speaker, and executes one or more signal processing functions comprising:a processor configured to measure a playback delay corresponding to delays of the playback audio path and a capture delay corresponding to delays of the captured audio path during operation of the one or more signal processing functions, wherein measuring the playback delay and the capture delay includes measuring delay of a test signal played and received over a feedback channel, and wherein the feedback channel passes through components of the playback audio path and the captured audio path that produce jitter, and wherein the test signal is processed synchronously with the one or more captured signals and the one or more playback signals, and wherein the test signal is not output through the speaker; and
a memory for storing the measured delays;
where the processor is further configured to compensate the one or more signal processing functions for the playback delay and the capture delay.

US Pat. No. 10,165,363

ACTIVE NOISE EQUALIZATION

2236008 Ontario Inc., Wa...

1. A method for active noise equalization comprising:obtaining a sync signal synchronized to an engine speed from a noise source reproduced into an acoustic space;
generating a noise model, representing one or more complex tones, responsive to the sync signal;
receiving an audio signal representing a sound field in the acoustic space;
applying an estimate of a secondary path transfer function to the noise model in a frequency domain; and
applying a transformation function to the noise model where the transform function is responsive to reducing a sum of an output of the transformation function and the received audio signal;
where applying the estimate of the secondary path transfer function comprises an online calculation; and
where an output of the secondary path transfer function is limited to a range of frequencies that lies within an aural range.

US Pat. No. 10,133,273

LOCATION SPECIFIC ASSISTANCE FOR AUTONOMOUS VEHICLE CONTROL SYSTEM

2236008 Ontario Inc., Wa...

1. A system to provide location specific assistance, the system comprising:a processor configured to:
determine with a first autonomous vehicle control system how to navigate a first vehicle based on a first artificial intelligence learning model supplied with first sensor data from at least one sensor of the first vehicle;
receive a second artificial intelligence learning model in response to a failure of the first autonomous vehicle control system to determine how to navigate the first vehicle past a condition present at a geographic location based on the first artificial intelligence learning model, the second artificial intelligence learning model is usable for a predetermined timeframe, the second artificial intelligence learning model trained with second sensor data collected when the condition was present at the geographic location and a course past the condition was determined by a second autonomous vehicle control system and/or followed by a person-driven vehicle;
find the course based on an application of the second artificial intelligence learning model within the predetermined timeframe to third sensor data sensed in an environment of the first vehicle at the geographic location; and
cause the first vehicle to follow the course.

US Pat. No. 10,367,928

METHOD OF IDENTIFYING CONTACTS FOR INITIATING A COMMUNICATION USING SPEECH RECOGNITION

2236008 Ontario Inc., Wa...

1. A method of initiating a communication using speech recognition on a mobile wireless communication device, comprising:receiving through a microphone a voice input for initiating a communication;
extracting from the voice input using speech recognition a name and a communication type to be initiated from a plurality of potential communication types;
searching a local address book stored in a memory of the mobile wireless communication device to determine whether any contact records in the local address book match the extracted information, wherein the local address book is searched to identify all records having both a contact name that matches the name extracted from the voice input and a type of communication that matches the communication type extracted from the voice input, the type of communication having a populated address field; and
automatically initiating a communication to a contact address from the populated address field of the contact record using an application associated with the communication type in response to a determination that only one contact record in the local address book matches the extracted information.

US Pat. No. 10,153,744

AUTOMATICALLY TUNING AN AUDIO COMPRESSOR TO PREVENT DISTORTION

2236008 Ontario Inc., Wa...

1. A method that automates the tuning of a multiband compressor that minimizes loudspeaker distortion comprising:playing one or more test loudspeaker signals that vary in frequency and in amplitude out of a loudspeaker;
recording the responses of the loudspeaker at a microphone;
measuring a distortion of the loudspeaker, relative to a frequency and an amplitude, with respect to the one or more test loudspeaker signals and a microphone signal; and
calculating a plurality of tunable parameters of the multiband compressor that includes a plurality of frequency bands of the one or more test loudspeaker signals and cutoff frequencies of the multiband compressor in response to the measured distortion and a loudness difference between the one or more test loudspeaker signals and the microphone signal.

US Pat. No. 10,394,602

SYSTEM AND METHOD FOR COORDINATING PROCESS AND MEMORY MANAGEMENT ACROSS DOMAINS

BlackBerry Limited, Wate...

1. A method at a computing device having a plurality of concurrently operative operating systems including an originating operating system, comprising at least one originating process, and a target operating system, comprising one or more resources, the method comprising:operating a proxy process within the target operating system on the computing device, the proxy process being marked to avoid being shut down even if the target operating system is running low on memory;
receiving, by the proxy process, from the originating operating system, a first request for the at least one originating process to interact with a resource of the one or more resources from the target operating system, the first request including at least one process identifier identifying the at least one originating process, and a resource identifier that identifies the requested resource;
sending a second request, from the proxy process to the target operating system, for the resource;
determining, by the target operating system, that no process currently running within the target operating system provides access to the resource;
responsive to the determining, starting, by the target operating system, a target process;
providing access to the resource to the target process;
returning a handle to the target process from the proxy process to the originating operating system, the handle enabling the at least one originating process to interact directly with the target process within the target operating system to thereby interact with the resource, wherein the proxy process maintains an association between process identifiers of one or more processes external to the target operating system, including the at least one originating process, and resource identifiers of the one or more resources with which the external processes interact;
receiving, at the proxy process, from the at least one originating process in the originating operating system, an indication that the at least one originating process no longer interacts with the requested resource, the indication comprising the resource identifier;
receiving, at the target operating system, from the proxy process, an indication that the requested resource is no longer needed by the proxy process upon determining, based on the association maintained by the proxy process, that no process external to the target operating system interacts with the requested resource identified by the resource identifier; and
ending, by the target operating system, the target process.

US Pat. No. 10,363,869

SYSTEM AND METHOD FOR PEDESTRIAN ALERT

2236008 Ontario Inc., Wa...

1. A method for pedestrian alert comprising:deriving a pedestrian path representing a projected path for a pedestrian;
deriving a vehicle path representing a projected path for a vehicle;
determining an intersection of the pedestrian path and the vehicle path;
determining an environmental noise level detected by an external microphone;
determining an alert characteristic responsive to the determined intersection; and
emitting an alert signal from the vehicle responsive to the determined alert characteristic,
wherein the determined alert characteristic is adjusted responsive to the environmental noise level; and
wherein the emitted alert signal draws the attention of the pedestrian to the presence of the motor vehicle to mitigate a likelihood of a collision between the vehicle and the pedestrian.

US Pat. No. 10,336,249

SYSTEM AND METHOD FOR PEDESTRIAN ALERT

2236008 Ontario Inc., Wa...

1. A method for pedestrian alert comprising:deriving a pedestrian path representing a projected path for a pedestrian;
deriving a vehicle path representing a projected path for a vehicle;
determining an intersection of the pedestrian path and the vehicle path;
determining an environmental noise level detected by an external microphone;
determining an alert characteristic responsive to the determined intersection; and
emitting an alert signal from the vehicle responsive to the determined alert characteristic,
wherein the determined alert characteristic is adjusted responsive to the environmental noise level; and
wherein the emitted alert signal draws the attention of the pedestrian to the presence of the motor vehicle to mitigate a likelihood of a collision between the vehicle and the pedestrian.

US Pat. No. 10,285,051

IN-VEHICLE NETWORKING

2236008 Ontario Inc., Wa...

1. A method for securing communication across an in-vehicle bus, comprising:establishing a connection between a gateway in a vehicle and the in-vehicle bus;
generating a session key at the gateway in the vehicle;
transmitting a public key certificate and an ephemeral key to the gateway and an electronic control unit of the vehicle;
generating a shared secret at the gateway and the electronic control unit, respectively, the shared secret shared by the gateway and the electronic control unit;
encrypting the session key with the shared secret at the gateway;
receiving the encrypted session key through the in-vehicle bus at the electronic control unit; and
decrypting the encrypted session key using the shared secret generated at the electronic control unit.

US Pat. No. 10,241,847

ANOMALY DETECTION USING SEQUENCES OF SYSTEM CALLS

2236008 Ontario Inc., Wa...

1. A method of detecting a call sequence anomaly, the method comprising:receiving a message indicating an invocation of a programmatic procedure of an operating system, the message including a programmatic procedure identifier, a sender process identifier, and a receiver process identifier, wherein the invocation of the programmatic procedure is one invocation in a series of invocations of operating system programmatic procedures made from a process identified by the sender process identifier;
generating an invocation hash based on at least a portion of the message;
translating the invocation hash to an invocation identifier;
including the invocation identifier in a translated call sequence that comprises invocation identifiers for the series of invocations;
determining that the translated call sequence is not included in a plurality of predetermined call sequences, each of the predetermined call sequences comprising corresponding invocation identifiers, wherein each of the corresponding invocation identifiers is mapped to invocation hashes;
identifying the translated call sequence as an anomaly based on the determining; and
as a result the translated call sequence being identified as an anomaly, causing an action.

US Pat. No. 10,178,237

METHOD AND SYSTEM FOR TRANSITION OF APPLICATIONS TO A SECOND CELLULAR DATA NETWORKING INTERFACE FOR A VIRTUAL SIM SERVICE

BlackBerry Limited, Wate...

1. A method at a user equipment to facilitate splitting of data billing between at least two parties, the method comprising:creating, within a first forwarding information base (“FIB”), an association of the first FIB to a first cellular data interface;
activating the splitting of data billing on the user equipment;
replacing, within the first FIB, the association of the first FIB to the first cellular data interface with an association between a second cellular data interface and the first FIB; and
assigning an application a group identifier of the first FIB to migrate the application to the second cellular data interface.

US Pat. No. 10,163,432

ACTIVE NOISE CONTROL USING VARIABLE STEP-SIZE ADAPTATION

2236008 Ontario Inc., Wa...

1. A method that actively cancels noise in a vehicle using a plurality of microphones and a plurality of loudspeakers comprising:generating one or more control output signals to drive the plurality of loudspeakers; and
adapting a plurality of control coefficients of a control filter based on a plurality of secondary path transfer functions that model the acoustic paths between each loudspeaker and each microphone of the plurality of microphones;
where the rate the plurality of control coefficients of the control filter adapt is time-varying and frequency dependent; and
where the rate the plurality of control coefficients of the control filter adapt is based on an adaptive step size based on a predetermined secondary acoustic path.

US Pat. No. 10,405,279

CONTROL OF UPLINK DATA TRANSMISSION

BlackBerry Limited, Wate...

1. A method, comprising:receiving, by an application, from a modem, information indicative of a radio coverage condition, wherein a user equipment (UE) includes the application and the modem;
based on the received information, determining that the UE is in an enhanced coverage state; and
in response to the determining, controlling uplink data transmission by the modem, wherein the controlling uplink data transmission comprises refraining from sending uplink data when at least one of the following occurs:
the UE is in one of a set of predefined coverage enhancement levels, coverage classes, or coverage enhancement modes, a data repetition indicator at the UE is above a predefined repetition threshold, a signal strength at the UE is below a predefined signal strength threshold, or a signal quality at the UE is below a predefined signal quality threshold;
the uplink data has a predefined data type;
the uplink data is associated with at least one of a predefined Quality of Service (QoS) indicator, a predefined priority level, or a predefined bit rate information;
a predefined timer associated with the uplink data transmission has not expired;
a counter associated with the uplink data transmission has reached a predefined counter threshold;
the UE is moving;
a battery level of the UE is higher than a first threshold;
a battery level of the UE is lower than a second threshold; or
the UE is not plugged into a power outlet.

US Pat. No. 10,251,034

PROPAGATION OF APPLICATION CONTEXT BETWEEN A MOBILE DEVICE AND A VEHICLE INFORMATION SYSTEM

BlackBerry Limited, Wate...

1. A method, comprising:establishing, by a mobile device, a session with an in-vehicle information system;
in response to establishing the session with the in-vehicle information system, determining an application specific operating context for two or more applications executing on the mobile device, the application specific operating context for each respective application comprising one or more of a current execution state, a current output state, an availability of persisted data, and a most recently displayed application user interface view;
in response to determining that persisted data is available for at least one application executing on the mobile device, generating a user interface view including a homescreen view having a set of user interface icons for accessing individual applications executing on the mobile device, the set of user interface icons including one or more modified user interface icons with added persisted data indications, wherein the one or more modified user interface icons with the added persisted data indications are associated with the respective application having persisted data,
and wherein the one or more modified user interface icons respectively include a first icon portion actuatable to access the respective application at a first entry point and a second icon portion actuatable to access the respective application at a second entry point, the second entry point providing access to interact with current output of the respective application, and wherein the first icon portion displays the persisted data indicators of the operating context of the respective application,
and wherein the persisted data includes records of recently accessed data or recent user activity as determined when the session between the mobile device and the in-vehicle information system was established; and
transmitting the generated user interface view to the in-vehicle information system to cause the generated user interface view to be displayed on the in-vehicle information system and to enable interaction with the one or more modified user interface icons with the added persisted data indications, and wherein the one or more applications are inaccessible on the mobile device for the duration of the session.