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

Google Now intercepts `Intent.ACTION_VIEW` (Strange)

我的问题有点奇怪,但我会尽量具体一点。 这是我的代码。

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 对于 Bing 它工作得很好。 但是对于雅虎!它在网络浏览器中打开,但当我点击我设备上的后退按钮时,它打开 Google 现在查询除了 Yahoo & Search 字样,因为我已经在代码中替换了它们。

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

这个词

为什么 Intent.ACTION_VIEW 被 Google 截获现在是 Yahoo!部分 while 这不会发生在 Bing 部分。这很讽刺,因为我几乎复制了 Yahoo!将代码写入记事本,将 Yahoo 替换为 Bing 并将其粘贴到 Android Studio 中。

我犯了最愚蠢的错误。在雅虎部分是 if,在 bing 中也是 if。 Bing 的 if 声明必须 else if。我的问题也有错误。在 google 现在它不会取代 Yahoo!因此 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);
                }