我正在使用具有以下功能的应用程序:
用户使用USB线或蓝牙将手机连接到PC。
用户在其PC上键入消息(在我的软件提供的文本字段中)。
用户键入电话号码(在我的软件提供的文本框中)。
用户点击发送按钮。
然后,软件应将消息发送到指定的电话号码,并应将适当的费用应用于我的移动余额。换句话说,我通过我的软件指示我的手机将消息发送到指定的号码。
我该怎么做?核心java是否足够用于此目的,或者我必须使用j2me或者是否有适合此的特定Java框架?
答案 0 :(得分:1)
一种选择是使用串行链接(COM)将手机连接到电脑。需要配置通过USB或蓝牙物理连接的手机才能出现在COM(串行)端口中。
然后,您需要为PC(Java或任何可以打开的串行端口)创建一个应用程序,打开手机使用的COM端口并发送正确的AT命令。串行端口可以在JavaComm 2.0 Win32或更近期RxTx打开。
打开串口并通过写入和读取字节来写入和读取命令,与套接字相同。
然后创建一个可视化应用程序,让用户设置目的地,文本等电话号码等信息。
您需要Java SE或任何允许您创建可视化应用程序和打开串行端口的语言(Java,.NET,Python ......)。
Windows中串行端口关于AT命令的一些链接:1,2,3。
另一种选择可能是通过套接字从移动操作系统使用本机API,但看起来很复杂,使用AT命令和串口应适用于所有手机,唯一的问题是通过串口连接手机通过USB或BlueTooth管理串口。
答案 1 :(得分:0)
这高度依赖于您正在使用的移动操作系统。您使用的是Windows Mobile,Android OS,BlackBerry OS吗?
如果你使用Android,那么你应该使用内置的SmsManager
来做到这一点。 SmsManager
可以执行以下操作:
管理短信操作,例如发送数据,文本和pdu短信。
由于您使用的是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;
}
指南