【问题标题】:Communicate with 3g modem from Android从 Android 与 3g 调制解调器通信
【发布时间】:2012-09-10 09:22:16
【问题描述】:

我正在 Android 中开发一个应用程序,它需要将一些 AT commands 发送到调制解调器。

这些命令包括提取 IMEI 号码、迭代可用网络和设置 APN 详细信息等内容。

我有这个软件的 Windows (c#) 版本,所以我熟悉我需要发送的命令,但在 Windows 中我可以简单地打开相关的Serial Port 并发送命令。

谁能帮忙?

丰富。

EDIT

我发现调制解调器的某些功能通过TelephonyManager API 暴露出来

    TelephonyManager telMgr = (TelephonyManager) this.getSystemService(Context.TELEPHONY_SERVICE); 
    String SerNum= telMgr.getSimSerialNumber();
    String IMEI= telMgr.getDeviceId();
    String Operator= telMgr.getSimOperatorName();

这有很大帮助,但似乎没有手动设置网络运营商/提供商的方法。这是我需要的主要内容。

【问题讨论】:

    标签: android serial-port 3g at-command


    【解决方案1】:

    根据this fellow 的说法,没有公共API 可以做你想做的事,根据我对Android 中各种调制解调器的经验以及TelephonyManager page 什么都没有的事实,我倾向于相信这一点。

    可能能够使用反射来访问非公共方法(类似于必须完成 WiMax 管理的方式,例如 here),但这可能不会在所有设备/操作系统版本上工作,并且出于安全目的,您可能还需要扎根才能使此类工作正常工作。

    【讨论】:

    • 是的,到目前为止我所阅读的所有内容都表明它无法完成,这就是我发布这个特定问题的原因,以防万一有人有办法做到这一点。
    • 是的,我很想知道是否有任何事情发生。这是我想为远程设备管理应用程序做的事情。
    【解决方案2】:

    我致力于定制系统并集成了一个 GSM 调制解调器。我建议您启用并使用 logcat 查看“无线电”日志。可以从中学到很多东西(至少我做到了)。有一个包含 APN 列表的配置文件,连接时,您会看到它查找“首选 APN”。在我的系统中,它是该文件中的 APN。由于几乎没有关于如何在 Android 中玩较低级别的信息(信息仅在应用程序级别可用),我使用(并牺牲)了一些“现成”系统来查看它是如何工作的,然后为我的定制一个。电话周围的区域似乎是不同制造商/运营商添加自己口味的地方之一,因为我可以注意到具有相同 Android 版本(Froyo、姜饼等)的每个系统的差异。不幸的是,这不是一个直接的答案,但我希望这些信息能有所帮助。

    另外,关于尝试将 AT 命令直接发送到调制解调器的一点警告。 RIL 不断与调制解调器交互并来回管理 AT 命令。它会因为收到一些它不知道已发送的命令的答案而感到不安。 RIL 不断检查信号强度和一堆东西,并管理来自调制解调器的所有主动消息,这些消息可能需要 RIL 或 Android/连接管理器采取行动。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-08-06
      • 1970-01-01
      • 1970-01-01
      • 2023-04-06
      • 2014-03-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多