Patent ID: 8639733

Claim:
A method comprising: receiving, by a mobile computing device from an accessory external to and communicatively coupled with the mobile computing device, a request for executing an application, the request including an indicator identifying a first set of one or more application protocols supported by the accessory for communicating with the application, wherein the request is received using an accessory protocol that is distinct from each of the one or more application protocols, wherein the accessory protocol enables communication between the accessory and an operating system component of the mobile computing device and wherein each of the one or more application protocols is specific to one or more particular applications executable on the mobile computing device; determining, by the mobile computing device, whether an application satisfying the request is available for execution at the mobile computing device, the determining comprising comparing the first set of one or more application protocols with a second set of one or more application protocols supported by applications resident on the mobile computing device; if an application satisfying the request is not available for execution at the mobile computing device: sending, by the mobile computing device, information to an application store through a network, the information comprising at least a portion of the indicator; downloading, by the mobile computing device, an application associated with the indicator from the application store, wherein the downloaded application is an application satisfying the request; and executing the application satisfying the request, wherein executing the application includes communicating, by the application, with the accessory using the application protocol, wherein communicating with the accessory using the application protocol includes: writing, by the application, a message conforming to the application protocol to an output stream; generating, by the operating system component of the mobile device, a bundle from the output stream; and transmitting the bundle to the accessory device via a port, wherein the bundle is transmitted in conformity with the accessory protocol.