Я написал код для получения названия местоположения с помощью обратного геокодирования Карт Google, например: http://maps.google.com/maps/geo?json&ll=9.6,73.7
http://maps.google.com/maps/geo?json&ll=9.6,73.7
Как добавить соответствующий суффикс HTTP-соединения к указанному выше URL?
Я попробовал следующую функцию:
private static String getConnectionStringForGoogleMap(){ String connectionString=""; if(WLANInfo.getWLANState()==WLANInfo.WLAN_STATE_CONNECTED){ connectionString="&interface=wifi"; } else if((CoverageInfo.getCoverageStatus() & CoverageInfo.COVERAGE_MDS) == CoverageInfo.COVERAGE_MDS){ connectionString = "&deviceside=false"; } else if((CoverageInfo.getCoverageStatus() & CoverageInfo.COVERAGE_DIRECT)==CoverageInfo.COVERAGE_DIRECT){ String carrierUid=getCarrierBIBSUid(); if(carrierUid == null) { connectionString = "&deviceside=true"; } else{ connectionString = "&deviceside=false&connectionUID="+carrierUid + "&ConnectionType=mds-public"; } } else if(CoverageInfo.getCoverageStatus() == CoverageInfo.COVERAGE_NONE) { } return connectionString; }
Когда я запускаю приложение в симуляторе, я создаю URL следующим образом: http://maps.google.com/maps/geo?json&ll=9.6,73.7+getConnectionStringForGoogleMap();
http://maps.google.com/maps/geo?json&ll=9.6,73.7+getConnectionStringForGoogleMap();
Но я получаю исключение туннеля и не уверен, что делать дальше.
Этот URL также приводит к исключению: http://maps.google.com/maps/geo?json&ll=9.6,73.7&deviceside=false&ConnectionType=mds-public
http://maps.google.com/maps/geo?json&ll=9.6,73.7&deviceside=false&ConnectionType=mds-public
Как и: http://maps.google.com/maps/geo?json&ll=9.6,73.7;deviceside=false;ConnectionType=mds-public
http://maps.google.com/maps/geo?json&ll=9.6,73.7;deviceside=false;ConnectionType=mds-public
Я не совсем понимаю, что нужно сделать, чтобы заставить это работать.
Вам определенно нужны точки с запятой (;), а не амперсанды (&).Вы пытаетесь запустить это на симуляторе?Если да, у вас работает симулятор MDS?Это необходимо для использования devicside=false на симуляторе.
devicside=false
Попробуйте использовать следующее У меня это сработало
http://maps.google.com/maps/geo?json&ll=9.6,73.7&;deviceside=false;ConnectionType=mds-public
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *.
Попробуйте использовать класс сетевого помощника Versatile Monkey , чтобы найти лучший путь для HTTP-соединения и избежать этих туннельных исключений. И сформируйте URL с правильным синтаксисом.
Если вы ориентируетесь на OS5 и выше, вы можете использовать ConnectionFactory . Это займет много тяжелой работы по установлению правильного типа соединения.