如何从Xamarin.Android应用程序执行Adb shell命令

时间:2018-02-14 11:04:21

标签: xamarin.android device-policy-manager device-owner adb-shell

我想使用设备策略管理器创建我的应用设备所有者,我需要执行以下命令:

adb shell dpm set-device-owner {package_name}/{receiver_name}

这可以在模拟器运行时找到,并从命令行命中此命令。

但我想以编程方式执行此操作,我尝试这样做:

Java.Lang.Process process = Runtime.GetRuntime().Exec(command);
process.WaitFor();

但这不起作用。根据文档,我在UiAutomation下找到了一个方法ExecuteShellCommand,但不知道如何使用这种方法。任何人都可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

有趣的部分是命令的定义方式。

基于this answer,我可以进行以下工作

    Java.Lang.Process process = Runtime.GetRuntime()?.Exec(new string[] { "su", "-c", "echo test"});
    var result = process?.WaitFor();
    Debug.WriteLine(result);

其中 echo test 是您的实际命令,而 su -c 表示替代用户并运行以下命令。