标签: quickblox

更好的方法在Android上使用XMPP实现聊天应用程序?

您好我想使用XMPP在Android中实现聊天应用程序(以避免GCM通知,因为GCM使用请求响应过程).

我使用Smack库和OpenFire服务器完成了70 perc功能.但在完成这些后我才知道了QuickBlox SDK.我完全不知道这一点,但很少有人通过看到这些特征说它是好的api ..

任何人都可以告诉我,这是使用smack for xmpp实现聊天应用程序的正确方法.或者我们有任何其他使用xmpp for android的好api.

android xmpp xmppframework quickblox

31
推荐指数
2
解决办法
5万
查看次数

无法使用外部jar中的Ant构建多个Android dex文件

我正在开发一个需要多个库的Android应用程序(适用于Facebook,Google Maps v2和Quickblox等),导致方法数量溢出超过64K限制:

Unable to execute dex: method ID not in [0, 0xffff]: 65536
Conversion to Dalvik format failed: Unable to execute dex: method ID not in [0, 0xffff]: 65536
Run Code Online (Sandbox Code Playgroud)

由于我不能没有任何这些库,我寻找方法限制bug的解决方案.我发现了一个来自Android开发者的热门博客文章,推荐使用源代码部门.(我正在谈论的博客条目可以在这里找到:http://android-developers.blogspot.com.es/2011/07/custom-class-loading-in-dalvik.html).我一直在尝试这个解决方案但没有成功.

我现在的问题是,最大量的代码不在我的应用程序本身,但在所需的库中,所以我必须在我必须在我的应用程序中加载的不同dex文件中传播这些库.我对Ant的了解非常有限,我想知道的是我应该在build.xml文件中编写什么来使dex复制我想要的每个库:

            <!-- Primary dex to include my source code and some libraries. -->
            <copy todir="${out.classes.absolute.dir}.1" >
                <fileset dir="${out.classes.absolute.dir}" >

                ...

                </fileset>
            </copy>


            <!-- Secondary dex to include some other libraries. -->
            <copy todir="${out.classes.absolute.dir}.2" >
                <fileset dir="${out.classes.absolute.dir}" >

                ...  

                </fileset>
            </copy>
Run Code Online (Sandbox Code Playgroud)

任何帮助都会得到真正的赞赏.在此先感谢,亲切的问候!

ant android antbuilder quickblox

17
推荐指数
2
解决办法
2342
查看次数

XMPP白名单?

我们有QuickBlox的企业安装(实现XMPP),并希望在我们的QuickBlox服务器安装上为所有用户创建镜像帐户.我们还希望使用已建立在我们系统上的关系(例如,"客户端和提供者")来同步我们系统用户创建的网络.

简而言之,我们希望将限制聊天"对手"的白名单导出为仅限与我们每个用户已拥有关系的用户.如果User1在我们的系统中与User2和User3之间存在关系,而不是 User4到User40,我们希望能够通过QuickBlox API创建白名单,使用QuickBlox API在聊天中强制执行.

编辑:我们不能使用"荣誉系统"白名单.也就是说,强制执行必须是服务器端使用客户端无法规避的方法.出于隐私考虑,用户之间必须存在严格的,不可避免的阻止.

使用案例:

QuickBlox(或XMPP)服务器具有User1到User40(包括).

User1的白名单仅由[User2,User3]组成.

如果User1尝试联系User15,我们希望QuickBlox/XMPP注意User15不在User1的白名单上并阻止该通信,就像User1双向阻止该用户一样.

隐私列表,又名黑名单

我在QB的文档中找到了引用XMPP规范文档的地方,并且发现了隐私列表的概念,它们似乎作为黑名单运行:

这些只提供两种黑名单隐私风格:

您可以选择一种被阻止的逻辑(隐私列表).有两种类型:

  • 阻止一种方式.您已被阻止,但您可以写入被阻止的用户.
  • 阻挡有两种方式.您被阻止,也无法写入被阻止的用户.

服务器白名单(对话级别,不是用户)

我还找到了有关服务器白名单的文档,这些文档似乎在对话框/ jid中运行,而不是用户级别:

Rosters - 仅限"存在"细节?

还有一些名单,这些名单与白名单很接近,但在我的测试中似乎并不限制任何两个用户之间的通信,这些用户可能不在彼此的名单上.

也就是说,我没有在我的测试应用程序中设置一个名单,并且用户能够创建组和一对一聊天对话框,尽管没有明确接受任何名册请求.在Android文档中,我在名单上发现了以下内容:"[名册]是一个人收到状态更新的用户集合." 我不相信,这不会出现在状态警报之外的任何方式.

是否有建议的方法为每个用户创建一个悲观的白名单,其中只包含允许通信的用户?或者我们被迫创建和维护"逆黑名单",在这里我们自动化隐私列表创建为每个新用户阻止每一个其他用户,然后使用该API,以消除那些与每个用户应该能够沟通?

如果我们必须使用"反黑名单",是否有办法让默认黑名单适用于最初阻止与我们的QuickBlox系统中已有的每个其他用户进行通信的每个新用户?

(同样,我们不能用"荣誉系统"名单.如果客户端必须请求白名单被激活后才能使用它,可以自由地探索再改活跃的白名单,或者客户端是否可以拒绝使用列表,这不够安全.)

xmpp quickblox

13
推荐指数
1
解决办法
602
查看次数

当我在后台收到推送通知后点击应用程序图标时,没有调用didReceiveRemoteNotification

当我的应用程序在后台并收到远程通知时,可能会发生两件事:

  1. 我点击推送通知横幅,我的应用程序到达前台并调用didReceiveRemoteNotification.

  2. 我从跳板上点击我的应用程序图标,我的应用程序到达前台并且没有调用didReceiveRemoteNotification.

因此,在方案1中,我可以更新应用程序内部未读消息的计数器以响应didReceiveRemoteNotification.在方案2中,我不能.

如何使用Quickblox解决这个问题?

chat objective-c push-notification ios quickblox

11
推荐指数
1
解决办法
1万
查看次数

Quickblox - 如何将QBRTCCameraCapture保存到文件中

我有一个视频通话应用程序使用最新的Quickblox版本(Quickblox 2.5,Quickblox-WebRTC 2.0),我需要保存在调用文件时流式传输的视频.有一个旧版本的SDK的旧示例,它看起来与当前版本完全不同.

由于Quickblox已经在使用AVCaptureVideoDataOutput,因此在当前的文档中没有任何关于此的内容,我无法启动AVCaptureMovieFileOutout.无论如何将流保存到文件中?

更新:

我设法将视频写入文件.缺少的只是音轨.

import Foundation

class VideoManager : NSObject, AVCaptureVideoDataOutputSampleBufferDelegate {

    static let sharedInstance = VideoManager()

    var pixelBufferAdaptor: AVAssetWriterInputPixelBufferAdaptor?
    var assetWriterInput: AVAssetWriterInput?
    var assetWriter: AVAssetWriter?
    var frameNumber: Int64 = 0
    var qbDelegate: AVCaptureVideoDataOutputSampleBufferDelegate?

    func startSavingCaptureToFileWithURL(url: NSURL, capture: QBRTCCameraCapture) {
        print("[VideoManager]: startSavingCaptureToFileWithURL")
        guard let dataOutput = getVideoCaptureDataOutput(capture) else { return }

        frameNumber = 0

        qbDelegate = dataOutput.sampleBufferDelegate
        dataOutput.setSampleBufferDelegate(self, queue: dataOutput.sampleBufferCallbackQueue)

        let outputSettings: [String : AnyObject] = [
            AVVideoWidthKey : 720,
            AVVideoHeightKey: 1280,
            AVVideoCodecKey : AVVideoCodecH264
        ]

        assetWriterInput …
Run Code Online (Sandbox Code Playgroud)

ios webrtc quickblox swift

10
推荐指数
1
解决办法
410
查看次数

比较Layer,Applozic,Quickblox和SendBird,以便在Android应用中快速发送WhatsApp消息

我们Wishbook有一个B2B移动应用程序(Android和iPhone),我们正在寻求实现文本和照片通信 - 在用户1对1之间,或从用户到他的买家组.我们热衷于能够尽快加快速度,提供良好支持,成熟的库/服务器以及电池友好的东西.

我们现在在Layer,Applozic,QuickBlox和SendBird之间进行比较.谁用过它们?他们使用什么协议(XMPP/MQTT/custom/other)?使用它的经验 - 稳定的代码库等等?此外 - 我们更喜欢开源和口袋友好的产品.

谢谢,Arvind

android layer quickblox applozic sendbird

9
推荐指数
1
解决办法
2628
查看次数

找不到Quickblox的StickersManager类

我正在尝试使用Quickblox的示例聊天应用程序.

http://quickblox.com/developers/Android_XMPP_Chat_Sample

但我收到此错误"导入vc908无法解决"在这一行:

import vc908.stickerfactory.StickersManager;
Run Code Online (Sandbox Code Playgroud)

我使用过这些库: - quickblox-android-sdk-chat-2.2.6.jar - quickblox-android-sdk-core-2.2.6.jar

还添加了以下内容: - android-support-v7-appcompat - google-play-services_lib - pull-to-refresh

android chat xmpp quickblox

8
推荐指数
1
解决办法
1593
查看次数

Quickblox聊天登录因未经授权的响应而失败

我一直在我们的应用程序中使用QuickBlox进行聊​​天,并且在登录到ChatService时连接正常.但是,有时当它断开连接并尝试重新连接时,它会抛出此错误,您可以在下面的堆栈跟踪中看到该错误.每次调用ChatService.getInstance.login(用户,回调)方法时,我都要确保实例化一个QBUser对象.

这是这样做的,

final QBUser user = new QBUser();
        user.setLogin(username);
        user.setPassword(HashLearnNowConstant.QB_PWD);




public void login(final QBUser user, final QBEntityCallback callback){

        // Create REST API session
        //
        QBAuth.createSession(user, new QBEntityCallbackImpl<QBSession>() {
            @Override
            public void onSuccess(QBSession session, Bundle args) {

                user.setId(session.getUserId());

                // login to Chat
                //
                if(!chatService.isLoggedIn()){
                    loginToChat(user, new QBEntityCallbackImpl() {

                        @Override
                        public void onSuccess() {
                            callback.onSuccess();
                        }

                        @Override
                        public void onError(List errors) {
                            callback.onError(errors);
                            Log.i(HashLearnNowConstant.LOG_TAG,"loginToChat error: " + errors.get(0).toString());
                        }
                    });
                }else{
                    callback.onSuccess();
                }

            }

            @Override
            public void onError(List<String> errors) {
                callback.onError(errors);
                Log.i(HashLearnNowConstant.LOG_TAG,"createSession …
Run Code Online (Sandbox Code Playgroud)

android quickblox

7
推荐指数
0
解决办法
884
查看次数

QuickBlox v2.6 x通过Facebook for iOS登录

我试图通过Facebook SDK登录Quickblox应用程序但是我得到422错误.

我在Quikblox,Facebook和iOS应用程序中完成了所有需要的工作

  1. 创建Facebook应用程序并集成SDK到iOS应用程序.
  2. 我在Quickblox管理员中填写了所有必填字段

在这里验证了令牌

-(IBAction)test:(id)sender {
FBSDKLoginManager *login = [[FBSDKLoginManager alloc] init];
[login logInWithReadPermissions:@[@"email"]
             fromViewController:self handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) {

    if (error) {
        // Process error
    }
    else if (result.isCancelled) {
        // Handle cancellations
    }
    else {
        if ([result.grantedPermissions containsObject:@"email"])
        {
            NSLog(@"result is:%@",result.token.tokenString);
            [QBRequest logInWithSocialProvider:@"facebook" accessToken:result.token.tokenString
                             accessTokenSecret:nil
                                  successBlock:^(QBResponse *response, QBUUser *user) {
                // Login succeded
            } errorBlock:^(QBResponse *response) {
                // Handle error
            }];
        }
    }
}];
}
Run Code Online (Sandbox Code Playgroud)

我也试过QMServicesManager

    [[[QMServicesManager instance]authService]logInWithFacebookSessionToken:[FBSDKAccessToken currentAccessToken].tokenString completion:^(QBResponse *response, QBUUser *userProfile) { …
Run Code Online (Sandbox Code Playgroud)

facebook ios quickblox

7
推荐指数
1
解决办法
136
查看次数

无法解决:com.quickblox:quickblox-android-sdk-chat:2.6.1

我遵循quick blox给出的指令如下:

从sdk 2.6.1开始添加对特定模块的依赖只需添加:

dependencies 
{

   compile("com.quickblox:quickblox-android-sdk-chat:2.6.1")

}
Run Code Online (Sandbox Code Playgroud)

SDK模块自动包含传递模块依赖项.

但是,我无法同步gradle文件,因为它显示错误:

Fail to resolve: com.quickblox:quickblox-android-sdk-chat:2.6.1

请帮助我,我无法使用最新版本启动快速blox.

quickblox quickblox-android

7
推荐指数
2
解决办法
2232
查看次数