質問

るXMPP図書館の現在のAndroidアプリ開発?

  • まとめ パッチに舌鼓 図書館 としては と多くの他の質問 こちらです。しかし、そのパッチ版 に舌鼓APIから二年前のこと。や ですが一般的にもっ 探その他、最近の オプション

  • って見る 公式 舌鼓API 後少し 研究では、まうのですが仕事だけで 細かねがない しかし現実のものとします。

  • も解った は、 BeemのaSMACK図書館.Beemはかなり新しいXMPPクライアント androidのかを理解してい を利用していることを自らのパッチ 版aSMACK.

  • 最後に、あ aSMACK その もできていな更新が非常に 一部の時間のことを示唆).

いその他のご提案やその理由は何ですかだの一つ以上の?

役に立ちましたか?

解決

スマック

Smackは、オープンソースXMPPクライアントライブラリです。バージョン4.1以来、Androidでネイティブに実行されます。詳細については、をご覧ください 「スマック4.1 readme」 そして、を参照してください IGNITE REALTIMEのスマックプロジェクトページ. 。アスマックは時代遅れであり、Smack 4.1を支持して非難されています。

他のヒント

私は最近、別のオープンソースソリューションに出くわしました。 jaxmpp2

Jaxmpp2は、Android(およびJava SE)もターゲットにします。 Android/XMPPプロジェクトでjaxmpp2を使用していないため、他に何も言えません。しかし、それは有効な代替手段のように見えます アスマック.

AndroidにQSMackを使用します

https://code.google.com/p/qsmack/downloads/list

Androidの最新のビルド

私は1対1のチャット、グループチャット、ビデオ転送、オーディオ転送、最後に見られた、登録番号の変更に取り組んできました...ほぼ完了したアプリ。 Openfireでたくさんのプラグインを作成しました

を使用したいのでlibstrophe、jni.目標の利用は、クロスプラットフォームに簡単に操作します。libstropheができるので、書きやすいのandroid makefileからの依存関係はopenssl、expat lib.私の場合は、私が使っているopenssl、expat libからlibjingleるポートにpc版のドットアヒルが出たり、.(必要なポートgypファイルをandroidのmakefileまたはIOSプロジェクト)。

