从活动开始 Google 搜索查询 - Android

Posted

技术标签:

【中文标题】从活动开始 Google 搜索查询 - Android【英文标题】:Start Google search query from activity - Android 【发布时间】:2011-06-15 14:15:40 【问题描述】:

我想知道是否有更简单的方法(或任何方法)来使用 Google 搜索查询启动浏览器。例如,用户可以选择某个单词或短语并单击一个按钮,该活动将使用 Google 搜索查询启动浏览器。

谢谢。

【问题讨论】:

【参考方案1】:
                String Search= null;
                try 
                    Search= URLEncoder.encode(s, "UTF-8");
                 catch (UnsupportedEncodingException e) 
                    e.printStackTrace();
                
                Uri uri = Uri.parse("http://www.google.com/#q=" + Search);
                Intent intent = new Intent(Intent.ACTION_VIEW, uri);
                startActivity(intent);
            
        );

【讨论】:

这个变种是有效的,但是谷歌改变了它而不是它不起作用。当前工作变体是:google.com/search?q=【参考方案2】:

只需几行代码,您就可以很容易地做到这一点(假设您想在 Google 上搜索“鱼”):

String escapedQuery = URLEncoder.encode(query, "UTF-8");
Uri uri = Uri.parse("http://www.google.com/#q=" + escapedQuery);
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
startActivity(intent);

否则,如果您希望启动自己的 Activity 来处理浏览,您应该可以使用 WebView 来做到这一点:http://developer.android.com/reference/android/webkit/WebView.html

我认为这里更好的答案是@zen_of_kermit 的。不过,如果 Android 允许用户为搜索引擎提供一个额外的 ACTION_WEB_SEARCH,而不仅仅是使用 Google,那就太好了。

【讨论】:

谢谢尼古拉斯。这很容易。 启动 Google 搜索(应用程序,而不是浏览器)的活动是什么? 最好是@zen_of_kermit 给出的答案,因为他写的意图集中在谷歌搜索上,但使用了正确的意图类型。 @CarlosAlbertoMartínezGadea 我不确定正确的答案是否值得投反对票。通常,我会将这些应用于不正确的答案。通常,我要么不投票,要么投一个正确的答案...... 我猜你是对的,我没有这么想。我会尽快删除我的反对票,因为系统暂时阻止了它。【参考方案3】:

我最近试过这个。这似乎工作正常。如果要进行任何修改,请告诉我,因为我是 android 开发新手。

mEdit   = (EditText)findViewById(R.id.editText);

在您的点击视图中,

String q = mEdit.getText().toString();
                        Intent intent = new Intent(Intent.ACTION_WEB_SEARCH );
                        intent.putExtra(SearchManager.QUERY, q);
                        startActivity(intent);

【讨论】:

像魅力一样工作!【参考方案4】:

# 给我添了麻烦:

Uri uri = Uri.parse("https://www.google.com/search?q="+query);
Intent gSearchIntent = new Intent(Intent.ACTION_VIEW, uri);
activity.startActivity(gSearchIntent);

【讨论】:

【参考方案5】:

Intent 类定义了一个专门用于网络搜索的操作:

http://developer.android.com/reference/android/content/Intent.html#ACTION_WEB_SEARCH

这是一个如何使用它的示例:

Intent intent = new Intent(Intent.ACTION_WEB_SEARCH);
intent.putExtra(SearchManager.QUERY, query); // query contains search string
startActivity(intent);

【讨论】:

未找到处理意图的活动! 把它放在try ... catch (ActivityNotFoundException e) mb 一些用户的手机真的没有网络浏览器... xD

以上是关于从活动开始 Google 搜索查询 - Android的主要内容,如果未能解决你的问题,请参考以下文章

从 Google adwords 获取活动查询字符串参数

为从姜饼开始的所有 android 版本在 android 中创建全屏活动

在 Google 和 Apple 地图中搜索查询的推荐格式是啥?

初学者必看,Google搜索引擎的基本原理

如何将可搜索的活动与Ok Google语音搜索集成?

一旦活动从另一个功能开始,如何共享数据?