gpt4 book ai didi

android - 通过 adb shell/Tasker 关闭第二个 SIM - 使用 Activity/Intent

转载 作者:行者123 更新时间:2023-11-30 00:07:42 29 4
gpt4 key购买 nike

我有一台小米6,支持两张SIM卡。我需要弄清楚如何在工作时间以外使用 Tasker 关闭第二张 SIM (SIM2)。

我已经弄清楚如何使用 Tasker 打开 SIM2 的设置页面:

Action: android.intent.action.MAIN
Cat: Launcher
Extra 1: subscription_id:1
Extra 2: slot_id:1
Package: com.android.phone
Class: com.android.phone.settings.MultiSimInfoEditorActivity
Target: Activity

这会显示 settings page for SIM2, like so.但是,我不知道如何打开或关闭 SIM 卡。

为了找到有用的东西,我反编译了 com.android.phone (TeleService.apk),但由于我不懂 Java,所以我不知道从哪里开始。我知道 SO here 上已经有一个 Java 解决方案但我不知道它是否有效或如何使其适应 Tasker。

可以找到反编译的MultiSimInfoEditorActivity here .我也拍了a logcat SIM 卡关闭再打开时发生的情况。

非常感谢任何帮助!

最佳答案

我已经解决了这个问题,尽管它可能不适用于所有版本的 Android。我只在运行 MIUI v9、Android build 8.0.0 的 Mi6 上测试过它。 它需要 root。

经过研究SO solution linked above in my question我注意到代码正在检索特定电话功能的索引号,然后它会使用它来运行命令以关闭移动数据。使用它,我找到了一种实际关闭 SIM 卡的方法。

谷歌搜索产生this page from Haotian Deng显示 服务调用 函数的这些索引列在 ITelephony.aidl 文件中。这些是 Java 代码获取的内容。这些都不适用于 Mi6,但链接到 this page其中解释了服务调用命令:

# service
Usage: service [-h|-?]
    service list
    service check SERVICE
    service call SERVICE CODE [i32 INT | s16 STR] ...
Options:
  i32: Write the integer INT into the send parcel.
  s16: Write the UTF-16 string STR into the send parcel.

有了这个,我发现索引列在设备的 framework.jarcom.android.internal.telephony.ITelephony 中。

因此,要从您的设备中获取所需的索引,您需要在命令提示符下运行以下命令:

  • here 下载 jadx
  • ADB pull the devices framework.jar (adb pull/system/framework/framework.jar)
  • 用 7-Zip 打开 .jar 文件并提取 *.dex 文件。
  • 使用 jadx-gui 打开每个 .dex 文件,直到找到具有以下树的文件:com.android.internal.telephony.ITelephony
  • 搜索项目TRANSACTION_setSimPowerStateForSlot。注意它后面的= x;这是索引号。

现在您有了索引号,您可以在 adb shell(或 Tasker,使用“run shell”功能)中测试以下命令。 您需要在 shell 中“su”,或将 Tasker 设置为“Use Root”

service call phone x i32 y i32 z

Where:
x = index number you fetched previously,
y = your subscription ID (generally, SIM1 = 0, SIM2 = 1)
z = whether on (1) or off (0)

当然,现在您可以在 Tasker 中执行它,您现在可以在特定时间关闭任一 SIM 卡。

我已经证实它确实会关闭 SIM 卡(执行此命令后调用会立即转到语音信箱),但我不确定此开关是否会产生任何进一步的影响。

尽情享受吧!

关于android - 通过 adb shell/Tasker 关闭第二个 SIM - 使用 Activity/Intent ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48696898/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com