2015-12-29 55 views
1

我們正在開發MFi外部附件,我們可以使用外部附件協議從iPhone啓動iOS應用程序。我們使用福特Smartdevicelink協議註冊應用程序。我們使用USB作爲配件和iPhone之間的通信媒介。目前,我們能夠在配件上推出一款應用。我們希望同時推出多個應用程序。但我們在這裏受到打擊。請提供一些關於我們如何做到這一點的意見。 A使用iOS外部附件協議對外部附件提供多項應用支持

我們面臨的問題是,如果一個應用程序已經在配件和iPhone中啓動,如果我們在iPhone中啓動另一個應用程序,而以前的應用程序在後臺,附件將爲後臺應用程序接收「StopExternalAccessoryProtocolSession」。因此,後臺應用程序變得不起作用,因此一次只有一個應用程序可用。對於啓動的新應用程序,我們收到「StartExternalAccessoryProtocolSession」並且它變得功能正常。

此外,我們正在爲所有應用程序使用一個協議標識符。我們是否應該爲所有應用程序使用不同的協議來支持多個應用程序?或者如果我們可以使用單一協議標識符來實現這一點,請提供我們如何實現這一目標的輸入。

回答

2

我是SDL-iOS上的維護人員。

對於SDL,我們採用的方式是最多可以使用30個協議字符串。該應用程序將尋找com.smartdevicelink.prot0流和連接。它將從其所連接的數據協議的附件接收一個字節的數據0x01 - 0x1E

This is a list of the SDL Protocol Strings.

EDITED修正一個錯誤的說法。

+0

在應用程序端,我們啓用了上面提到的所有協議。配件方面需要做些什麼?我也啓用了配件方面的所有協議,但仍無法啓動多個應用程序。 – Shivakumar

+0

查看sdl_ios項目的SDLIAPTransport類。一個應用程序將首先嚐試連接到控制協議com.smartdevicelink.prot0。它需要接收一個字節的數據,告訴它要切換到哪個數據協議(com.smartdevicelink.prot1 - 30)。如果您需要更多幫助,則會從github存儲庫中鏈接一段時間。 –

0

外部附件具有隻能讀取一次的數據流。 對於類似的問題,我實現了一個套接字服務器,它可以通過tcp或udp發送從附件中讀取的數據,所以我只是有一個主要的應用程序,它與外部附件進行了交流,並作爲其他應用程序的代理(我正在說的應用程序關於是NMEA Gps,並讓其他應用程序連接到雙電子設備的外部Gps)

+0

您提到的方法已針對android完成。但是iOS,我們無法做到。你是否實現了iOS或Android的代理應用程序? – Shivakumar

+0

iOS,應用程序是這樣的:https://itunes.apple.com/it/app/nmea-gps/id590868529?mt=8 – atrebbi