В моем приложении у меня есть несколько объектов с позициями 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);
}
}