2012-01-03 38 views
2

我們在iPhone和Android上有移動應用程序(並且即將推出Blackberry)。應用程序的功能是相同的 - 我們只支持幾種不同的設備。該應用程序與後端Web服務進行通信以接收數據。從序列號/唯一ID確定設備類型

現在,在Web應用程序中,有什麼方法可以輕鬆確定連接到哪種類型的設備?下面是我提供以下信息:

  1. 設備的序列號(或唯一ID)(請注意,在Android的模擬器它總是000000000000和iPhone模擬器的格式是完全不同的,從實際的iPhone)

  2. 在iPhone應用程序中,使用NSMutableUrlRequest/NSURLConnection進行連接,在Android連接中使用org.apache.http.client.HttpClient

  3. 服務器Web應用程序使用PHP編寫。

  4. 我願意爲「最佳猜測」近似而作出解釋:如果我95%的時間合適,這對我的目的來說已經足夠了。

我不確定任何黑莓的東西,因爲該應用程序還沒有準備好。

任何想法/幫助非常感謝。非常感謝。

+0

+1。即使我正在尋找相同的 – 2012-01-03 12:24:42

回答

0

您可以查看正在訪問HTTP API並嗅探該用戶代理。這將至少有95%的時間。 iOS應用程序中會包含類似CFNetwork/xxx.xx.x的內容。對於Android /黑莓只是嘗試一下,看看它們是什麼。或者,更改您的應用程序以自行設置用戶代理,以便您確切知道應用程序的哪個版本等會觸及API。

+0

是的,用戶代理嗅探是我傾向於的東西。儘管我可以更改應用程序以發送更多信息,但它不適用於已發佈的不發送此信息的應用程序。 – 2012-01-03 10:17:57

+0

雖然無關緊要 - 目前的運輸應用程序至少會發送默認的用戶代理,這足以確定iPhone vs Android vs黑莓。 – mattjgalloway 2012-01-03 10:44:50

+0

默認情況下,apache http客戶端發送用戶代理'Apache-HttpClient/UNAVAILABLE(java 1.4)' - 至少這是我從當前的android應用獲得的。不知道黑莓是否會(默認情況下)發送更合理的內容,但目前沒有運送黑莓應用程序,所以我們可以自己指定一個合理的用戶代理。 – 2012-01-03 10:51:29