如何在java中使用AT命令控制手机

时间:2011-06-01 06:42:46

标签: java at-command

我知道通过使用AT命令,我们可以控制手机。例如解锁屏幕,我们可以给出一个特定的AT命令或向右移动到菜单或向左或向下或向上我们可以给出特定的AT命令。什么是用于执行此类控制的AT命令。 谢谢。

2 个答案:

答案 0 :(得分:3)

根据我的理解,AT命令更多地用于电话类型的功能(拨打电话或发送短信等),而不是菜单导航等。

我不完全确定这是否是菜单导航后的最终目标,但您可以在此处找到更多详细信息:http://en.wikipedia.org/wiki/Hayes_command_set(原始+ AT命令集)

如果您想从连接到计算机的手机发送短信,可能需要查看此页面:http://www.developershome.com/sms/atCommandsIntro.asp 如果您在执行功能时需要更多控制,例如发送短信等,您可能需要调查“PDU模式”。

完全有可能某些手机制造商可能已经实施了额外的+ AT命令以允许执行其他功能,因此您可以通过专门搜索与您正在使用的手机相关的命令来做得更好。

(当然,如果您在连接到手机硬件本身时遇到问题,则需要确保您安装了javax.comm扩展或一些优惠的Java USB API)

如果帖子无效,或许您可以在问题中提供更多详细信息? (例如,你最终想做什么,如果你认为这会有所帮助)

答案 1 :(得分:1)

List of AT commands

使用AT命令的示例java代码

 public void servicesDiscovered(int transID, ServiceRecord serviceRecord[])
    {
        String url = serviceRecord[0].getConnectionURL(1, false);
try
        {
            //ClientSession conn= (ClientSession)Connector.open(url);
            StreamConnection meineVerbindung = (StreamConnection) Connector.open(url);

            if(conn== null)
                System.out.println("Kann Service URL nicht oeffnen\n");
            else
            {

                OutputStream out = conn.openOutputStream();
                InputStream in = conn.openInputStream();

                String message = "AT+CGMI\r\n";

                // send AT-command
                System.out.println("send AT Comand request: "+message);
                out.write(message.getBytes());

                out.flush();
                out.close();

                byte buffer[] = new byte[10000];
                // read the response from mobile phone
                in.read(buffer);
                System.out.println("AT Comand response: "+buffer.toString());}            

        }
        catch(IOException e)
        {
            System.out.println("Service Error(3): "+e.getMessage());
        }

    }