Фоновый поиск результатов в google и получение результатов
Фоновый поиск результатов в google и получение результатов
Всем привет!
Ребят, подскажите, пожалуйста, нужно сделать фоновый поиск в гугл при нажатии кнопки "Поиск" (текст запроса берём из EditText) как его сделать? В какую сторону копать?
цель - по заданному запросу записать результаты поиска в БД в фоновом режиме...
заранее спасибо откликнувшимся!!
Ребят, подскажите, пожалуйста, нужно сделать фоновый поиск в гугл при нажатии кнопки "Поиск" (текст запроса берём из EditText) как его сделать? В какую сторону копать?
цель - по заданному запросу записать результаты поиска в БД в фоновом режиме...
заранее спасибо откликнувшимся!!
Re: Фоновый поиск результатов в google и получение результат
https://developers.google.com/custom-search/
С Valley это очень просто отправляется запрос итак в background, в ответе приходит json, с которым можно делать, что угодно.
Но есть более классический путь:
[syntax=java5]
Intent intent = new Intent(Intent.ACTION_WEB_SEARCH);
String keyword= "your query here";
intent.putExtra(SearchManager.QUERY, keyword);
startActivity(intent);
[/syntax]
или голосовой поиск:
[syntax=java5]
Intent sp=new Intent(RecognizerIntent.ACTION_WEB_SEARCH);
sp.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
sp.putExtra(RecognizerIntent.EXTRA_PROMPT, "Speak please");
startActivity(sp);
[/syntax]
в общем в сети ответов полно. http://mobile.dzone.com/articles/androi ... ent-google | http://www.grokkingandroid.com/android- ... your-apps/
С Valley это очень просто отправляется запрос итак в background, в ответе приходит json, с которым можно делать, что угодно.
Но есть более классический путь:
[syntax=java5]
Intent intent = new Intent(Intent.ACTION_WEB_SEARCH);
String keyword= "your query here";
intent.putExtra(SearchManager.QUERY, keyword);
startActivity(intent);
[/syntax]
или голосовой поиск:
[syntax=java5]
Intent sp=new Intent(RecognizerIntent.ACTION_WEB_SEARCH);
sp.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
sp.putExtra(RecognizerIntent.EXTRA_PROMPT, "Speak please");
startActivity(sp);
[/syntax]
в общем в сети ответов полно. http://mobile.dzone.com/articles/androi ... ent-google | http://www.grokkingandroid.com/android- ... your-apps/

Re: Фоновый поиск результатов в google и получение результат
ну я по классическому пути и пошёл, вот только как вернуться обратно в предыдущее активити без каких-либо дополнительных нажатий и как json взять, вот этого не пойму...
получилось точно также, как Вы написали, но как с этим результатом вернуться домой не догоняю..
получилось точно также, как Вы написали, но как с этим результатом вернуться домой не догоняю..
Код: Выделить всё
public void onClickHandler(View v){
try {
intent = new Intent(Intent.ACTION_WEB_SEARCH);
etText = etKeyWord.getText().toString();
intent.putExtra(SearchManager.QUERY, etText);
startActivity(intent);
} catch (Exception e) {
Log.d(LOG_TAG, "При попытке поиска произошла ошибка!");
}
}Re: Фоновый поиск результатов в google и получение результат
В данном случае открывается activity, я так не делал но на сколько понимаю - это простой web view в который переданы параметры запроса, и вы можете только видеть результат в том же view. Для того, чтобы получить результат в виде json (конкретнее тут: https://developers.google.com/custom-se ... using_rest)обычно нужно отправить запрос к сервису поддерживающему rest ахитектуру и это явно из другой оперы, тут вам и поможет первая ссылка. Там google описывает подробно, как получить json, ну а отправить запрос к указанным сервисам из andoid в background вам может помочь простенкая библиотека - http://habrahabr.ru/post/188860/Yurets писал(а):ну я по классическому пути и пошёл, вот только как вернуться обратно в предыдущее активити без каких-либо дополнительных нажатий и как json взять, вот этого не пойму...
получилось точно также, как Вы написали, но как с этим результатом вернуться домой не догоняю..Код: Выделить всё
public void onClickHandler(View v){ try { intent = new Intent(Intent.ACTION_WEB_SEARCH); etText = etKeyWord.getText().toString(); intent.putExtra(SearchManager.QUERY, etText); startActivity(intent); } catch (Exception e) { Log.d(LOG_TAG, "При попытке поиска произошла ошибка!"); } }

Re: Фоновый поиск результатов в google и получение результат
Ну да, вот классическим способом я примерно прикидываю как это сделать, но это как-то глуповато немного...
а за Volley спасибо. Действительно то, что надо. Сейчас буду разбирать.
Спасибо!
а за Volley спасибо. Действительно то, что надо. Сейчас буду разбирать.
Спасибо!
Re: Фоновый поиск результатов в google и получение результат
Вдруг кому-то понадобится - подробное описание по Volley на русском
http://android-developerden.blogspot.co ... oogle.html
http://android-developerden.blogspot.co ... oogle.html
Re: Фоновый поиск результатов в google и получение результат
Всё к этой же теме, но теперь по части Volley, кто сталкивался - не будьте безразличны)
при нажатии кнопки делается поиск в гугле по уже закодированному формату (проверил, всё делается правильно)
мне нужно получить первый результат поиска либо Json (искомое слово-значение) либо string (значение)...
Выдаёт BasicNetwork.performRequest: Unexpected response code 405 for hhtp://www.google.ru/#q=%бла%бла&бла%
и соответственно сразу кидает в блок onErrorResponse...
Ощибка пропадает, если использовать GET вместо POST, но как же всё-таки "взять" первый результат?
при нажатии кнопки делается поиск в гугле по уже закодированному формату (проверил, всё делается правильно)
мне нужно получить первый результат поиска либо Json (искомое слово-значение) либо string (значение)...
Выдаёт BasicNetwork.performRequest: Unexpected response code 405 for hhtp://www.google.ru/#q=%бла%бла&бла%
и соответственно сразу кидает в блок onErrorResponse...
Ощибка пропадает, если использовать GET вместо POST, но как же всё-таки "взять" первый результат?
Код: Выделить всё
private RequestQueue queue = null;
JsonObjectRequest jsObjRequest;
public void onClick(View v) {
queue = Volley.newRequestQueue(this);
jsObjRequest = new JsonObjectRequest(Request.Method.POST, url + Uri.encode(etKeyWord.getText().toString()), null, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
Log.d(LOG_TAG,"Response => "+response.toString());
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.d(LOG_TAG, "Ошибка запроса!");
}
});
queue.add(jsObjRequest);
}Re: Фоновый поиск результатов в google и получение результат
altwin писал(а):http://stackoverflow.com/questions/1983 ... ot-working
Похоже на правду!
Спасибо огромное, не представляете как помогли!!!