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

标签 android google-chrome web mobile chrome-remote-debugging

我正在尝试在我的 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 中自动加载页面。

最佳答案

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

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

DevTools: connection attempt from

关于android - 从我的 android 应用程序向 chrome 发送/接收消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49681351/

相关文章:

android - 在手机硬件上运行机器学习模型的可行性?

android - com.googlecode.mp4parser无法获取mp3音频文件?

javascript - 电子邮件中的链接是否可以打开 Chrome 扩展程序?

javascript - 创建一个只能从 Google Chrome 中的用户手势内部调用的函数

html - 如何将卷轴放入没有圆圈的一部分?

java - Java 如何获取网页的全部内容?

android - 广告 SDK 似乎无法从设备获取广告信息

Android Sqlite 将表从一个数据库转移到另一个数据库

用于在 Chrome 中设置 HTML5 日期输入日历样式的 CSS

javascript - 有什么方法可以从字符串中加载 css 和 javascript 吗?