QuickBlox - Communication & cloud backend (BaaS) platform which brings superpowers to mobile apps.
QuickBlox is a suite of communication features & data services (APIs, SDKs, code samples, admin panel, tutorials) which help digital agencies, mobile developers and publishers to add great functionality to smartphone applications.
Please read full Android SDK documentation on the QuickBlox website, Android section
This project contains QuickBlox Android SDK, that includes
- framework library jar
- snippets (shows main use cases of using this one)
- samples (separated samples for each QuickBlox module)
To start work you should just put framework into your project and call desired methods.
Latest framework file you can download from GitHub.
Android SDK is really simple to use. Just in few minutes you can power your mobile app with huge amount of awesome communication features & data services.
3. Add jar library to project libs folder.
Eclipse users: If you got 'Unable to execute dex: Java heap size' - try to upgrade eclipse.ini to https://groups.google.com/forum/?fromgroups=#!topic/phonegap/yWePvssyiLE
- Go to AndroidManifest.xml and add
<uses-permission android:name="android.permission.INTERNET" />
inside <manifest>
tag.
The common way to interact with QuickBlox can be presented with following sequence of actions:
- Initialize framework with application credentials
- Create session
- Login with existing user or register new one
- Perform actions with any QuickBlox data entities (users, locations, files, custom objects, pushes etc.)
QBSettings.getInstance().fastConfigInit("961", "PBZxXW3WgGZtFZv", "vvHjRbVFF6mmeyJ");
or step by step
QBSettings.getInstance().setApplicationId("961");
QBSettings.getInstance().setAuthorizationKey("PBZxXW3WgGZtFZv");
QBSettings.getInstance().setAuthorizationSecret("vvHjRbVFF6mmeyJ");
QBAuth.createSession(new QBCallbackImpl() {
@Override
public void onComplete(Result result) {
if (result.isSuccess()) {
// do stuff you need
}
}
});
First create (register) new user
// Register new user
QBUsers.signUp("indianajones", "indianapassword", new QBCallbackImpl() {
@Override
public void onComplete(Result result) {
if (result.isSuccess()) {
// result comes here if request has been completed successfully
}
}
});
then authorize user
// Login
QBUsers.signIn("indianajones", "indianapassword", new QBCallbackImpl() {
@Override
public void onComplete(Result result) {
if (result.isSuccess()) {
// result comes here if request has been completed successfully
}
}
});
to authorise user in Chat
// initialize SMACK
SmackAndroid.init(this);
final QBUser user = new QBUser("indianajones", "indianapassword");
// login to Chat
QBChatService.getInstance().loginWithUser(user, new SessionListener() {
@Override
public void onLoginSuccess() {
Log.d(TAG, "success when login");
}
@Override
public void onLoginError() {
Log.e(TAG, "error when login");
}
@Override
public void onDisconnect() {
Log.d(TAG, "disconnect when login");
}
@Override
public void onDisconnectOnError(Exception exc) {
Log.e(TAG, "disconnect error when login", exc);
}
});
Send Chat message
// Create 1-1 chat
QBPrivateChat chat = QBChatService.getInstance().createChat();
chat.addChatMessageListener(new ChatMessageListener() {
@Override
public void processMessage(Message message) {
Log.d(TAG, "Messags: " + message.getBody());
}
@Override
public boolean accept(Message.Type type) {
switch (messageType) {
case chat:
return true; // process 1-1 chat messages
default:
return false;
}
}
});
// send message
chat.sendMessage(546, "Hi mate!");
Create new location for Indiana Jones
double lat = 25.224820; // Somewhere in Africa
double lng = 9.272461;
String statusText = "trying to find adventures";
QBLocation location = new QBLocation(lat, lng, statusText);
QBLocations.createLocation(location, new QBCallbackImpl() {
@Override
public void onComplete(Result result) {
if (result.isSuccess()) {
// result comes here if authorizations is success
}
}
});
or put Holy Grail into storage
File file = new File("holy_grail.txt");
Boolean fileIsPublic = true;
QBContent.uploadFileTask(file, fileIsPublic, new QBCallbackImpl() {
@Override
public void onComplete(Result result) {
if (result.isSuccess()) {
// file has been successfully uploaded
}
}
});
Java Framework provides following services to interact with QuickBlox functions (each service is represented by model with suite of static methods):
- QBAuth
- QBUsers
- QBCustomObjects
- QBLocations
- QBContent
- QBRatings
- QBMessages
- QBChatService