9

我正在 android 中开发一个应用程序,我想在其中使用 sip/xmpp(会话启动协议)发送文本消息,任何人都可以给我它的代码以及关于它在任何免费 sip 提供程序上的开发和测试的任何指南。

4

1 回答 1

-1

更新重新阅读
对不起,我没有意识到这个问题只与短信有关。SIP 本身不支持文本消息,SIMPLE 或 MSRP 扩展支持。您需要找到一个您乐于使用的堆栈,这里有一个示例Doubango和他们的演示产品IMSDroid,但谷歌“Android MSRP”有很多其他选项。我仍然对 XMPP 一无所知,但请查看此线程以获取大量库和用途列表。
结束更新

你试过什么了?对于您问题的 SIP(​​语音)部分,这里是Android 开发者网站上的文档,其中包含您需要知道的所有内容,这里是一个免费的 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 的经验。

于 2013-09-04T15:46:53.913 回答