我正在使用Open Mobile API進行開發,但到目前爲止還沒有找到默認支持API的設備列表(默認情況下使用的是OEM ROM)。OMAPI支持的設備列表
我意識到,自API級別21以來,Android電話支持通過TelephonyManager直接通過基本和邏輯通道發送APDU。但我想知道有關運行預API級別21的設備。
那麼,有一個列表已經編譯了內置支持的設備,還是有辦法找出我自己的?
我正在使用Open Mobile API進行開發,但到目前爲止還沒有找到默認支持API的設備列表(默認情況下使用的是OEM ROM)。OMAPI支持的設備列表
我意識到,自API級別21以來,Android電話支持通過TelephonyManager直接通過基本和邏輯通道發送APDU。但我想知道有關運行預API級別21的設備。
那麼,有一個列表已經編譯了內置支持的設備,還是有辦法找出我自己的?
我不知道任何完整列表。然而,在我們的報告Open Mobile API: Accessing the UICC on Android Devices中並沒有那麼全面,在SEEK-for-Android Wiki中還有一個(雖然現在沒有維護)。
如果您訪問每個您有興趣,設備的,你可以,五言的,檢查智能卡系統的服務在他們:
final String SMARTCARD_SERVICE_PACKAGE = "org.simalliance.openmobileapi.service";
try {
PackageInfo pi = getPackageManager().getPackageInfo(SMARTCARD_SERVICE_PACKAGE, 0);
// smartcard service present
} catch (PackageManager.NameNotFoundException ex) {
// smartcard service NOT present
}
或者你可以簡單地創建一個應用程序,聲明中加入以下用途庫條目添加到它的AndroidManifest.xml要求開放移動API庫:
<uses-library android:name="org.simalliance.openmobileapi" android:required="true" />
如果該應用程序可以在設備上安裝,這表明設備包含開放移動API庫。
這也可能是獲取更全面的受支持設備列表的一種方式:您可以創建此類應用並將其發佈到Google Play上。 Google Play將根據<uses-library />
條目進行過濾,這些條目的必填屬性設置爲true
(android:required="true"
);另請參閱<uses-library>
和Filters on Google Play。這意味着,一旦您將這樣的應用上傳到Google Play,您應該能夠獲得與所有擁有Open Mobile API庫的設備基本匹配的suuported設備列表。
非常感謝,您的報告是我遇到的第一個來源之一,並得到了很大的幫助。我決定創建一個Google Play開發者控制檯帳戶(一次性收費25美元),目前看起來像支持API級別16〜1/4的設備(3099/13128)。 – AReubens
@AReubens請注意,我不確定Google Play偵測機制的可靠程度如何... –