Coder Social home page Coder Social logo

qunarcorp / imsdk-android Goto Github PK

View Code? Open in Web Editor NEW
65.0 19.0 46.0 16.38 MB

Startalk is a high-performace IM software for business. It has been stably used in Qunar for more than 4 years, providing services as well as consultation after and before sales to business. Startalk is applicable to multiple scenarios, such as office automation, business services, and first-party SDKs for IM scenes

Home Page: https://im.qunar.com/new

License: MIT License

Java 98.33% HTML 1.44% CSS 0.13% JavaScript 0.10%
startalk

imsdk-android's Introduction

Startalk, The Best open sourced instant messenger software in the world!

Public Cloud(Startalk App)

Based on Startalk server and client-side, users can build their own domain, Sign up an account, create new domains, add users, download client app, and configure navigation for domain, After the 5 steps above, you own strong IM abilities.

Download client appDownload

  • Android

Startalk on Android

Configure navigation for client appConfigure navigation

Private Cloud(Startalk SDK)

Private Cloud is a way for decentralized deployment. Customers or enterprises would deploy the back end code on their own servers, embedding SDK into their own app. Every enterprise is an independent node; every node works independently, and the data would only be saved in the node.

Please see the guide of embedding Android SDK and the configuration below.

Configure Gradle

buildscript {
    repositories {
        google()
        jcenter()
    }
}
 
allprojects {
    repositories {
             maven { url 'https://dl.google.com/dl/android/maven2' }
             maven {
                 url "https://raw.githubusercontent.com/froyomu/im/master"
             }
             maven {
                 url "http://developer.huawei.com/repo/"
             }
             jcenter {
                 url "http://jcenter.bintray.com/"
             }
             maven {
                 url "https://jitpack.io"
             }
             google()
             jcenter()
             mavenCentral()
        }
}
dependencies {
  compile project(':imsdk')//compile 'com.qunar.im:sdk-im:3.0.6'
}

Deploy manifestPlaceholders (If your own app can be deployed by any channel, please deploymanifestPlaceholders in buildTypes, or you need to deploy manifestPlaceholders in every flavor)

flavorDimensions "qim"
    //Mutiple channels
    productFlavors {
        //startalk
        startalk {
            dimension "qim"

            manifestPlaceholders = [
                    PACKAGE_NAME : "sdk.im.qunar.com.qtalksdkdemo",//Replace it with the application ID of your own project
                    serverDoMain  : true,
                    baiduMap :"xxxxx",//key of Baidu map (for sending location)
                    HUAWEI_APPID : "123",//HUAWEI push
                    OPPO_APP_ID : "123",//OPPO push
                    OPPO_APP_KEY : "123",
                    OPPO_APP_SECRET : "123",
                    MIPUSH_APP_ID : "123",//XIAOMI push
                    MIPUSH_APP_KEY : "123",
                    MEIZU_APP_ID : "123",//MEIZU push
                    MEIZU_APP_KEY : "123",
                    VIVO_APP_ID : "123",//vivoo
                    VIVO_APP_KEY : "123",
                    SCHEME : "qtalkaphone",
                    currentPlat  : "QTalk",
                    MAIN_SCHEMA : "start_qtalk_activity"
            ]
        }
        // QChat
        qchat {
            dimension "qim"

            manifestPlaceholders = [
                    PACKAGE_NAME : "sdk.im.qunar.com.qtalksdkdemo",//Replace it with the application ID of your own project
                    serverDoMain  : false,
                    baiduMap :"xxxxx",//key of Baidu map (for sending location)
                    HUAWEI_APPID : "123",//HUAWEI push
                    OPPO_APP_ID : "123",//OPPO push
                    OPPO_APP_KEY : "123",
                    OPPO_APP_SECRET : "123",
                    MIPUSH_APP_ID : "123",//xiaomi push
                    MIPUSH_APP_KEY : "123",
                    MEIZU_APP_ID : "123",//meizu push
                    MEIZU_APP_KEY : "123",
                    VIVO_APP_ID : "123",//vivoo
                    VIVO_APP_KEY : "123",
                    SCHEME : "qchataphone",
                    currentPlat  : "QChat",
                    MAIN_SCHEMA : "start_qchat_activity",
            ]
        }

    }

