【问题标题】:Sending messages from pc via mobile phone using java使用java通过手机从电脑发送消息
【发布时间】:2011-09-20 05:13:04
【问题描述】:

我正在使用 java 开发一个具有以下功能的应用程序:

  • 用户使用 USB 数据线或蓝牙将他的手机连接到 PC。

  • 用户在他的 PC 上键入消息(在我的软件提供的文本字段中)。

  • 用户输入电话号码(在我的软件提供的文本框中)。

  • 用户单击发送按钮。

然后,软件应将消息发送到指定的电话号码,并应向我的手机余额收取适当的费用。换句话说,我正在通过我的软件引导我的手机向指定的号码发送消息。

我该怎么做?核心 java 是否足以满足此目的,或者我必须使用 j2me,或者是否有任何特定的 java 框架适合此目的?

【问题讨论】:

    标签: java mobile


    【解决方案1】:

    一种选择是使用串行链接 (COM) 将手机连接到 PC。需要配置通过 USB 或蓝牙物理连接的手机才能显示在 COM(串行)端口中。

    然后您需要为 PC(Java 或任何可以打开串行端口的程序)创建一个应用程序,该应用程序打开手机使用的 COM 端口并发送正确的 AT 命令。串口可以被JavaComm 2.0 Win32或者最近的RxTx打开。

    打开串口,通过读写字节的方式读写命令,和socket一样。

    然后创建一个可视化应用程序,让用户设置目的地的电话号码、文本等信息...

    您需要 Java SE 或任何允许您创建可视应用程序和打开串行端口(Java、.NET、Python...)的语言。

    Windows串口AT指令的一些链接:1,2,3

    另一种选择是通过套接字从移动操作系统使用本机 API,但似乎很复杂,使用 AT 命令和串口应该适用于所有手机,唯一的问题是通过串口连接手机通过 USB 或蓝牙并管理串行端口。

    【讨论】:

      【解决方案2】:

      这在很大程度上取决于您使用的移动操作系统。您使用的是 Windows Mobile、Android 操作系统、黑莓操作系统吗?

      如果您使用的是 Android,那么您应该使用内置的 SmsManager 来执行此操作。 SmsManager 可以执行以下操作:

      管理 SMS 操作,例如发送数据、文本和 pdu SMS 消息。

      更新:

      由于您使用的是 Symbian OS,请查看documentation for more information on sending SMS messages。我假设您可以弄清楚其余部分(即如何获取数字和消息的文本字段等)

      这是 Symbian OS 文档中的一个示例:

      public boolean sendSms(String number, String message){
          boolean result = true;
          try {
            //sets address to send message
            String addr = "sms://"+number;
            // opens connection
            MessageConnection conn = (MessageConnection) Connector.open(addr);
            // prepares text message
            TextMessage msg =
            (TextMessage)conn.newMessage(MessageConnection.TEXT_MESSAGE);
            //set text
            msg.setPayloadText(message);
            // send message
            conn.send(msg);
            conn.close();
          } catch (SecurityException se) {
              // probably the user has not allowed to send sms
              // you may want to handle this differently
              result = false;
          } catch (Exception e) {
              result = false;
          }
          return result;
        }
      

      以上sn-p来自"How to Send Text SMS in Java ME"上的指南

      【讨论】:

      • 我用的是诺基亚(symbian OS/java OS)手机。我需要像link 这样的应用程序……但它在vb.net中……我想在java中开发同样的应用程序。
      • 好像是在手机上执行的应用程序,而不是按要求在电脑上执行的。
      • @David Oliván Ubieto,SMS 的实际发送必须在手机中执行,而不是在 PC 中。否则,向移动帐户收费将非常困难。
      • @Lirik 使用 AT 命令是一个选项。使用您的方法要解决的一个问题是如何将电脑与发送 SMS 的手机应用程序进行通信。
      猜你喜欢
      • 2023-03-23
      • 1970-01-01
      • 1970-01-01
      • 2016-09-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-08
      • 1970-01-01
      相关资源
      最近更新 更多