非公开的android类

时间:2011-05-30 13:05:22

标签: android

嗨,所有Android devlopers。 请帮助我解决这个问题:

1)我如何在我的Android应用程序中使用像telephonyandroid.telephony.CallManager这样的非公共类?

2)如何在活动类中导入此电话包并允许其访问其功能?

2 个答案:

答案 0 :(得分:3)

你不能也不应该。在Android升级期间,这些内部类/ API可以随时更改而不会发出警告。不能保证它们在不同供应商中以完全相同的方式实现。

此类更改可能会导致应用程序中断。

您应该只使用android.jar

中包含的公共类

答案 1 :(得分:1)

反射?

ClassLoader classLoader = TestActivity.class.getClassLoader();
final ClassLoader classLoader = this.getClass().getClassLoader();
try {
    final Class<?> classCallManager =
        classLoader.loadClass("com.android.internal.telephony.CallManager");
} catch (final ClassNotFoundException e) {
    Log.e("TestActivity", e);
}

并添加

READ_PHONE_STATE

到您的Manifest.xml