从不同的应用程序访问静态字段

时间:2011-09-16 09:35:07

标签: android class static

我对这个问题感觉不好,但是......

鉴于此课程

class A {

    public static final String field = "I_m_a_field";

}

包中的 com.uselessoftware.A 并编译为 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 个答案:

答案 0 :(得分: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谷歌搜索。