You might see that the Dropbox Community team have been busy working on some major updates to the Community itself! So, here is some info on what’s changed, what’s staying the same and what you can expect from the Dropbox Community overall.
Forum Discussion
kaftanati
8 years agoHelpful | Level 6
How I can do unlink() for account at Android (with API v2)?
Android Core API v1 have method for unlink account from app: mAccountManager.unlink(); Now I can't find same functional.
- 8 years ago
In the API v2 Java SDK, the equivalent would be the calling tokenRevoke to revoke the token, and then throwing the local copy of the access token.
Greg-DB
Dropbox Staff
In the API v2 Java SDK, the equivalent would be the calling tokenRevoke to revoke the token, and then throwing the local copy of the access token.
Oleg3
8 years agoHelpful | Level 5
Hello,
I use this DropboxClientFactory:
public class DropboxClientFactory { private static DbxClientV2 sDbxClient; public static void init(String accessToken) { if (sDbxClient == null) { DbxRequestConfig requestConfig = DbxRequestConfig.newBuilder("myApp").build(); sDbxClient = new DbxClientV2(requestConfig, accessToken); } } public static DbxClientV2 getClient() { if (sDbxClient == null) { throw new IllegalStateException("Client not initialized."); } return sDbxClient; } public static Boolean tokenRevoke() { Boolean result = false; if (sDbxClient != null) { try { sDbxClient.auth().tokenRevoke(); result = true; } catch (DbxApiException e) { } catch (DbxException e) { } } return result; } }
I have some questions/problems:
1. In most examples, DbxRequestConfig is like this (with .withHttpRequestor(new OkHttp3Requestor(OkHttp3Requestor.defaultOkHttpClient())))
DbxRequestConfig requestConfig = DbxRequestConfig.newBuilder("examples-v2-demo") .withHttpRequestor(new OkHttp3Requestor(OkHttp3Requestor.defaultOkHttpClient())) .build();
I use it without "OkHttpRequestor". Is it necessary?
I would like to add it, but i recive the error on it: "The type okhttp3.OkHttpClient cannot be resolved. It is indirectly referenced from required .class files". How could I resolve it?
2. App links to dropbox and upload/download the file without the problem. But on revoke the token (calling tokenRevoke() ) i recieve the error: "android.os.NetworkOnMainThreadException". And this error is not catched by DbxApiException and DbxException.
What is wrong? Why this error is not catched? What type of Exception i need to use to catch all errors of Dropbox?
I use general "Exception e", it catches the error, but "e.getMessage()" returns NULL.
Thanks in advance.
- Greg-DB8 years agoDropbox Staff
1. Use of `OkHttpRequestor` (or `OkHttp3Requestor`) is not required. If you don't use it, the SDK will fall back to using `StandardHttpRequestor` by default.
If you do want to use one, you need to include the relevant OkHttp library, for example as shown here.
2. `NetworkOnMainThreadException` is not a Dropbox exception, so you can't catch it using a Dropbox exception type. You can catch it using `Exception`, but you should write your app to avoid it in the first place. In short, you can't make a network call (such as a Dropbox API call) on the mean thread. The Android `NetworkOnMainThreadException` documentation has more information, and there are some samples on StackOverflow as well.
- Oleg38 years agoHelpful | Level 5
Greg, thanks a lot.
I add new code to DropboxClientFactory for tokenRevoke() using AsyncTask:
public static void revokeClient(final CallBack callBack) {new AsyncTask<Void, Void, Void>() { protected Void doInBackground(Void... params) { try { sDbxClient.auth().tokenRevoke(); } catch (DbxException e) { } return null; } // doInBackground protected void onPostExecute(Void aVoid) { sDbxClient = null; if (callBack != null) callBack.onRevoke(); } }.execute(); } // revokeClient public interface CallBack{ void onRevoke(); } // CallBack
But I dont know how to call it from the main thread. Could you help me?
Sorry for the arrogance..... and thanks in advance.
- Greg-DB8 years agoDropbox StaffIt sounds that's more about Java threading/tasks which is outside the scope of Dropbox API support, so I'm afraid I can't be of help with that.
About Dropbox API Support & Feedback
Find help with the Dropbox API from other developers.
5,911 PostsLatest Activity: 5 hours agoIf you need more help you can view your support options (expected response time for an email or ticket is 24 hours), or contact us on X or Facebook.
For more info on available support options for your Dropbox plan, see this article.
If you found the answer to your question in this Community thread, please 'like' the post to say thanks and to let us know it was useful!