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
MarioEM
8 years agoHelpful | Level 6
simple Android example for APIv2 required
I have implemented an Android code for Downloading / Uploading files to Dropbox App folder based on the old, simple DBRoulette example, which works perfectly well under Dropbox APIv1. I have spen...
- 8 years ago
Hello Greg,
That was a good suggestion with the link that included the appropriate tip!
I already had the correct Write and Read permissions in the AndroidManifest, but I forgot about the new Android rule introduced since version 23 that requires app users to manually accept the external write storage permission.
It is all working well now, both file Upload and Download.
Thanks for your help.
I had to modify the example Download code to obtain the required metadata for the specific Dropbox file:
protected FileMetadata doInBackground(String... params) { String fileName = params[0]; try { FileMetadata metadata = (FileMetadata) mDbxClient.files().getMetadata("/" + fileName);
Please comment if the above code is the correct way to do it.
Greg-DB
8 years agoDropbox Staff
We don't have another Android example app, aside from the one you linked to.
What issues are you running in to?
What issues are you running in to?
- MarioEM8 years agoHelpful | Level 6
Hello Greg,
I am having problems uploading the single selected file from a fixed Android folder called "em" to a Dropbox apps folder. I have implemented the code exactly as per example app: UploadFileTask.java
Here is the problem section of the code after some modifications:
@Override protected FileMetadata doInBackground(String... params) { String remoteFileName = params[0]; if (remoteFileName != null) { File outPath = Environment.getExternalStorageDirectory(); String remoteFolderPath = outPath.getAbsolutePath() + "/" + "em"; File localFile = new File(remoteFolderPath, remoteFileName); try (InputStream inputStream = new FileInputStream(localFile)) { return mDbxClient.files().uploadBuilder(remoteFolderPath + "/" + remoteFileName) .withMode(WriteMode.OVERWRITE) .uploadAndFinish(inputStream); } catch (DbxException | IOException e) { mException = e; } } return null; }
The remoteFolderPath string is "/storage/emulated/0/em" and the remoteFileName string is "EM.db"
The localFile is /storage/emulated/0/em/EM.db
The EM.db file does exist in that particular folder and the storage path is identical to the one generated in the APIv1 code, which worked perfectly well.
I am getting an error message: ..."/storage/emulated/0/em/EM.db: open failed: EACCES Permission denied"
I tried it with several different files and different folders without success. The same error al the time.
Can you see any problems with this code ?
Another issue: the above example code requires a minimum Android SdkVersion = 19. My app currently uses minimum SdkVersion = 14 which works well with the old APIv1 code:
fis = new FileInputStream(file);
mApi.putFileOverwrite(file, fis, file.length(),
etc. as per DBRoulete app. example.Can you plese suggest how to resolve these issues and how to overcome Android SdkVersion restrictions.
Thanks.
- Greg-DB8 years agoDropbox StaffThe "EACCES Permission denied" error appears to be an Android error about a lack of permission to read/write the local data. That's not about Dropbox itself exactly, but it looks like you need to make sure you have write permissions, e.g., as covered here:
https://stackoverflow.com/questions/8854359/exception-open-failed-eacces-permission-denied-on-android
Also, the Android sample app only supports 19+, so you may need to change some of the for 14+. What exactly isn't working for you? That's again more about Android itself so I may not be able to offer much insight there unfortunately.- MarioEM8 years agoHelpful | Level 6
Hello Greg,
That was a good suggestion with the link that included the appropriate tip!
I already had the correct Write and Read permissions in the AndroidManifest, but I forgot about the new Android rule introduced since version 23 that requires app users to manually accept the external write storage permission.
It is all working well now, both file Upload and Download.
Thanks for your help.
I had to modify the example Download code to obtain the required metadata for the specific Dropbox file:
protected FileMetadata doInBackground(String... params) { String fileName = params[0]; try { FileMetadata metadata = (FileMetadata) mDbxClient.files().getMetadata("/" + fileName);
Please comment if the above code is the correct way to do it.
About Dropbox API Support & Feedback
Find help with the Dropbox API from other developers.
5,882 PostsLatest Activity: 16 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!