Амперсанд в текстовом сообщении - отправка смс на андроид

Итак, вот моя проблема.

У меня есть таймер, который должен отправлять SMS каждые X секунд. И я хочу, чтобы текстовое сообщение было текущим GPS-местоположением пользователя. Итак, я хочу отправить своего рода URL-адрес Google Maps, используя координаты GPS, которые я получаю, и добавляя некоторые маркеры, тип карты, размер.... для карты.

Для этого мне нужно использовать символ «&» в URL-адресе. Чтобы получить что-то подобное: http://maps.googleapis.com/maps/api/staticmap?center=40.714728,-73.998672&zoom=12&size=400x400&maptype=roadmap

(например: https://developers.google.com/maps/documentation/staticmaps/?csw=1#URL_Parameters)

Но когда я хочу использовать этот тип URL-адреса, используя «&» в моем текстовом сообщении SMS. СМС никогда не отправляется. Когда я удаляю каждую часть, содержащую «&», она работает нормально.

Я пытался использовать "&" вместо "&". Все еще не работает.

Вот мой SMS-менеджер для отправки SMS:

smsManager.sendTextMessage(INT, null, "Alert - RED AREA \n TIME :  " + current date + " \n  Lat: " + latitude + " \n Long: " + longitude + "Link Maps : http://maps.googleapis.com/maps/api/staticmap?center=" + latitude + "," + longitude +"&zoom=12&size=400x400&maptype=satellite", null, null);

Приведенный выше код не отправляет никаких сообщений. Но этот делает:

smsManager.sendTextMessage(INT, null, "Alert - RED AREA \n TIME :  " + current date + " \n  Lat: " + latitude + " \n Long: " + longitude + "Link Maps : http://maps.googleapis.com/maps/api/staticmap?center=" + latitude + "," + longitude, null, null);

Любые идеи ?

Спасибо !


person Mylo Raf    schedule 17.06.2014    source источник
comment
Попробуйте это stackoverflow.com/a/3286128/1911784   -  person OMAK    schedule 17.06.2014
comment
Спасибо за ссылку! Мне хорошо помогло. Кодировка адреса обязательна. Добавление некоторых '&' разбивает URL-адрес.   -  person Mylo Raf    schedule 17.06.2014


Ответы (2)


Используйте «% 26» вместо «&» или «& amp», URL-адрес все равно будет анализироваться, а SMS будет построено правильно.

person paddyflah    schedule 25.05.2020

Самым простым решением было бы придумать какой-нибудь специальный символ (или строку), который вы бы использовали для замены символа '&' в своей строке.

Вы просматриваете исходную строку и заменяете каждое вхождение '&' на специальную строку (представляющую '&').

На принимающей стороне должен быть реализован обратный механизм.

НО БУДЬ ОСТОРОЖЕН! вам нужно тщательно выбирать специальную строку! Потому что, если вы выберете строку, которая обычно может встречаться в вашей исходной строке, получатель вставит поддельные символы «&».

Если это решение недостаточно хорошее, дайте мне знать... У меня была похожая проблема в одном из моих приложений, и я нашел обходной путь, не заменяя символ на что-то другое.

person Bartek Lipinski    schedule 17.06.2014
comment
Тоже хороший способ! Спасибо :) Использование тоже отлично работает. На самом деле проблема заключалась в максимально разрешенном количестве символов. Не может быть больше 160, а общее количество символов у меня было где-то 180-190. Работаем над внедрением сокращателя URL-ссылок! - person Mylo Raf; 17.06.2014