Accessory and mobile computing device communication using an application communication protocol
First Claim
1. A method for communicating between an accessory device and an application executing on a mobile device, the method operating on the mobile device, the method comprising:
- identifying an accessory device, wherein the identification uses an accessory communication protocol that enables communication between any accessory device and an operating system of the mobile device via a port of the mobile device;
receiving information from the accessory device specifying an application communication protocol, wherein the application communication protocol is distinct from the accessory communication protocol and is usable to communicate with a particular application on the mobile device and wherein the information is received via the port using the accessory communication protocol;
identifying, from a protocol table at the mobile device, an application that is resident on the mobile device and that supports the specified application communication protocol;
executing the identified application at the mobile computing device; and
communicating with the accessory device from the application using the application communication protocol, wherein communicating with the accessory device includes;
writing, by the application, a message conforming to the application communication protocol to an output stream;
generating, by a support layer of the operating system, a bundle from the output stream; and
transmitting the bundle to the accessory device via the port, wherein the bundle is transmitted in conformity with 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.
83 Citations
21 Claims
-
1. A method for communicating between an accessory device and an application executing on a mobile device, the method operating on the mobile device, the method comprising:
-
identifying an accessory device, wherein the identification uses an accessory communication protocol that enables communication between any accessory device and an operating system of the mobile device via a port of the mobile device; receiving information from the accessory device specifying an application communication protocol, wherein the application communication protocol is distinct from the accessory communication protocol and is usable to communicate with a particular application on the mobile device and wherein the information is received via the port using the accessory communication protocol; identifying, from a protocol table at the mobile device, an application that is resident on the mobile device and that supports the specified application communication protocol; executing the identified application at the mobile computing device; and communicating with the accessory device from the application using the application communication protocol, wherein communicating with the accessory device includes; writing, by the application, a message conforming to the application communication protocol to an output stream; generating, by a support layer of the operating system, a bundle from the output stream; and transmitting the bundle to the accessory device via the port, wherein the bundle is transmitted in conformity with the accessory communication protocol. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. 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, the communication interface having at least a first port; 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; receive an indication specifying an application communication protocol from an accessory through the communication interface using an accessory communication protocol that enables communication between any accessory device and an operating system of the mobile computing device via the first port, wherein the application communication protocol is distinct from the accessory communication protocol and is usable to communicate with a particular application on the mobile computing device; identify, from a protocol table at the mobile computing device, an application that is stored in the memory of the mobile computing device and that supports the specified application communication protocol; execute the identified application; and establish communication between the accessory and the application using the application communication protocol, wherein communicating with the accessory includes; writing, by the application, a message conforming to the application communication protocol to an output stream; generating, by a support layer of the operating system, a bundle from the output stream; and transmitting the bundle to the accessory via the first port, wherein the bundle is transmitted in conformity with the accessory communication protocol. - View Dependent Claims (13, 14, 15)
-
-
16. 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; 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; receive application communication protocol information from an accessory device through the communication interface, wherein the application communication protocol information includes an identification of an application communication protocol supported by the accessory, and wherein the application communication protocol information is received from the accessory using an accessory communication protocol that enables communication between any accessory device and an operating system of the mobile computing device, wherein the application communication protocol is distinct from the accessory communication protocol and is usable to communicate with a particular application on the mobile computing device; identify, from a protocol table at the mobile computing device, an application that is stored in the memory of the mobile computing device and that supports the specified application communication protocol; execute the identified application, wherein during execution, the application generates an output stream comprising messages conforming to the application communication protocol; create, by a support layer of the operating system, one or more bundles from the output stream; and send the one or more bundles to the accessory via the communication interface, wherein each of the one or more bundles is sent in conformity with the accessory communication protocol. - View Dependent Claims (17)
-
-
18. A non-transitory computer-readable medium containing program instructions that, when executed by a processor of a mobile computing device, cause the processor to execute a method comprising:
-
receiving application communication protocol information from an accessory device using an accessory communication protocol that enables communication between any accessory device and an operating system of the mobile computing device via a port of the mobile computing device, wherein the application communication protocol is distinct from the accessory communication protocol and is usable to communicate with a particular application on the mobile computing device; identifying, from a protocol table at the mobile computing device, an application executable on the mobile computing device that supports the specified application communication protocol; and executing the identified application, wherein executing the identified application includes; receiving, from the accessory via the port, a data packet conforming to the accessory communication protocol, the data packet containing a bundle; extracting, by a support layer of the operating system, the bundle from the data packet; writing the bundle to an input stream for the application; and interpreting the input stream, by the application, as one or more messages conforming to the application communication protocol. - View Dependent Claims (19, 20, 21)
-
Specification