0

我有一个具有切换功能的网络设备。当我单击设备自己的网页时,某些输出是更改状态。我想创建一个可以在网络上管理此设备的 Android 应用程序。我会在我的应用程序上单击一个按钮,并且此事件在设备上运行,单击设备网页上的一个按钮。这是设备网页上的代码:

<td width="130px"><input type="button"style="width:90px;"onclick="newAJAXCommand('leds.cgi?led=2');"value="Relé 1"/></td> 

我对 Android 应用程序有一个想法,但我不知道如何运行此查询(或创建点击事件)?

设备:http://91.137.148.13:8000/switch.htm

请帮忙。

问候,久拉

4

1 回答 1

1

当您点击网页上的按钮时,浏览器会向指定的 url ( http://91.137.148.13:8000/leds.cgi?led=0) 发送请求。因此,当用户单击您的 Android 应用程序中的按钮时,您可以向此 url 发送请求。

private class exampleHttpTask extends AsyncTask<Integer, Integer, String> {
public String convertStreamToString(InputStream is, String charset) throws IOException {
    if (is != null) {
        Writer writer = new StringWriter();
        char[] buffer = new char[1024];
        try {
            Reader reader = new BufferedReader(new InputStreamReader(is, charset));
            int n;
            while ((n = reader.read(buffer)) != -1) {
                writer.write(buffer, 0, n);
            }
        } finally {
            is.close();
        }
        return writer.toString();
    } else {
        return "";
    }
}

protected String doInBackground(Integer... params) {
    String r = "";
    try {
        HttpClient hc = new DefaultHttpClient();
        HttpGet get = new HttpGet("http://91.137.148.13:8000/leds.cgi?led=0");
        HttpResponse hr = hc.execute(get);

        if(hr.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
            InputStream is = hr.getEntity().getContent();
            r = convertStreamToString(is, "UTF-8");
        } else {
            r = "Error";
        }
    } catch(Exception e){
        e.printStackTrace();
    }
    return null;
}

protected void onPostExecute(String result) {
    Log.d("WEB", result);
}

protected void onPreExecute() {
}

}

(代码来自这里)并且当 onClick 事件被触发时,运行

new exampleHttpTask().exec()

于 2013-06-23T11:10:43.567 回答