Intereting Posts
Метод вызова при нажатии кнопки home на андроиде Экран мерцает при работе на Android 4.2. (Активность перезапускается непрерывно) Получить в данный момент фрагмент Как отправить уведомление на Android-приложение с сервера Java с помощью GCM? CollapsingToolbarLayout crash на 4.4 устройствах (java.lang.IllegalArgumentException: радиус должен быть> 0) Как скрыть значок действия share (который используется больше всего) рядом с поставщиком акций? Как отключить непосредственный фокус в TextInputLayout? Заполнение ListView на фрагменте после выполнения Async из Activity Требуется ли учетная запись Google для GCM (Google Cloud Messaging)? Android 4.4.X: taskAffinity & launchmode vs. Жизненный цикл активности Загрузка файла на сервер с использованием модифицированного Mock GPS Provider работает только в режиме отладки JNI- java.lang.UnsatisfiedLinkError: собственный метод не найден XmlPullParser getAttributeValue возвращает значение null Отключение правого ящика только на определенном фрагменте

Запустить браузер по умолчанию с настройками и параметрами почты

Возможный дубликат:
Как я могу открыть браузер Android с указанными параметрами POST?

Я хотел бы сделать что-то вроде этого:

StartActivity (новый Intent (Intent.ACTION_VIEW, Uri.parse (" http://www.somepage.com?par1=val1&par2=val2 "));

Но я не хочу отправлять параметры с помощью get, но с сообщением. Как я могу это сделать, как описано выше?

Большое спасибо заранее, навахо

Solutions Collecting From Web of "Запустить браузер по умолчанию с настройками и параметрами почты"

Это можно сделать, но сложным способом.

Вы можете создать небольшой html-файл с автоматической формой отправки, прочитать его в строке, заменить параметры и вставить его в намерение в качестве uri данных вместо URL-адреса. Есть несколько незначительных негативных моментов, он работает только напрямую, используя браузер по умолчанию, и трюк будет сохранен в истории браузера, он появится, если вы перейдете обратно.

Вот пример:

HTML-файл (/ res / raw):

<html> <body onLoad="document.getElementById('form').submit()"> <form id="form" target="_self" method="POST" action="${url}"> <input type="hidden" name="param1" value="${value}" /> ... </form> </body> </html> 

Исходный код:

 private void browserPOST() { Intent i = new Intent(); // MUST instantiate android browser, otherwise it won't work (it won't find an activity to satisfy intent) i.setComponent(new ComponentName("com.android.browser", "com.android.browser.BrowserActivity")); i.setAction(Intent.ACTION_VIEW); String html = readTrimRawTextFile(this, R.raw.htmlfile); // Replace params (if any replacement needed) // May work without url encoding, but I think is advisable // URLEncoder.encode replace space with "+", must replace again with %20 String dataUri = "data:text/html," + URLEncoder.encode(html).replaceAll("\\+","%20"); i.setData(Uri.parse(dataUri)); startActivity(i); } private static String readTrimRawTextFile(Context ctx, int resId) { InputStream inputStream = ctx.getResources().openRawResource(resId); InputStreamReader inputreader = new InputStreamReader(inputStream); BufferedReader buffreader = new BufferedReader(inputreader); String line; StringBuilder text = new StringBuilder(); try { while ((line = buffreader.readLine()) != null) { text.append(line.trim()); } } catch (IOException e) { return null; } return text.toString(); } 

навахо,

То, что вы пытаетесь сделать, не может быть сделано с указанным выше URL с ограничениями, которые вы сделали выше. Основная причина этого заключается в том, что URL-адрес выше URL-адреса GET. URL-адрес POST не содержит вышеуказанных параметров. Они передаются в реальном запросе, а не в URL.

Чтобы выполнить то, что вы хотите сделать, вам придется перехватить намерение, переформатировать URL-адрес, а затем запустить браузер с новым намерением. Источником URL является ключ. Если источник от вас или что-то, что вы можете отслеживать, это просто, просто создайте пользовательское намерение. Если источник находится вне вашего контроля, тогда вы можете столкнуться с проблемами (см. Ниже) …

1) GET и POST не являются взаимозаменяемыми. Если вы возитесь с данными, которые не являются вашими или не идут на контролируемый вами сайт, вы можете нарушить функциональность этого сайта, потому что не все программы для GET и POST по соображениям безопасности.

2) Если вы отвечаете одному и тому же намерению, которое делает браузер, возможно, пользователь может не понимать, что делает ваше приложение, если оно всегда открывается по умолчанию.

Другая возможность (если вы контролируете веб-сайт) – реагировать на намерение, создавая файл cookie, который ваш сайт может читать с фактическими требованиями к данным. Для этого потребуется PHP / ASP на сервере или активированный JS HttpRequest ().

Если бы у меня была больше информации, я бы посоветовал вам лучше.

FuzzicalLogic