0

私は ICS と JB (API15 & API16) の Android ソース コードを調べてきましたが、(私には) コードと jar ファイルの不一致のように見えるものを見つけています。より具体的には、SpeechRecognizer.java には Settings.Secure.VOICE_RECOGNITION_SERVICE への参照があり、これは android/provider/Settings.java でサブクラス Secure の下に定義されています。

public static final String VOICE_RECOGNITION_SERVICE = "voice_recognition_service";

しかし、自分のコードから VOICE_RECOGNITION_SERVICE を参照しようとすると、解決できません。Eclipse で jar ファイルを調べると、VOICE_RECOGNITION_SERVICE が定義されていません。実際、Java ソース コードで public として定義されている Settings.Secure のフィールドの多くは、jar ファイルにはありません。jar ファイルがソース ファイルを使用して作成された場合、VOICE_RECOGNITION_SERVICE にアクセスできないのはなぜでしょうか。フィールドがソースで public と宣言されている場合、.jar ファイルからアクセスできるようにすべきではありませんか?

4

1 に答える 1

0

同じことに気付きました。アプリケーション固有のコードでは、一部のメソッド/フィールドが表示されないことがよくあります。ただし、Java リフレクションを使用してこれらのメソッド/フィールドを呼び出すことができる場合もあります。

于 2012-08-22T18:29:56.410 に答える