关于SOverflow的一些问题我发现THIS。但它表示目前无法提供,可能永远无法获得。
基于THIS我意识到没有必要建立我自己的短信服务。
所以问题是:
我的java应用程序必须向用户发送短信并从用户接收短信。 我是否真的需要支付一些短信网关,或者是否有一些免费的短信网关(有一些限制)可以用来测试我的申请?
Simplewire Kit看起来很简单,但演示示例失败了,因为我没有Simplewire account。 Simplewire文档说,发送短信有30天的试用期。但这有两个方面:
“对于2-Way,因为你需要你的演示版,所以没有演示版 在Simplewire的网络上托管自己的手机号码。 Simplewire 支持许多不同国家和地区的双向数字 码。有关更多信息,请联系Simplewire。“
答案 0 :(得分:4)
FYI Simplewire现在是OpenMarket.com/MXTelecom.com
有几个免费的短信网关,但他们都会在您的短信中附加短信广告以支付费用。 ZeepMobile是我听到的最多的。至于支付,有几个解决方案,但这一切都取决于您的需求。
双向通信需要最终用户订阅您的服务。有几种方法可以解决这个问题:
短代码:您可以获得自己的(www.openmarket.com)或与他人分享(www.clickatell.com) 您可以使用新的服务www.twilio.com看起来很好,但还没有测试过。
如果您需要单向通信,则可以使用email to gateway sms这样的内容,但随后您需要了解最终用户所在的运营商。
答案 1 :(得分:2)
Fowiz提供免费的基于Android的解决方案,用于从应用程序发送/接收短信。您需要在设备上安装他们的Android应用以启用此服务,并在手机上发送/接收消息。您可以设置CallbackUrl以接收有关传入消息的即时通知。 Fowiz还支持短代码,活动管理,投票等。
通过Fowiz发送消息的示例代码:
String myPasscode = 'your passcode';
String myUsername = 'your fowiz username';
String toPhoneNumber = 'recipient phone number';
String myMessage = 'your message';
HttpClient client = new DefaultHttpClient();
HttpGet request = new HttpGet(HTTP_API + "?username="+myUsername
"&phonenumber="+toPhoneNumber
+"&message="+myMessage+"&passcode="+myPasscode);
HttpResponse response = client.execute(request);
BufferedReader rd = new BufferedReader
(new InputStreamReader(response.getEntity().getContent()));
String line = "";
StringBuffer response = new StringBuffer();
while ((line = rd.readLine()) != null) {
response.append(line);
}
System.out.println(response.toString());
答案 2 :(得分:0)
是的,您可以在5分钟内构建自己的API。您的Android手机可以用作服务器API,以Java代码发送和接收SMS。做到这一点非常简单。有一些基本步骤
如果要逐步学习。还有指南和视频教程。 Send or receive FREE SMS in Java
public class SMSSender {
public static void main(String[] args) throws Exception{
// TODO Auto-generated method stub
String message = "Junk characters? method sendMultipartTextMessage only send text message. If you want to send non text message, you should look to method sendDataMessage. Below is the code excerpt from android cts. It has example on how to send long messages.";
String phone = "92***********";
String username = "abcd";
String password = "1234";
String address = "http://192.168.1.101";
String port = "8090";
URL url = new URL(
address+":"+port+"/SendSMS?username="+username+"&password="+password+
"&phone="+phone+"&message="+URLEncoder.encode(message,"UTF-8"));
URLConnection connection = url.openConnection();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
String inputLine;
while((inputLine = bufferedReader.readLine()) !=null){
System.out.println(inputLine);
}
bufferedReader.close();
}
}