2012-09-10 35 views
1

我正在开发一款Android应用程序,需要将一些AT commands发送到调制解调器。与来自Android的3G调制解调器通信

这些命令包括提取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(); 

这有助于颇有几分外露,但似乎并没有成为的一种方式手动设置网络运营商/提供商..这是我需要的主要事情。

回答

0

根据this fellow没有公共的API做你想做的,这我倾向于基于我在Android的各个调制解调器,而且TelephonyManager page无关的事实经验相信。

可能能够做到这一点使用反射来获取访问非公共方法(类似WiMax的管理必须怎样做,一个例子here),但可能不会在所有设备上运行/ OS版本,并且出于安全目的,您可能还需要根植于此类工作。

+0

是的,到目前为止我读过的所有内容都表明它不能完成,这就是为什么我发布了这个具体问题,以防万一有人有办法做到这一点。 –

+0

是的,我很好奇,看看是否有任何东西出现。这是我想要为远程设备管理应用程序做的一件事情。 – berwyn

0

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

此外,有关尝试将AT命令直接发送到您的调制解调器的警告。 RIL不断与调制解调器交互并来回管理AT命令。接收一些它不知道被发送的命令的答案会很沮丧。 RIL经常检查信号强度和一些事情,并管理所有来自调制解调器的可能需要RIL或Android /连接管理器采取行动的未经请求的消息。

相关问题