2012-08-22 52 views
0

我一直在尋找ICS和JB(API15 & API16)的android源代碼,並且發現(在我)看來代碼和jar文件之間不匹配。更具體地說,在SpeechRecognizer.java存在於Settings.Secure.VOICE_RECOGNITION_SERVICE,它採用的是Android /供應商/ Settings.java子類安全下定義爲Android jar和源代碼不匹配?

public static final String VOICE_RECOGNITION_SERVICE = "voice_recognition_service"; 

但參考,當我試圖從引用VOICE_RECOGNITION_SERVICE我自己的代碼,它無法解決。在Eclipse中,當我瀏覽jar文件時,我沒有看到VOICE_RECOGNITION_SERVICE定義。實際上,在jar文件中找不到在Java源代碼中定義爲公共的Settings.Secure中的許多字段。我想知道爲什麼,如果jar文件是使用源文件創建的,我無法訪問VOICE_RECOGNITION_SERVICE。如果一個字段在源代碼中被聲明爲公共的,那麼它不應該從.jar文件訪問嗎?

回答

0

我注意到了。通常,對於特定於應用程序的代碼,某些方法/字段看起來不可見。 但是,有時可以通過使用Java反射來調用這些方法/字段。