代码之家  ›  专栏  ›  技术社区  ›  mdasari

从我的android应用程序向chrome发送/接收消息

  •  3
  • mdasari  · 技术社区  · 8 年前

    我正在尝试在我的android应用程序和android上的chrome之间建立连接。我使用LocalSocket进行套接字通信,如下所示:

            JSONObject request = new JSONObject();
            request.put("method", "Page.reload");
            LocalSocket s = new LocalSocket();
        try {
            s.connect(new LocalSocketAddress("chrome_devtools_remote", LocalSocketAddress.Namespace.ABSTRACT));
            Log.i("Chrome: ", "After local socket connect");
            //StringBuilder request = new StringBuilder().append("GET /json HTTP/1.0\r\n");
            OutputStream oss = s.getOutputStream();
            byte[] buffer = jo.toString().getBytes("utf-8");
            oss.write(buffer, 0, buffer.length);
            Log.i("Chrome: ", "outbuf size " + Integer.toString(s.getSendBufferSize()));
            InputStream iss = s.getInputStream();
            Integer i;
            String res = "";
            while ((i = iss.read()) != -1) {
                res += i.toString();
            }
            Log.i("Chrome: ", res);
        } catch (Exception e) {
            Log.e("Error", "Connecting Local Socket "+e.toString());
        }
    

    我能够在Chrome和我的应用程序之间建立连接,但我无法发送和接收消息来自动在Chrome中加载页面。

    1 回复  |  直到 8 年前
        1
  •  2
  •   dkarv    7 年前

    Chrome不允许每个应用程序都连接到devtool套接字。 它确保连接应用程序使用相同的密钥签名,或者用户 根 或 壳 。可以找到此安全逻辑的源代码 here 。

    如果安全检查失败,它将打印以下消息,您应该在logcat中看到这些消息:

    DevTools:连接尝试来自