android的谷歌计算器结果

android的谷歌计算器结果,android,google-chrome,calculator,Android,Google Chrome,Calculator,我正在制作一个android应用程序,它需要向谷歌的计算器发送一个像1+1这样的数学问题,我需要得到显示在网络上的结果。如何在android上实现这一点?一种可能是为您试图计算的方程式创建URL,然后使用URL连接打开URL并阅读网页源代码以找到方程式的答案 例如,如果您有以下等式: 2+2 然后,使用Google Chrome计算器计算结果的URL为: 您必须在URL中为正在求解的方程构造适当的查询。在此URL中,末尾的查询具有等式2+2: q=2%2B2(其中%2B表示+符号) 构建URL

我正在制作一个android应用程序,它需要向谷歌的计算器发送一个像1+1这样的数学问题,我需要得到显示在网络上的结果。如何在android上实现这一点?

一种可能是为您试图计算的方程式创建URL,然后使用URL连接打开URL并阅读网页源代码以找到方程式的答案

例如,如果您有以下等式:

2+2

然后,使用Google Chrome计算器计算结果的URL为:

您必须在URL中为正在求解的方程构造适当的查询。在此URL中,末尾的查询具有等式2+2:

q=2%2B2(其中%2B表示+符号)

构建URL后,使用URLConnection打开它并读取源代码。方程式的答案将在以下元素中给出:

<span class="cwcot" id="cwos">4</span>
4
因此,您可以解析源代码,以便找到特定的span元素并检索公式的结果

这项工作可能比您预期的要多,但这是我能想到的实现您要求的唯一解决方案。此外,这种方法可能容易出错,并且容易出错。我会考虑使用一种完全不同的方法,例如在移动设备上启动使用计算器应用程序的意图(即使这种方法也有问题)。 编辑:

这对我有效(它将输出:2+2=4):

公共静态无效测试(){
试一试{
字符串源=getUrlSource();
字符串span=“”;
int length=span.length();
int index=source.indexOf(span)+长度;

String equation=source.substring(index,source.indexOf)(“感谢您抽出时间回答我的问题,我就像您在第一部分中所说的那样做了。好的,我的等式有一个链接:”“对于2+2。我的主要问题是我找不到解析该元素的方法。我的意思是我将页面解析为json并搜索“cwos”"在json中,但我找不到它。我应该如何找到该元素的答案?再次感谢,很遗憾,我必须连接到google Calculator。这是我能得到的最接近的,但很遗憾,在read URLConnection中没有收到数学问题的结果。@SuhrahjRothgar我可以找到该元素w当我在浏览器中打开url时,它不在url连接的网页源代码中。您可能会发现以下内容:2+2=4“nobr”似乎是唯一的,因此您可以搜索它以获得等式的结果。您可能还想查看Google的自定义搜索API,但我从未使用过它。
public static void test() {
    try {
        String source = getUrlSource();
        String span = "<span class=\"nobr\"><h2 class=\"r\" style=\"display:inline;font-size:138%\">";

        int length = span.length();         
        int index = source.indexOf(span) + length;

        String equation = source.substring(index, source.indexOf("<", index));

        System.out.println( "equation: " + equation);           
    } catch (IOException e) {
        e.printStackTrace();
    }
}

private static String getUrlSource() throws IOException {
    String url = "https://www.google.com/search";

    String charset = "UTF-8";
    String param1 = "2+2";

    String query = String.format("?q=%s", URLEncoder.encode(param1, charset));

    HttpsURLConnection urlConn = (HttpsURLConnection)new URL(url + query).openConnection();

    urlConn.setRequestProperty("User-Agent", "Mozilla/5.0");
    urlConn.setRequestProperty("Accept-Charset", charset);

    BufferedReader in = new BufferedReader(new InputStreamReader(urlConn.getInputStream()));
    String inputLine;
    StringBuilder a = new StringBuilder();
    while ((inputLine = in.readLine()) != null)
        a.append(inputLine);
    in.close();

    return a.toString();
}