2010-09-03 4 views
9

Я хочу заменить поставщика GPS по умолчанию на телефоны Android с моим собственным источником координат.Замените поставщика сигналов GPS по умолчанию на устройствах Android.

Есть ли какой-либо слой/API/библиотека/провайдер, который позволит заменить мой провайдер сигналов вместо встроенного аппаратного GPS или читать из внешнего плагина? Это должно позволить всем приложениям, которые полагаются на службу GPS, получать мой сигнал вместо GPS. В идеале замена должна по-прежнему иметь доступ к сигналу GPS (для сравнения/коррекции или для переключения между двумя поставщиками).

Я думаю, например, о реализации моего собственного LocationManager и регистрации его в системе (как необязательный или по умолчанию), если это возможно. Но на этом этапе я все еще пытаюсь выяснить, что возможно и подходит.

Спасибо за любые указатели.

+0

Большое спасибо за ответы. Я путешествовал, и мне нужно будет прочитать немного ответов на каждый ответ. Причина, по которой я спрашиваю, заключается в том, что можно реально улучшить сигнал GPS, если вы можете получить измерения атмосферных искажений для вашего текущего местоположения. Поэтому было бы здорово, если бы можно было заменить поставщика местоположения «на лету» для других приложений. – relet

+0

Я нашел аналогичный, довольно недавний, но, к сожалению, неотвеченный вопрос о официальном списке разработчиков Android: https://groups.google.com/group/android-developers/browse_thread/thread/dccd42d09dff6643. Я видел плакат вокруг других проектов Android, поэтому, я думаю, у него есть некоторый опыт. Может быть, он нашел немного больше информации в то время, когда он хочет поделиться. – RoToRa

+0

Спасибо, RoToRa. Я постараюсь следить за этим. – relet

ответ

0

Я уверен, что провайдеры в расположение по умолчанию для точной локации запеченные в Android.

Учитывая, что Google все больше осознает потенциальное злоупотребление и злоупотребление системными ресурсами приложениями, я бы сказал, что это хорошо. В противном случае люди смогут обмануть пользователя, думая, что они где-то в другом месте, используя надежное звучание «Использовать спутники GPS».

Единственный способ узнать, что вы можете добавить провайдера местоположений - android.location.LocationManager.addTestProvider(......), для которого требуется разрешение ACCESS_MOCK_LOCATION. Теперь этот метод и разрешение документируются как предназначенные для тестирования. Я не могу найти источник, который специально говорит, что это разрешение не предоставляется для приложений с выпуском на рынок, но я сильно подозреваю, что это так.

+1

Я не могу думать о разумной атаке путем макетирования пользователя, в отличие от всех других разрешений, которые вы действительно можете предоставить.Но, я думаю, вы по-прежнему правы, поскольку не доступны для приложений на рынке. – relet

1

Я только сейчас читаю об андроидном SDK. Однако я понимаю, что вы обеспечили бы реализацию намерения GPS_PROVIDER.

Любое приложение может переадресовать на использование предпочтительного для пользователя GPS_PROVIDER намерения.

См: http://developer.android.com/guide/topics/intents/intents-filters.html

+0

Это работает? – gregm

4

Замена «по умолчанию» в это время запрещена, и единственная работа вокруг - создание поставщика макета. Во-первых, вы должны установить разрешение безопасности:

 
<uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" /> 

Во-вторых, установить код, чтобы использовать фиктивный поставщик, который вы создаете. Существует несколько отличных сведений о том, как это сделать здесь: http://diffract.me/2009/11/android-location-provider-mock/

+0

Спасибо за ссылку. Если невозможно запросить это разрешение на телефоне пользователя, это не поможет. И вам еще нужно изменить целевое приложение. – relet

+0

У кого-нибудь есть источник этой ссылки? Теперь он содержит 404 и кеш Google, а также веб-архив. благодаря –

Смежные вопросы