Configure Manifest of main project

Please see the AndroidManifest configuration in app

How to Use (main ports)

First, please initialize SDK. Then configure the navigation Url and log in。

 1.Initialize SDK
 
 QIMSdk.getInstance().init(Application application)
 2.Configure navigation Ur
 
 QIMSdk.getInstance().setNavigationUrl(String url)
 3.Log in with username and password
 
 QIMSdk.getInstance().login(String uid,String password,LoginStatesListener loginStatesListener)
 4.Auto login (save usernames in the local cache to achieve auto login after token
 
 QIMSdk.getInstance().autoLogin(LoginStatesListener loginStatesListener)
 5.log out
 
 QIMSdk.getInstance().signOut()
 6.Turn on debug mode

 QIMSdk.getInstance().openDebug()

other apiapi.md

Scheme Support

Please see schemescheme doc

ProGuard

Depending on your ProGuard (DexGuard) config and usage, you may need to include the following lines in your proguard.cfg

-dontwarn com.mqunar.**
-keep class com.mqunar.**{*;}
-dontwarn com.qunar.**
-keep class com.qunar.**{*;}

Compatibility

  • Minimum Android SDK: QTalk SDK requires a minimum API level of 16.
  • Compile Android SDK: QTalk SDK requires you to compile against API 26 or later.

Frequent error

Add android.enableAapt2=false in “gradle.properties”

error:style attribute '@android:attr/windowEnterAnimation' not found.
Message{kind=ERROR, text=error: style attribute '@android:attr/windowEnterAnimation' not found.

Add style below in “values styles.xml” in the main project

<style name="SplashTheme" parent="AppTheme">
   <item name="android:windowIsTranslucent">true</item>
</style>
error:No resource found that matches the given name (at 'theme' with value '@style/SplashTheme').

Feedback

imsdk-android's People

Contributors

fantasywxx avatar froyomu avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

imsdk-android's Issues

单聊变群,添加群成员,删除群成员,单聊成员点击崩溃

1、会话列表,打开一个单聊
2、此时点击右上角查看聊天信息,点击页面中+号按钮
3、在添加群成员页面,此时可以看到单聊用户,点击该用户,闪退(点击表示删除操作,此时不能删除该单聊用户才正确)
4、添加多个成员,删除没问题,但是删除到该单聊成员时崩溃

Android本地数据库用户信息

请问,安卓sdk 再本地数据库插入所有联系人的时候,没有UType字段吗? 那么是如何区分用户类型的呢?

官方demo在andriod4.4版本机型报错

09-03 12:37:58.989 887-1203/sdk.im.qunar.com.qtalksdkdemo W/System.err: android.database.sqlite.SQLiteException: unrecognized token: "0x01" (Sqlite code 1): , while compiling: SELECT a.'From', GROUP_CONCAT(a.MsgId) as msgIdList FROM IM_Message as a WHERE (0x01 & a.ReadedTag)<>0x01 and a.'From' <> ? GROUP By a.'From';, (OS error - 2:No such file or directory)
09-03 12:37:59.009 887-1203/sdk.im.qunar.com.qtalksdkdemo W/System.err: at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
09-03 12:37:59.009 887-1203/sdk.im.qunar.com.qtalksdkdemo W/System.err: at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:889)
09-03 12:37:59.009 887-1203/sdk.im.qunar.com.qtalksdkdemo W/System.err: at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:500)
09-03 12:37:59.019 887-1203/sdk.im.qunar.com.qtalksdkdemo W/System.err: at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
09-03 12:37:59.019 887-1203/sdk.im.qunar.com.qtalksdkdemo W/System.err: at android.database.sqlite.SQLiteProgram.(SQLiteProgram.java:58)
09-03 12:37:59.019 887-1203/sdk.im.qunar.com.qtalksdkdemo W/System.err: at android.database.sqlite.SQLiteQuery.(SQLiteQuery.java:37)
09-03 12:37:59.029 887-1203/sdk.im.qunar.com.qtalksdkdemo W/System.err: at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:44)
09-03 12:37:59.029 887-1203/sdk.im.qunar.com.qtalksdkdemo W/System.err: at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1314)
09-03 12:37:59.029 887-1203/sdk.im.qunar.com.qtalksdkdemo W/System.err: at android.database.sqlite.SQLiteDatabase.rawQuery(SQLiteDatabase.java:1253)
09-03 12:37:59.029 887-1203/sdk.im.qunar.com.qtalksdkdemo W/System.err: at com.qunar.im.core.manager.IMDatabaseManager.getMessageStateSendNotXmppIdJson(IMDatabaseManager.java:6188)
09-03 12:37:59.029 887-1203/sdk.im.qunar.com.qtalksdkdemo W/System.err: at com.qunar.im.core.manager.LoginComplateManager.updateMessageStateNoticeServer(LoginComplateManager.java:292)
09-03 12:37:59.039 887-1203/sdk.im.qunar.com.qtalksdkdemo W/System.err: at com.qunar.im.core.manager.LoginComplateManager.loginComplate(LoginComplateManager.java:115)
09-03 12:37:59.039 887-1203/sdk.im.qunar.com.qtalksdkdemo W/System.err: at com.qunar.im.core.manager.IMLogicManager$7.run(IMLogicManager.java:1702)
09-03 12:37:59.039 887-1203/sdk.im.qunar.com.qtalksdkdemo W/System.err: at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:422)
09-03 12:37:59.039 887-1203/sdk.im.qunar.com.qtalksdkdemo W/System.err: at java.util.concurrent.FutureTask.run(FutureTask.java:237)
09-03 12:37:59.049 887-1203/sdk.im.qunar.com.qtalksdkdemo W/System.err: at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:152)
09-03 12:37:59.049 887-1203/sdk.im.qunar.com.qtalksdkdemo W/System.err: at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:265)
09-03 12:37:59.059 887-1203/sdk.im.qunar.com.qtalksdkdemo W/System.err: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
09-03 12:37:59.059 887-1203/sdk.im.qunar.com.qtalksdkdemo W/System.err: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
09-03 12:37:59.059 887-1203/sdk.im.qunar.com.qtalksdkdemo W/System.err: at java.lang.Thread.run(Thread.java:841)