以下が私のandroid makefile



    LOCAL_PATH:= $(call my-dir)/../../libstrophe-0.8.7

    SSL_PROJECT_PATH := openssl/libs/android

    include $(CLEAR_VARS)

    LOCAL_MODULE := openssl

    OPENSSL_LIB_NAME := lib$(LOCAL_MODULE).a

    LOCAL_CFLAGS := -DL_ENDIAN \
        -DOPENSSL_THREADS \
        -DPURIFY \
        -DTERMIO \
        -D_REENTRANT \
        -DOPENSSL_NO_HW \
        -DOPENSSL_NO_GOST \
        -DOPENSSL_NO_DTLS1 \
        -DOPENSSL_NO_RDRAND \
        -DOPENSSL_NO_RSAX \
        -Wall -pipe -fno-exceptions -fno-rtti -fstrict-aliasing -mfpu=neon -mfloat-abi=softfp


    OPENSSL_PATH := openssl/openssl
    OPENSSL_PATH_INC := $(LOCAL_PATH)/openssl/openssl

    LOCAL_C_INCLUDES := \
        $(OPENSSL_PATH_INC) \
        $(OPENSSL_PATH_INC)/include \
        $(OPENSSL_PATH_INC)/crypto \
        $(OPENSSL_PATH_INC)/crypto/asn1 \
        $(OPENSSL_PATH_INC)/crypto/evp \
        $(OPENSSL_PATH_INC)/crypto/modes \
        $(LOCAL_PATH)/openssl/config/android \
        $(LOCAL_PATH)/openssl

    LOCAL_ARM_MODE := arm
    LOCAL_CFLAGS += $(LOCAL_C_INCLUDES:%=-I%) -O3 -DANDROID_NDK


    LOCAL_SRC_FILES := \
        // here is openssl file which is defined in gyp

    LOCAL_SHORT_COMMANDS := true

    include $(BUILD_SHARED_LIBRARY)


    include $(CLEAR_VARS)

    STROPHE_PATH := $(LOCAL_PATH)
    EXPAT := expat-2.1.0
    OPENSSL_PATH := openssl/openssl
    OPENSSL_PATH_INC := $(LOCAL_PATH)/openssl/openssl


    EXPAT_SRC_FILES := \
        $(EXPAT)/lib/xmlparse.c \
        $(EXPAT)/lib/xmlrole.c \
        $(EXPAT)/lib/xmltok.c

    COMMON_CFLAGS := \
        -Wall \
        -Wmissing-prototypes -Wstrict-prototypes \
        -Wno-unused-parameter -Wno-missing-field-initializers \
        -fexceptions \
        -DHAVE_EXPAT_CONFIG_H \
        -DLOGGING -DANDROID \



    COMMON_C_INCLUDES += \
        $(LOCAL_PATH)/$(EXPAT)/lib \
        $(STROPHE_PATH) \
        $(STROPHE_PATH)/src \
        $(OPENSSL_PATH_INC) \
        $(OPENSSL_PATH_INC)/include \
        $(OPENSSL_PATH_INC)/crypto \
        $(OPENSSL_PATH_INC)/crypto/asn1 \
        $(OPENSSL_PATH_INC)/crypto/evp \
        $(OPENSSL_PATH_INC)/crypto/modes \
        $(LOCAL_PATH)/openssl/config/android \
        $(LOCAL_PATH)/openssl \
        ../android/jni


    STROPHE_SRC_FILES := src/auth.c \
        src/conn.c \
        src/ctx.c \
        src/event.c \
        src/handler.c \
        src/hash.c \
        src/jid.c \
        src/md5.c \
        src/sasl.c \
        src/scram.c \
        src/sha1.c \
        src/snprintf.c \
        src/sock.c \
        src/stanza.c \
        src/thread.c \
        src/tls_openssl.c \
        src/util.c \
        src/parser_expat.c \
        src/message.c \
        src/presence.c \
        src/roster.c


    JNI_SRC_FILES := ../android/jni/strophe-jni.c

    ifeq ($(TARGET_ARCH),arm)
        LOCAL_SDK_VERSION := 8
    else
        LOCAL_SDK_VERSION := 9
    endif

    LOCAL_ARM_MODE := arm
    LOCAL_SHORT_COMMANDS := true
    LOCAL_SYSTEM_SHARED_LIBRARIES := libc
    LOCAL_SHARED_LIBRARIES := openssl

    LOCAL_SRC_FILES := $(EXPAT_SRC_FILES)
    LOCAL_SRC_FILES += $(STROPHE_SRC_FILES)
    LOCAL_SRC_FILES += $(JNI_SRC_FILES)

    LOCAL_CFLAGS += $(COMMON_CFLAGS)
    LOCAL_LDLIBS := -L$(SYSROOT)/usr/lib -llog
    LOCAL_CFLAGS += $(LOCAL_C_INCLUDES:%=-I%) -O3 -DANDROID_NDK
    LOCAL_C_INCLUDES += $(COMMON_C_INCLUDES)


    LOCAL_MODULE:= libnativeclient
    LOCAL_MODULE_TAGS := optional

    include $(BUILD_SHARED_LIBRARY)


使用できます Tigase jaxmppクライアントライブラリ - 非常に用途が広く、JavaseアプリケーションとAndroid開発の両方に使用できます。積極的に開発されています Android用のティガゼメッセンジャー (プレイストア)それに基づいています。

があります 基本的なライブラリのドキュメント いくつかの例があるwikiページと詳細については、審判する必要があります Javadocs

使用 Smack 4.1 ReadMeおよびアップグレードガイド

Android Studio 2.3を使用して、最近、非常に簡単な方法でデモを実装しました。

- >以下のようにアプリレベルのグレードルにグラードル依存関係を追加するだけです

compile "org.igniterealtime.smack:smack-tcp:4.1.0"

// Optional for XMPPTCPConnection

compile "org.igniterealtime.smack:smack-android-extensions:4.1.0"

- >接続構成を構成します
ノート :これをasynctaskまたは他のバックグラウンドスレッドで呼び出します

 XMPPTCPConnectionConfiguration config = XMPPTCPConnectionConfiguration.builder()
                    .setUsernameAndPassword("Your Username here", "Your Password here")
                    .setHost("Host name here")
                    .setServiceName("Your service name here")
                    .setPort(Your port number here)
                    .setSecurityMode(ConnectionConfiguration.SecurityMode.disabled) //Disable or enable as per development mode
                    .setDebuggerEnabled(true) // to view what's happening in detail
                    .build();

- >使用 isConnected()isAuthenticated()

- >使用 ChatManager 追加用 chatListener.

QuickBlox1を無料で使用できます。

多くの機能を備えたXMPPサーバーを箱から出して提供します。そこでの機能について読むことができます http://quickblox.com/developers/chat

これがAsmackライブラリでQuickBloxの使用を開始する方法の例です http://quickblox.com/developers/android_xmpp_chat_sample

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top