PackageManager中缺少API

时间:2011-12-19 02:36:10

标签: android

奇怪的是我发现PackageManager有公共API,如installPackage(...)/ deletePackage(...),尽管在评论中它被标记为隐藏,这里是http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/2.2_r1.1/android/content/pm/PackageManager.java#PackageManager.deletePackage%28java.lang.String%2Candroid.content.pm.IPackageDeleteObserver%2Cint%29,但是参考页面谷歌提供隐藏此API。

所以我的问题是如何访问这些API?

非常感谢你们的帮助。

最诚挚的问候, Nessus的。

2 个答案:

答案 0 :(得分:1)

它被宣布为公开只是为了简化SDK开发人员的生活。但预计外部开发人员不会调用它。另请参阅this post

但是如果真的需要调用此方法,则可以使用反射。我以为我建议使用官方API来寻找替代解决方案。

答案 1 :(得分:1)

通常,您不应在应用程序中使用“隐藏”API。这些方法仅供内部使用,可以更改甚至删除,恕不另行通知。由于权限限制,它们通常不适用于非系统应用程序。如果您想在应用程序中使用这些API,那么您可以在平台构建中构建您的应用程序。

还有一个workaround构建在Eclipse中使用隐藏API的应用程序:您可以从平台构建中收集编译的框架库,并将它们添加到构建路径作为“用户库”,framework_intermediates/classes-full-debug.jar应该足以让包经理。