2011-09-16 26 views
3

私はこの質問について悪い感じを持っていますが...静的フィールド

はcom.uselessoftware.Aこのクラスにパッケージ

class A { 

    public static final String field = "I_m_a_field"; 

} 

を考えるとAとしてコンパイル.apk

異なるパッケージの異なるアプリケーションから静的フィールドを読み取ることはできますか?

class B { 

    void readField() { 

     iDontKnow obj = loadExternalClass("com.uselessoftware.A", "A"); 
     String externalField = obj.readStaticAsString(obj, "field"); 

    } 

} 
パッケージcom.uselessoftware.B

とコンパイルなどB.apk:仮定する(すべての擬似)ができます。

答えて

1
Context _external_context = createPackageContext("com.uselessoftware.A", context.CONTEXT_INCLUDE_CODE + Context.CONTEXT_IGNORE_SECURITY); 
Class<?> _external_class = _external_context.getClassLoader().loadClass("com.uselessoftware.A");   
Field _external_field = _external_class.getField("field"); 
String _field = (String) _external_field.get(null); 

は私のためではありませんでした。見つかったのはthis discussionです。

関連する問題