Что касается обнаружения совершаемого вызова, ознакомьтесь с этой публикацией SO. Я полагаю, что набираемый номер будет частью намерения, которое было передано.
Оттуда вам нужно будет запустить GPS и захватить координаты, что легко сделать, и вы можете следовать этому SO сообщению . Проблема будет в том, что может потребоваться некоторое время, чтобы получить координаты, но это другая проблема.
AFAIK, не нужно ждать, чтобы заставить его отправлять данные по 3G против Wi-Fi, но, исходя из того, что вы говорите, вы хотите сделать, я не думаю, что это будет иметь значение (если это имеет значение, обновите свой пост и Я постараюсь заняться этим). Просто используйте стандартные классы HTTP или Socket, которые вы обычно используете, чтобы установить соединение с сервером, на который нужно отправить данные.
Если вы хотите загрузить информацию, место, которое вы загружаете, должно быть готово принять ваше соединение. Я не могу сказать вам, как загрузить его, если я не знаю больше о вашем сервере и как он настроен. Для начала посмотрите класс сокетов и клиентские классы HTTP .