Можно ли активировать провайдера сетевого местоположения на эмуляторе Android? Может с поддельным целлидом?
Активация поставщика сетевых местоположений в эмуляторе Android?
Ответы (4)
Я считаю, что то, чего вы хотите достичь, в данный момент невозможно. Вы не можете поместить фиктивные данные о местоположении в поставщика сетевых расположений эмулятора.
«Предоставление фиктивных данных о местоположении вводится как данные о местоположении GPS, поэтому вы должны запрашивать обновления местоположения от GPS_PROVIDER, чтобы данные фиктивного местоположения работали». (Цитата из Android, Документация, Предоставление фиктивных данных о местоположении)
Самое близкое, что я могу придумать, это создать «Поставщика тестов» из Менеджер местоположений
public void addTestProvider (String name, boolean requiresNetwork, boolean requiresSatellite, boolean requiresCell, boolean hasMonetaryCost, boolean supportsAltitude, boolean supportsSpeed, boolean supportsBearing, int powerRequirement, int accuracy)
и установите аргументы requiresNetwork, requiresCell и requiresSatellite соответственно. Затем вы можете поставить поддельные местоположения этому провайдеру:
public void setTestProviderLocation (String provider, Location loc)
Это близко, но не совсем то, что вы просили.
вам нужно отправить информацию о местоположении в эмулятор? если вы хотите это сделать, вы можете отправить местоположение эмулятору через консоль adb и команду geo http://developer.android.com/guide/developing/tools/emulator.html#geo
я не знаю, возможно ли отправить поддельный идентификатор, но это возможно с координатами GPS, если ваше приложение слушает любого провайдера GPS
Возможно вы можете установить UnifiedNlp провайдера сетевого расположения в эмуляторе, а затем как минимум иметь NETWORK
поставщика местоположений, даже если он не предоставляет никаких данных.
Этот провайдер является модульным, поэтому, возможно², вы можете написать для него серверную часть, которая будет вставлять ваши фиктивные местоположения.
перейдите в «Настройки эмулятора»> «Доступ к местоположению» и установите флажок «Местоположение Wi-Fi и мобильной сети».