HISTORY
# Dropbox, Inc., was founded in 2007 by MIT graduates Drew Houston and Arash Ferdowsi, as a Y Combinator startup company.
# Dropbox provides client software for Microsoft Windows, Mac OS X, Linux, Android, iOS, BlackBerry OS and web browsers, as well as unofficial ports to Symbian, Windows Phone and MeeGo.
# Dropbox is a free service that lets you bring all your photos, docs, and videos anywhere.
# Dropbox also makes it super easy to share with others.
# Be Anywhere.
# Simple Sharing.
# Always safe.
# Change the files on the go.
# Core API.
# Sync API.
# Dropbox chooser
# The Core API allows you to build the power of Dropbox directly into your app.
# It is not only make your app more powerful and easy to use.
# App folder (recomended)
# Full Dropbox
# Development Status
# Production Status
# Starting up the example app
# App keys
# Adding the Dropbox SDK to an existing project
<activity
android:name="com.dropbox.client2.android.AuthActivity"
android:launchMode="singleTask"
android:configChanges="orientation|keyboard">
<intent-filter>
<!-- Change this to be db- followed by your app key -->
<data android:scheme="db-INSERT-APP-KEY-HERE" />
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.BROWSABLE"/>
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
# Right click on your project from the Package Explorer and go to Properties.
# Select Java Build Path from the sidebar.
# Add External JARs and add the libraries.
final static private String APP_KEY = "INSERT_APP_KEY_HERE";
final static private String APP_SECRET = "INSERT_SECRET_HERE";
final static private AccessType ACCESS_TYPE = AccessType.INSERT_APP_ACCESS_TYPE_HERE;
// In the class declaration section:
private DropboxAPI<AndroidAuthSession> mDBApi;
// And later in some initialization function:
AppKeyPair appKeys = new AppKeyPair(APP_KEY, APP_SECRET);
AndroidAuthSession session = new AndroidAuthSession(appKeys, ACCESS_TYPE);
mDBApi = new DropboxAPI<AndroidAuthSession>(session);
if (mDBApi.getSession().authenticationSuccessful()) {
try {
// MANDATORY call to complete auth.
// Sets the access token on the session
mDBApi.getSession().finishAuthentication();
AccessTokenPair tokens = mDBApi.getSession().getAccessTokenPair();
// Provide your own storeKeys to persist the access token pair
// A typical way to store tokens is using SharedPreferences
storeKeys(tokens.key, tokens.secret);
} catch (IllegalStateException e) {
Log.i("DbAuthLog", "Error authenticating", e);
}
# Upload file
Entry newEntry = mDBApi.putFile("/testing.txt", inputStream,
file.length(), null, null);
# Download file
DropboxFileInfo info = mDBApi.getFile("/testing.txt", null, outputStream, null);
Log.i("DbExampleLog", "The file's rev is: " + info.getMetadata().rev);
# Metadata
# Dropbox built in
# write locally sync globally
# work offline
# Adding the Sync API libraries to your project
# Configuring the Sync API
<service
android:name="com.dropbox.sync.android.DbxSyncService"
android:enabled="true"
android:exported="false"
android:label="Dropbox Sync" />
private DbxAccountManager mDbxAcctMgr;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mDbxAcctMgr = DbxAccountManager.getInstance(getApplicationContext(),
APP_KEY, APP_SECRET);
}
static final int REQUEST_LINK_TO_DBX = 0; // This value is up to you
private void onClickLinkToDropbox() {
mDbxAcctMgr.startLink(this, REQUEST_LINK_TO_DBX);
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_LINK_TO_DBX) {
if (resultCode == Activity.RESULT_OK) {
// ... Start using Dropbox files.
} else {
// ... Link failed or was cancelled by the user.
List<DbxFileInfo> infos = dbxFs.listFolder(DbxPath.ROOT);
for (DbxFileInfo info : infos) {
Log.d("Dropbox Test", info.path + ", " + info.lastModified);
}
DbxFile testFile = dbxFs.create(new DbxPath("hello.txt"));
try {
testFile.writeString("Hello Dropbox!");
} finally {
testFile.close();
}
if (!testFile.getSyncStatus().isCached) {
testFile.addListener(this);
updateDownloadStatus(testFile); // Initial call ensures nothing is missed.
}
dbxFs.addPathListener(this, new DbxPath("/Notes"),
DbxFileSystem.PathListener.Mode.PATH_OR_CHILD);
dbxFs.addSyncStatusListener(this);
Thank you.