使用 adb 从双卡 android 设备拨打电话

Making a call from a dual sim android device using adb

我正在尝试使用 adb 从双 SIM 卡 phone(SIM 0 和 SIM 1)上的特定 SIM 卡拨打电话,但我不知道如何将呼叫定向到该特定 SIM 卡投币口。 到目前为止,我已尝试使用以下命令拨打电话:

adb shell am start -a android.intent.action.CALL -d tel:XXXXXXXXXX

这工作正常,但它总是使用 SIM 0 呼叫。

我尝试将单选选项用作:

adb shell radiooptions

但事实证明,此特定设备不支持单选选项。

/system/bin/sh: radiooptions: not found

我确实在另一台不是双 sim 卡的设备上尝试过,radiooptions 似乎适用于该设备。这就是我首先尝试 radiooptions 的全部原因,因为它有一个非常明确的选择特定 sim 卡的实现。

无论如何,我发现了以下关于双卡 android phone 的问题,但它们不是基于 adb 的。它们都是 Java 个问题。

Make call using a specified SIM in a Dual SIM Device

Call from second sim

他们似乎提供了帮助并提供了一些关于如何完成的线索,尤其是这个:

SO Answer for changing SIM

这非常接近我的需要,但我不知道如何将其转换为命令提示符友好的代码。

上面链接中使用的方法"intent"这里有文档:

https://developer.android.com/reference/android/content/Intent.html

Multi sim android 官方文档: https://developer.android.com/about/versions/android-5.1.html#multisim

非常感谢任何帮助。

SIM卡只是一个容器。 phone 用来注册网络和进行呼叫的实体名称是 SubscriberID。一张 SIM 卡可能包含多个 SubscriberID.

因此,与其询问如何从另一张 SIM 卡拨打电话,不如询问如何使用默认用户 ID 以外的 SubscriberID 拨打电话 - 这个其他 SubscriberID 是否存储在同一张或另一张 SIM 卡上几乎无关紧要。

我不知道是否有办法为单个调用指定不同的 SubscriberID。但是您应该可以在调用之前设置一个新的默认值 SubscriberID,然后再将其还原。

求出当前ID值运行:

adb shell settings get global multi_sim_voice_call

然后通过UI和运行命令再次更改活动订阅者以获得另一个ID。

调用前使用此命令切换到合适的ID:

adb shell settings put global multi_sim_voice_call <ID>

要更改 data 通话设置 - 使用 multi_sim_data_call 而不是 multi_sim_voice_call