我正在尝试通过C#应用向Android手机发送adb命令,并做一些简单的事情,例如发送短信或电话号码。
我正在从以下位置使用AndroidLib: https://github.com/regaw-leinad/AndroidLib
它有一个名为phone的类,您可以将adb命令发送到设备。拨号号码命令运行正常。我已经在装有Android 4.2和7的两种不同设备上进行了测试,这是它的方法:
public void DialPhoneNumber(string phoneNumber)
{
if (this.device.State != DeviceState.ONLINE)
return;
AdbCommand adbCmd = Adb.FormAdbShellCommand(this.device, false, "service", "call", "phone", "1", "s16", phoneNumber);
Adb.ExecuteAdbCommandNoReturn(adbCmd);
}
如您所见,命令是:"service call phone 1 s16 phoneNumber
它可以正常工作,并且会在输入了号码的设备上弹出拨号页面。
但是对于呼叫或发送短信,它根本不起作用。也不会给我一个错误,似乎正在工作。这是调用方法:
public void CallPhoneNumber(string phoneNumber)
{
if (this.device.State != DeviceState.ONLINE)
return;
AdbCommand adbCmd = Adb.FormAdbShellCommand(this.device, false, "service", "call", "phone", "2", "s16", phoneNumber);
Adb.ExecuteAdbCommandNoReturn(adbCmd);
adbCmd = Adb.FormAdbShellCommand(this.device, false, "input", "keyevent", (int)KeyEventCode.BACK);
Adb.ExecuteAdbCommandNoReturn(adbCmd);
}
此方法中的KeyEventCode.Back
执行得很好,但是调用命令没有执行。
调用命令是否有问题?发送短信的命令是什么?
我使用service call isms 6 s16 "+??????????" i32 0 i32 0 s16 "SMS TEXT HERE"
命令发送短信,但也没有成功。