AccountManagerService:如何访问其私有方法

时间:2017-08-31 22:26:40

标签: java android

嗯,更大的问题是如何使公共类{AccountManagerService}无法访问?

[编辑]

如果我正在开发一个Android应用程序,我只能访问AccountManager,而不能访问AccountManager内部使用的AccountManagerService。如果我查一下,我可以找到com.android.server.accounts。 AccountManagerService类,并声明为public。但是,我仍然无法导入它,也没有创建它的参考。

1 个答案:

答案 0 :(得分:0)

访问另一个类的私有方法只能通过使用这样的反射来实现:

Method m = SomeClass.class.getDeclaredMethod("methodName", paramClasses);
m.setAccessible(true);
m.invoke(params);

这可以通过这些类的创建者来防止,我希望内部Android类就是这种情况。

使公共类无法访问可以通过设置自己的SecurityManager并拒绝访问此类来完成。我不打算详细说明,因为在Android上运行时你不太可能设置自己的SecurityManager。