如何通过sip在android中发送短信
Posted
技术标签:
【中文标题】如何通过sip在android中发送短信【英文标题】:How to send text message in android via sip 【发布时间】:2012-07-06 11:52:00 【问题描述】:我正在 android 中开发一个应用程序,我想在其中使用 sip/xmpp(会话启动协议)发送文本消息,谁能给我它的代码以及关于它在任何免费 sip 提供商上的开发和测试的任何指南。
【问题讨论】:
为什么需要 SIP?只是您想在不使用运营商的情况下发送短信吗?如果是这种情况,您可能需要查看 SMSIfied [smsified.com/],它允许您通过 REST API 发送和接收文本消息。它在测试版中是免费的,当它上线时,每条消息将收取 1 美分。 @User1479880 你有通过 sip 发送短信吗 【参考方案1】:重读更新 对不起,我没有意识到这个问题只与短信有关。 SIP 本身不支持文本消息,SIMPLE 或 MSRP 扩展支持。您需要找到一个您乐于使用的堆栈,这里有一个示例Doubango 和他们的演示产品IMSDroid,但谷歌“Android MSRP”还有很多其他选项。我仍然对 XMPP 一无所知,但请查看 this thread 以获取大量库和用途列表。结束更新
到目前为止,您尝试了什么?对于您问题的 SIP(语音)部分,这里是 Android Developers site 上的文档,其中包含您需要知道的所有内容,这里是一个免费的 SIP 提供商:Getonsip。
简化的代码示例,大部分来自 Android 开发者网站。
基本上您需要确保 minSDK 设置为 9,因为 SIP 库直到 2.3 才添加。将服务添加到您的清单中:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.USE_SIP" />
如果您希望您的应用不安装在无法运行的设备上,可以选择添加 uses-feature voip
指令。
<uses-feature android:name="android.hardware.sip.voip" />
创建一个 SipManager:
android.net.sip.SipManager manager = SipManager.newInstance(this);
创建用于通过您的提供商拨打/接听电话的个人资料:
android.net.sip.SipProfile.Builder builder = new SipProfile.Builder(username, domain);
builder.setPassword(password);
android.net.sip.SipProfile sipProfile = builder.build();
如果你只关心打电话:
manager.open(profile);
要打电话给你,你需要和听众一起工作:
SipAudioCall.Listener listener = new SipAudioCall.Listener()
@Override
public void onCallEstablished(SipAudioCall call)
call.startAudio();
call.setSpeakerMode(true);
call.toggleMute();
...
@Override
public void onCallEnded(SipAudioCall call)
// Do something.
;
现在,只要您有对等方的 SIP 地址,您就可以使用:
SipProfile friendProfile = ...;
manager.makeAudioCall(sipProfile.getUriString(), friendAddress, listener, 30);
这应该可以帮助您入门。不幸的是,我没有使用 XMPP 的经验。
【讨论】:
标题清楚地告诉 SIP 用于文本消息,并且您已通过 SIP 应答语音呼叫。 请分享 sip 服务器的 android 发送短信代码...??以上是关于如何通过sip在android中发送短信的主要内容,如果未能解决你的问题,请参考以下文章