1. Java / Говнокод #11767

    +75

    1. 1
    2. 2
    3. 3
    4. 4
    Process process = Runtime.getRuntime().exec("su");
    OutputStream outputStream = process.getOutputStream();
    String cmd = "keycode " + KeyEvent.KEYCODE_BACK;
    outputStream.write((cmd + "\n").getBytes("ASCII"));

    Андроид. Вот такой вот прекрасный способ программно нажать кнопочку "Back".

    http://stackoverflow.com/questions/5832861/android-back-key-by-software

    Запостил: bormand, 13 Сентября 2012

    Комментарии (8) RSS

    • А что в Андроиде в поток вывода пишут а из потока ввода читают? Или это в Яве всегда так?
      Ответить
      • Испокон веков читали из stdin и писали в stdout
        Если у вас по-другому, сочувствую.
        Ответить
        • Чет или я запутался, или одно из двух. Я думал, что outputStream он для процесса output, а не для того, кто процесс использует.
          Ответить
          • Input stream процесса для того, кто предоставляет этому процессу данные, является output stream (pipe же). Было бы немного нелепо, если бы process.getInputStream() возвращал OutputSream.
            Ответить
            • о, этот эгоцентризм, когда ты лицом к процессу, как я это люблю.
              Ответить
            • Почему нелепо? я бы как раз этого и ожидал... А с ошибками и того лучше получается inputErrorStream? Типа поток для ввода ошибок: открыл, заслал пару коварных ошибок процессу, закрыл и злорадствуешь.
              Ответить
    • На андроиде su не спрашивает пароль?
      Ответить

    Добавить комментарий