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();
}
Отговори:
4 за отговор № 1Зависи от командата, която искате да изпълните, виеможе да не ви трябва. Ако обаче се опитвате да изпълните команда на системно ниво, ще ви е необходим root достъп (не разрешение за Android). Изпълнението на команда на платформата почти заобикаля всичко, което се случва с разрешения за Android и се влияе само от това дали вашият идентификационен номер на Linux е прочел / написал / изпълнил разрешение за командата, която издавате.
Runtime.exec()
също ще хвърли a SecurityException
ако не ви е позволено да изпълнявате конкретна команда и изключението ще предостави повече подробности защо в конкретния случай, така че вероятно трябва да го хванете във вашия try
блок също. Можете също така да използвате Runtime.checkexec()
за да проверите дали можете да стартирате определен команден низ, преди всъщност да го опитате.
Надявам се, че помага!
0 за отговор № 2
Предполагам, че тук не са необходими разрешения. Но можете да анализирате резултата от изпълнението, за да разберете дали бинарният се изпълнява.