谷歌现在拦截`Intent.ACTION_VIEW`(奇怪)

时间:2015-10-14 19:15:29

标签: java android android-intent google-now

我的问题有点奇怪,但我会尝试具体。 这是我的代码。

if(l.contains("search yahoo")||l.contains("yahoo search")&& !l.contains("search yahoo search"))
                    {
                        String query = l;
                        query = query.replace("search", "");
                        query = query.replace("yahoo", "");
                        String url = "http://search.yahoo.com/search?p=" + query;
                        Intent i = new Intent(Intent.ACTION_VIEW);
                        i.setData(Uri.parse(url));
                        startActivity(i);
                    }
                    if(l.contains("search bing")||l.contains("bing search")&& !l.contains("search bing search"))
                    {
                        String query = l;
                        query = query.replace("search", "");
                        query = query.replace("bing", "");
                        String url = "http://www.bing.com/search?q=" + query + "&go=Submit&qs=ds&form=QBLH";
                        Intent i = new Intent(Intent.ACTION_VIEW);
                        i.setData(Uri.parse(url));
                        startActivity(i);
                    }
                    else {
                        String v2txt = txt2SpeechWords.get(0);

                        v2txt = v2txt.replace("search", "");

                        txt2Speech.speak("searching " + v2txt, TextToSpeech.QUEUE_FLUSH, null);

                        Intent search = new Intent(Intent.ACTION_WEB_SEARCH);
                        search.putExtra(SearchManager.QUERY, v2txt);
                        startActivity(search);
                    } 

在我的程序决定是否应搜索Yahoo!的部分或Bing for Bing它完美无缺。 但是对于雅虎!它会在网络浏览器中打开,但是当我点击设备上的后退按钮时,它会打开Goog​​le即时查询,除了雅虎&搜索,因为我已在代码中替换它们。

为什么会这样?我很确定在确定使用哪个搜索引擎之后就会出现问题,因为Google现在它删除了Yahoo这个词!

为什么Intent.ACTION_VIEW被Google即时截获Yahoo!部分虽然在Bing部分中不会发生这种情况。由于我几乎抄袭了雅虎,这非常具有讽刺意味。代码进入记事本,取代雅虎成为Bing&在Android Studio中粘贴它。

1 个答案:

答案 0 :(得分:0)

我犯了最愚蠢的错误。雅虎部分是if,而且它也是if。 Bing的if声明必须else if。我的问题也有错误。在谷歌现在它不会取代雅虎!因此if声明是错误的。我刚注意到对不起。

正确代码:

if(l.contains("search yahoo")||l.contains("yahoo search")&& !l.contains("search yahoo search"))
                {
                    String query = l;
                    query = query.replace("search", "");
                    query = query.replace("yahoo", "");
                    String url = "http://search.yahoo.com/search?p=" + query;
                    Intent i = new Intent(Intent.ACTION_VIEW);
                    i.setData(Uri.parse(url));
                    startActivity(i);
                }
                else if(l.contains("search bing")||l.contains("bing search")&& !l.contains("search bing search"))
                {
                    String query = l;
                    query = query.replace("search", "");
                    query = query.replace("bing", "");
                    String url = "http://www.bing.com/search?q=" + query + "&go=Submit&qs=ds&form=QBLH";
                    Intent i = new Intent(Intent.ACTION_VIEW);
                    i.setData(Uri.parse(url));
                    startActivity(i);
                }
                else {
                    String v2txt = txt2SpeechWords.get(0);

                    v2txt = v2txt.replace("search", "");

                    txt2Speech.speak("searching " + v2txt, TextToSpeech.QUEUE_FLUSH, null);

                    Intent search = new Intent(Intent.ACTION_WEB_SEARCH);
                    search.putExtra(SearchManager.QUERY, v2txt);
                    startActivity(search);
                }