2016-06-16 9 views
2

У меня есть корневое устройство Android. В какой-то момент я запускаю вторичное заявление от моего основного приложения следующим образом:Android - Убейте приложение из другого приложения (на корневом устройстве)

Intent intent = getPackageManager().getLaunchIntentForPackage("com.app.package"); 
startActivityForResult(intent, 100); 

Я хочу, чтобы иметь возможность убить это вторичное заявление от основного приложения. Я пытаюсь следующую общую процедуру:

// At an earlier point in time... 
Runtime.getRuntime().exec("su"); 
// The user grants permission 

// ... 

// At a later point in time... 
Runtime.getRuntime().exec("su am force-stop com.app.package"); 

К сожалению, это не убивает приложение, без намека, почему из LogCat.

Если я пытаюсь запустить команду убийства как «am force-stop com.app.package» вместо «su am force-stop com.app.package», logcat говорит, что у меня нет разрешения даже хотя я получил разрешение суперпользователя на запуск «su» раньше.

ответ

4

Найдено решение:

Process suProcess = Runtime.getRuntime().exec("su"); 
DataOutputStream os = new DataOutputStream(suProcess.getOutputStream()); 

os.writeBytes("adb shell" + "\n"); 

os.flush(); 

os.writeBytes("am force-stop com.xxxxxx" + "\n"); 

os.flush(); 

 Смежные вопросы

  • Нет связанных вопросов^_^