Отправлять / получать сообщения из моего приложения для Android в Chrome

Я пытаюсь установить связь между моим Android-приложением и Chrome на Android. Я использую 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 ответ

Chrome не позволяет каждому приложению подключаться к разъему devtool. Он гарантирует, что подключаемое приложение подписано тем же ключом, либо пользователь является пользователем root или shell. Исходный код этой логики безопасности можно найти здесь.

Если проверка безопасности не проходит, она печатает следующее сообщение, которое вы должны увидеть в logcat:

DevTools: попытка подключения от

Другие вопросы по тегам