机型为:华为荣耀G620S-UL100
系统为:andriod 4.4.4

可以把Glide升级到4.8版的吗?

当前imsdk-android中的glide是3.x版的,我们自己的项目glide是4.x版的,集成到自己项目后会报java.lang.NoSuchMethodError: No virtual method load(Ljava/lang/Object;)Lcom/bumptech/glide/DrawableTypeRequest; in class Lcom/bumptech/glide/RequestManager; or its super classes (declaration of 'com.bumptech.glide.RequestManager' appears in /data/app/com.gxty.location-MCWrl7XafWHJxD9KqhZHDg==/base.apk)这个错。DrawableTypeRequest这个类在4.x版已经被移除了,导致闪退

会话页面点击右上角查看用户详情崩溃问题解决

java.lang.UnsatisfiedLinkError: could find DSO to load: libreactnativejni.so

会话页面点击右上角查看用户详情崩溃问题解决方法:
app的 build.gradle中:
ndk {
abiFilters "armeabi" 此处最好只保留这一个
}
packagingOptions {
exclude "lib/arm64-v8a/librealm-jni.so"
}

编译报错

style attribute '@android:attr/windowEnterAnimation' not found.
Message{kind=ERROR, text=error: style attribute '@android:attr/windowEnterAnimation' not found.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.