在我的应用程序中,我有一些带有 gps 位置的对象。目前我对它们唯一做的就是在地图上显示它们,但我计划实现其他需要知道用户位置的功能。我不想将位置权限添加到我的应用程序,因为某些用户可能不想使用这些功能。
我的想法是有一个单独的 apk(一种插件),它只向主应用程序提供位置信息,这样只有插件需要请求位置权限。
是否可以让插件直接共享一个系统服务(LocationManager),而无需创建具有不兼容接口的自定义服务,以便主应用程序可以使用插件的LocationManager。这将使使用现有类(如 MyLocationOverlay 或其他类)成为可能。主应用程序可以像这样将 ContextWrapper 传递给这些类:
public static class LocationContext extends ContextWrapper {
public LocationContext(Context base) {
super(base);
}
@Override
public Object getSystemService(String name) {
if (name.equals(LOCATION_SERVICE)) {
// Return the LocationManager service of the plugin here...
}
return super.getSystemService(name);
}
}