Какие разрешения мне нужны для запуска команды оболочки программно в Android? - PullRequest
2 голосов
/ 05 апреля 2011
         try{
             Process process;
             process = Runtime.getRuntime().exec(command);
             BufferedReader in = new BufferedReader(new
                     InputStreamReader(process.getInputStream()));
         } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
         }

Ответы [ 2 ]

4 голосов
/ 05 апреля 2011

Это зависит от команды, которую вы хотите выполнить, вам может не понадобиться.Однако, если вы пытаетесь выполнить команду системного уровня, вам понадобится доступ с правами root (без разрешения Android).Выполнение команды платформы в значительной степени обходит все, что происходит с разрешениями Android, и зависит только от того, имеет ли ваш идентификатор пользователя linux разрешение на чтение / запись / выполнение для команды, которую вы вводите.сгенерируйте SecurityException, если вам не разрешено запускать определенную команду, а исключение предоставит более подробную информацию о том, почему в конкретном случае, поэтому вам, вероятно, следует также отловить это в своем блоке tryВы также можете использовать Runtime.checkexec(), чтобы проверить, можете ли вы выполнить определенную командную строку, прежде чем вы действительно попытаетесь ее выполнить.

Надеюсь, что это поможет!

0 голосов
/ 05 апреля 2011

Я предполагаю, что никаких разрешений здесь не требуется. Но вы можете проанализировать результат выполнения, чтобы понять, где исполняется двоичный файл.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...