在我的 android 应用程序中,我想从用户那里获取搜索查询,并使用该查询搜索 google,获取搜索结果并使用搜索结果填充列表。自定义搜索 API 限制为每天 100 次免费搜索。那么有没有其他的搜索方式呢?
2 回答
这是您可以使用的东西。
http://google.com/complete/search?output=toolbar&q=查询
它返回一个 XML 文件。解析该 xml 以获得结果。但谷歌将来可能会改变查询的格式。这是这里唯一的问题。否则效果很好。
为了将来参考,请注意以下对其他有用网站的查询。一些以 JSON 格式返回,而另一些以 XML 格式返回。
http://suggestqueries.google.com/complete/search?hl=en&ds=yt&client=youtube&hjson=t&cp=1&q= query &alt=json
http://search.yahooapis.com/WebSearchService/V1/relatedSuggestion?appid=YahooDemo&query=查询
http://en.wikipedia.org/w/api.php?action=opensearch&search=查询&limit=10&namespace=0&format=json
http://anywhere.ebay.com/services/suggest/?q=查询&s=0
http://completion.amazon.com/search/complete?method=completion&q= query &search-alias=aps&mkt=1
http://api.bing.net/osjson.aspx?Query=查询&Market=en-us
您可以尝试使用此代码
MainActivity.java
private EditText editTextInput;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_g__search);
editTextInput = (EditText) findViewById(R.id.editTextInput);
}
public void onSearchClick(View v)
{
try {
Intent intent = new Intent(Intent.ACTION_WEB_SEARCH);
String term = editTextInput.getText().toString();
intent.putExtra(SearchManager.SUGGEST_URI_PATH_QUERY, term);
startActivity(intent);
} catch (Exception e) {
// TODO: handle exception
}
}
Activity_layout.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<EditText
android:id="@+id/editTextInput"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="10" >
<requestFocus />
</EditText>
<Button
android:id="@+id/button1"
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignRight="@+id/editTextInput"
android:layout_below="@+id/editTextInput"
android:layout_marginRight="43dp"
android:layout_marginTop="60dp"
android:onClick="onSearchClick"
android:text="CLICK" />
还添加互联网权限