我正在android中开发一个应用程序,我希望使用sip / xmpp(会话启动协议)发送文本消息,任何人都可以为我提供代码以及任何关于它在任何免费sip提供程序上的开发和测试的指南。
答案 0 :(得分:-1)
更新已重新阅读
对不起,我没有意识到这个问题只与短信有关。 SIP本身不支持短信,SIMPLE或MSRP扩展支持。你需要找到一个你喜欢使用的堆栈,这里有一个例子Doubango和他们的演示产品IMSDroid,但Google的“Android MSRP”还有很多其他选项。我仍然对XMPP一无所知,但请查看this thread以获取更好的库和用途列表
结束更新
到目前为止你尝试了什么?对于您的问题的SIP(语音)部分,这里是Android Developers site上的文档,您需要知道所有这些,这里是免费的SIP提供商:Getonsip。
减少了代码示例,大部分来自Android开发者网站。
基本上,您需要确保将minSDK设置为9,因为直到2.3才添加SIP库。将服务添加到清单:
<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的经验。