Application communication with external accessories
First Claim
1. A method for establishing a communication session between an application executing on a mobile computing device and an accessory in communication with the mobile computing device, the method executing at the mobile computing device, the method comprising:
- establishing a connection to an accessory according to an accessory communication protocol that provides a global standard to enable communication between any accessory and the mobile computing device;
receiving, by an application manager executing on the mobile device, accessory information from the accessory, the accessory information including an identifier of at least one application communication protocol with which the accessory is compatible, the accessory information being communicated according to the accessory communication protocol, wherein the application communication protocol is distinct from the accessory communication protocol;
receiving, by the application manager, application information from an application on the mobile device, the application information including an identifier of an application communication protocol supported by the application, wherein different applications support different application communication protocols;
receiving, by the application manager, a request from the application for information related to the accessory;
providing, by the application manager, accessory information to the application, wherein the accessory information comprises a first identifier of a first application communication protocol with which both the application and the accessory are compatible;
receiving, by the application manager from the application, a request for a communication session between the accessory and the application for communication using the first application communication protocol;
establishing, by the application manager, the communication session in response to the request;
receiving, at the communication session, a message from the application, wherein the message is formatted by the application according to the first application communication protocol;
wrapping the message with an accessory communication protocol wrapper; and
communicating the message to the accessory, wherein the message is communicated according to the accessory communication protocol.
1 Assignment
0 Petitions
Accused Products
Abstract
Embodiments of the present invention provide various communication techniques for communication between a mobile computing device and an accessory. An accessory protocol that is generic to the mobile computing device can be used for some communication. An application executing at the mobile computing device can communicate with the accessory using an application communication protocol. In some embodiments, the application communication protocol can be different from the accessory communication protocol. In other embodiments the application protocol may only be recognized by the application and the accessory. In some embodiments, messages conforming to an application protocol can be communicated between the application and the accessory by packaging the messages inside a message conforming to the accessory communication protocol.
-
Citations
20 Claims
-
1. A method for establishing a communication session between an application executing on a mobile computing device and an accessory in communication with the mobile computing device, the method executing at the mobile computing device, the method comprising:
-
establishing a connection to an accessory according to an accessory communication protocol that provides a global standard to enable communication between any accessory and the mobile computing device; receiving, by an application manager executing on the mobile device, accessory information from the accessory, the accessory information including an identifier of at least one application communication protocol with which the accessory is compatible, the accessory information being communicated according to the accessory communication protocol, wherein the application communication protocol is distinct from the accessory communication protocol; receiving, by the application manager, application information from an application on the mobile device, the application information including an identifier of an application communication protocol supported by the application, wherein different applications support different application communication protocols; receiving, by the application manager, a request from the application for information related to the accessory; providing, by the application manager, accessory information to the application, wherein the accessory information comprises a first identifier of a first application communication protocol with which both the application and the accessory are compatible; receiving, by the application manager from the application, a request for a communication session between the accessory and the application for communication using the first application communication protocol; establishing, by the application manager, the communication session in response to the request; receiving, at the communication session, a message from the application, wherein the message is formatted by the application according to the first application communication protocol; wrapping the message with an accessory communication protocol wrapper; and communicating the message to the accessory, wherein the message is communicated according to the accessory communication protocol. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A mobile computing device, comprising:
-
a housing; a communication interface disposed at least partially within the housing, and configured to exchange commands and data with an accessory using an accessory communication protocol that provides a global standard to enable communication between any accessory and the mobile computing device; memory disposed within the housing; and control logic disposed within the housing, and communicatively coupled with the memory and the communication interface, the control logic being configured to execute an accessory manager as a background process and an application, wherein the control logic executing as an accessory manager is configured to; monitor the communication interface for an accessory being coupled with the communication interface; in the event an accessory becomes coupled with the communication interface, receive accessory capability information including an identifier of a compatible application protocols from the accessory, wherein the accessory capability information is received using the accessory communication protocol and wherein the application protocol is distinct from the accessory protocol and specific to a particular application; receive application information from the application, the application information including an identifier of an application communication protocol supported by the application; establish a communication session between the application and the accessory in the event that the identifier of the compatible application protocol received from the accessory matches the identifier of the application communication protocol supported by the application; receive, from the accessory, application communication protocol formatted messages wrapped with an accessory communication protocol wrapper; remove the accessory communication protocol wrapper from the messages; and communicate the messages to the application via the communication session. - View Dependent Claims (7, 8, 9, 10, 11)
-
-
12. A method comprising executing on a mobile computing device, the method comprising:
-
monitoring an accessory interface of the mobile computing device for an indication that an accessory has been communicatively coupled with the accessory interface; in the event an accessory is communicatively coupled with the accessory interface, receiving capabilities information from the accessory, wherein the capabilities information is received using an accessory communication protocol that provides a global standard to enable communication between any accessory and the mobile computing device, and the capabilities information includes information indicating one or more application communication protocols compatible with the accessory, wherein each of the one or more application communication protocols is distinct from the accessory communication protocol and is specific to one or more particular applications; executing an application on the mobile computing device, wherein the application supports one or more application protocols; determining by the mobile computing device that one or more of the application communication protocols supported by the executing application matches at least one of the one or more application communication protocols compatible with the accessory; and in the event that one or more of the application communication protocols supported by the executing application matches at least one of the one or more application communication protocols compatible with the accessory; establishing an input data stream for the executing application, wherein an application message received from the accessory wrapped in an accessory communication protocol wrapper is stripped from the accessory communication protocol wrapper and delivered lo the application using the input data stream; and establishing an output data stream for the executing application, wherein an application message written to the output data stream from the application is wrapped in an accessory communication protocol wrapper and sent to the accessory through accessory interface. - View Dependent Claims (13, 14)
-
-
15. A method executing on a mobile computing device, the method comprising:
-
receiving from an application executing on the mobile computing device a request for a communication session between the mobile computing device and an external accessory using an application protocol, wherein the request identifies the application protocol and wherein different applications support different application protocols; receiving, from the external accessory, capability information, wherein the capability information is received using an accessory communication protocol that provides a global standard to enable communication between any accessory and the mobile computing device and wherein the capability information includes an identifier of an application communication protocol supported by the accessory; determining whether the application protocol is supported by the accessory, wherein the determination is based on the application protocol identified in the request and the capability information received from the accessory; in the event the application protocol identified in the request from the application is supported by the accessory, providing an input stream and an output stream to the application for communication with the accessory using the application protocol; receiving a message from the application through the output stream wherein the message is formatted according to the application protocol; wrapping the message within an accessory protocol message; and sending the message to the accessory. - View Dependent Claims (16, 17, 20)
-
-
18. A method executing on a mobile computing device, the method comprising:
-
opening a first communication session between a first application executing on the mobile computing device and a first accessory connected to the mobile computing device, wherein the communication session provides communication between the first application and the first accessory using a first application protocol, the first application protocol being supported by the first application; receiving a first message from the first application; wrapping the first message within an accessory protocol wrapper, wherein the accessory protocol wrapper conforms to an accessory communication protocol that provides a global standard to enable communication between any accessory and the mobile computing device and wherein the accessory communication protocol is distinct from the first application protocol; sending the first message to the accessory wrapped within the accessory protocol wrapper; while the first communication session is open, opening a second communication session between a second application and the first accessory, wherein the second communication session provides communication between the second application and the first accessory using a second application protocol, wherein the first and second application protocols are different and wherein the accessory communication protocol is distinct from the second application protocol; receiving a second message from the second application; wrapping the second message within an accessory protocol wrapper; and sending the second message to the accessory wrapped within the accessory protocol wrapper. - View Dependent Claims (19)
-
Specification