我正在尝试使用adb shell命令发送消息。我在Android 10上发送,但在Android 11上没有。我尝试了所有方法,但没有成功。我找到了Android 11 here的isms服务源代码。我还有2部Android 11手机,当我测试它们时,结果是一样的。为了测试我的shell命令在设备上是否工作,我试了输入命令,它确实是。我读了this,它仍然没有帮助。
我使用的命令:
adb shell service call isms 7 i32 0 s16 "com.android.mms.service" s16 "%number%" s16 "null" s16 "%message%" s16 "null" s16 "null"
此命令的输出:
Result: Parcel(00000000 '....')
有人能帮助我如何在Android 11上使用adb shell命令发送消息吗?
(我在Android 12上试过,结果相同)
4条答案
按热度按时间cczfrluj1#
Android 10之后:
在Android 10之前:
jv4diomz2#
对于未来的证明方式--因为数字(5,7)会改变,你最好直接使用isms AIDL。
因此,查看ism.aidl(frameworks/base/telephony/java/com/android/internal/telephony/ISms.aidl),您将看到“5”现在是
所以建议的答案是:
基本上是伪造的论点(并不完全正确):
如果可以的话,请参考AIDL。它安全得多,并且确保序列化正确的参数。不幸的是,这些参数在不同版本之间经常变化。
(来源:《安卓内部》第二卷(http://NewAndroidBook.com))
crcmnpdw3#
如果您只想向模拟器发送一些测试消息,而不想处理adb,则可以通过模拟器本身来完成
moiiocjp4#
以下代码将使用默认消息传递应用编写SMS消息,但不会发送:
adb shell am start -a android.intent.action.SENDTO -d sms:+1234567890 --es sms_body "Test" --ez exit_on_sent false
。如果您希望完全在后台发送邮件,这将不会有帮助。