<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic my android app not uploading photo directly to Dropbox app folder using API in Dropbox API Support &amp; Feedback</title>
    <link>https://www.dropboxforum.com/t5/Dropbox-API-Support-Feedback/my-android-app-not-uploading-photo-directly-to-Dropbox-app/m-p/732039#M32350</link>
    <description>&lt;P&gt;i have created android app and i add the API and the SDK to it to contact with my Dropbox app folder to automatically uploading photo&lt;/P&gt;&lt;P&gt;but its tell me that the photo uploaded successfully but when i check the Dropbox app i cannot find any photo&lt;/P&gt;&lt;P&gt;this is my app code included the authentication method that i used&lt;/P&gt;&lt;PRE&gt;&lt;SPAN&gt;package &lt;/SPAN&gt;com.example.decamera&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;android.Manifest&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;android.content.pm.PackageManager&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;android.location.Address&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;android.location.Geocoder&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;android.location.Location&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;android.os.Bundle&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;android.os.Environment&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;android.view.View&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;android.widget.ImageButton&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;android.widget.TextView&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;android.widget.Toast&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;android.net.Uri&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;android.util.Log&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;androidx.annotation.&lt;SPAN&gt;NonNull&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;androidx.annotation.&lt;SPAN&gt;Nullable&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;androidx.appcompat.app.AppCompatActivity&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;androidx.camera.core.Camera&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;androidx.camera.core.CameraSelector&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;androidx.camera.core.ImageCapture&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;androidx.camera.core.ImageCaptureException&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;androidx.camera.core.Preview&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;androidx.camera.lifecycle.ProcessCameraProvider&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;androidx.camera.view.PreviewView&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;androidx.core.app.ActivityCompat&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;androidx.core.content.ContextCompat&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;androidx.lifecycle.LifecycleOwner&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;com.dropbox.core.DbxRequestConfig&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;com.dropbox.core.v2.files.FileMetadata&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;com.google.android.gms.location.FusedLocationProviderClient&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;com.google.android.gms.location.LocationServices&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;com.google.android.gms.tasks.OnSuccessListener&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;com.google.common.util.concurrent.ListenableFuture&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;java.io.File&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;java.io.FileInputStream&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;java.io.IOException&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;java.text.SimpleDateFormat&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;java.util.Date&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;java.util.List&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;java.util.Locale&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;java.util.concurrent.ExecutorService&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;java.util.concurrent.Executors&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;public class &lt;/SPAN&gt;MainActivity &lt;SPAN&gt;extends &lt;/SPAN&gt;AppCompatActivity &lt;SPAN&gt;implements &lt;/SPAN&gt;View.OnClickListener {&lt;BR /&gt;&lt;BR /&gt;    &lt;SPAN&gt;private static final int &lt;/SPAN&gt;&lt;SPAN&gt;CAMERA_PERMISSION_REQUEST &lt;/SPAN&gt;= &lt;SPAN&gt;100&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;    private static final int &lt;/SPAN&gt;&lt;SPAN&gt;LOCATION_PERMISSION_REQUEST &lt;/SPAN&gt;= &lt;SPAN&gt;101&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;    private static final &lt;/SPAN&gt;String[] &lt;SPAN&gt;REQUIRED_CAMERA_PERMISSIONS &lt;/SPAN&gt;= &lt;SPAN&gt;new &lt;/SPAN&gt;String[]{Manifest.permission.&lt;SPAN&gt;CAMERA&lt;/SPAN&gt;}&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;    private static final &lt;/SPAN&gt;String[] &lt;SPAN&gt;REQUIRED_LOCATION_PERMISSIONS &lt;/SPAN&gt;= &lt;SPAN&gt;new &lt;/SPAN&gt;String[]{Manifest.permission.&lt;SPAN&gt;ACCESS_FINE_LOCATION&lt;/SPAN&gt;}&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;    private &lt;/SPAN&gt;PreviewView &lt;SPAN&gt;previewView&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;    private &lt;/SPAN&gt;ImageCapture &lt;SPAN&gt;imageCapture&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;    private &lt;/SPAN&gt;TextView &lt;SPAN&gt;addressTextView&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;    private &lt;/SPAN&gt;ExecutorService &lt;SPAN&gt;cameraExecutor &lt;/SPAN&gt;= Executors.&lt;SPAN&gt;newSingleThreadExecutor&lt;/SPAN&gt;()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;    private &lt;/SPAN&gt;FusedLocationProviderClient &lt;SPAN&gt;fusedLocationProviderClient&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;    private &lt;/SPAN&gt;Geocoder &lt;SPAN&gt;geocoder&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;    &lt;SPAN&gt;// Dropbox variables&lt;BR /&gt;&lt;/SPAN&gt;    &lt;SPAN&gt;private static final &lt;/SPAN&gt;String &lt;SPAN&gt;ACCESS_TOKEN &lt;/SPAN&gt;= &lt;SPAN&gt;"my access token"&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;    private &lt;/SPAN&gt;DbxRequestConfig &lt;SPAN&gt;config&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;    private &lt;/SPAN&gt;com.dropbox.core.v2.DbxClientV2 &lt;SPAN&gt;dropboxClient&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;    &lt;SPAN&gt;@Override&lt;BR /&gt;&lt;/SPAN&gt;    &lt;SPAN&gt;protected void &lt;/SPAN&gt;&lt;SPAN&gt;onCreate&lt;/SPAN&gt;(Bundle savedInstanceState) {&lt;BR /&gt;        &lt;SPAN&gt;super&lt;/SPAN&gt;.onCreate(savedInstanceState)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;        setContentView(R.layout.&lt;SPAN&gt;activity_main&lt;/SPAN&gt;)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;previewView &lt;/SPAN&gt;= findViewById(R.id.&lt;SPAN&gt;previewView&lt;/SPAN&gt;)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;        ImageButton captureButton = findViewById(R.id.&lt;SPAN&gt;captureButton&lt;/SPAN&gt;)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;addressTextView &lt;/SPAN&gt;= findViewById(R.id.&lt;SPAN&gt;addressTextView&lt;/SPAN&gt;)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;fusedLocationProviderClient &lt;/SPAN&gt;= LocationServices.&lt;SPAN&gt;getFusedLocationProviderClient&lt;/SPAN&gt;(&lt;SPAN&gt;this&lt;/SPAN&gt;)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;geocoder &lt;/SPAN&gt;= &lt;SPAN&gt;new &lt;/SPAN&gt;Geocoder(&lt;SPAN&gt;this, &lt;/SPAN&gt;Locale.&lt;SPAN&gt;getDefault&lt;/SPAN&gt;())&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;// Initialize Dropbox variables&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;config &lt;/SPAN&gt;= DbxRequestConfig.&lt;SPAN&gt;newBuilder&lt;/SPAN&gt;(&lt;SPAN&gt;"de_camera_app"&lt;/SPAN&gt;).build()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;dropboxClient &lt;/SPAN&gt;= &lt;SPAN&gt;new &lt;/SPAN&gt;com.dropbox.core.v2.DbxClientV2(&lt;SPAN&gt;config&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;ACCESS_TOKEN&lt;/SPAN&gt;)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        captureButton.setOnClickListener(&lt;SPAN&gt;this&lt;/SPAN&gt;)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;        if &lt;/SPAN&gt;(allPermissionsGranted()) {&lt;BR /&gt;            startCamera()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;            getLastLocation()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;        } &lt;SPAN&gt;else &lt;/SPAN&gt;{&lt;BR /&gt;            ActivityCompat.&lt;SPAN&gt;requestPermissions&lt;/SPAN&gt;(&lt;SPAN&gt;this, &lt;/SPAN&gt;&lt;SPAN&gt;REQUIRED_CAMERA_PERMISSIONS&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;CAMERA_PERMISSION_REQUEST&lt;/SPAN&gt;)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;        }&lt;BR /&gt;    }&lt;BR /&gt;&lt;BR /&gt;    &lt;SPAN&gt;private void &lt;/SPAN&gt;&lt;SPAN&gt;startCamera&lt;/SPAN&gt;() {&lt;BR /&gt;        ListenableFuture&amp;lt;ProcessCameraProvider&amp;gt; cameraProviderFuture = ProcessCameraProvider.&lt;SPAN&gt;getInstance&lt;/SPAN&gt;(&lt;SPAN&gt;this&lt;/SPAN&gt;)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        cameraProviderFuture.addListener(() -&amp;gt; {&lt;BR /&gt;            &lt;SPAN&gt;try &lt;/SPAN&gt;{&lt;BR /&gt;                ProcessCameraProvider cameraProvider = &lt;SPAN&gt;cameraProviderFuture&lt;/SPAN&gt;.get()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;                bindPreview(cameraProvider)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;            } &lt;SPAN&gt;catch &lt;/SPAN&gt;(Exception e) {&lt;BR /&gt;                e.printStackTrace()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;            }&lt;BR /&gt;        }&lt;SPAN&gt;, &lt;/SPAN&gt;ContextCompat.&lt;SPAN&gt;getMainExecutor&lt;/SPAN&gt;(&lt;SPAN&gt;this&lt;/SPAN&gt;))&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;    }&lt;BR /&gt;&lt;BR /&gt;    &lt;SPAN&gt;private void &lt;/SPAN&gt;&lt;SPAN&gt;bindPreview&lt;/SPAN&gt;(ProcessCameraProvider cameraProvider) {&lt;BR /&gt;        Preview preview = &lt;SPAN&gt;new &lt;/SPAN&gt;Preview.Builder().build()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        CameraSelector cameraSelector = &lt;SPAN&gt;new &lt;/SPAN&gt;CameraSelector.Builder()&lt;BR /&gt;                .requireLensFacing(CameraSelector.&lt;SPAN&gt;LENS_FACING_BACK&lt;/SPAN&gt;)&lt;BR /&gt;                .build()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        Camera camera = cameraProvider.bindToLifecycle((LifecycleOwner) &lt;SPAN&gt;this, &lt;/SPAN&gt;cameraSelector&lt;SPAN&gt;, &lt;/SPAN&gt;preview)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        preview.setSurfaceProvider(&lt;SPAN&gt;previewView&lt;/SPAN&gt;.getSurfaceProvider())&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;imageCapture &lt;/SPAN&gt;= &lt;SPAN&gt;new &lt;/SPAN&gt;ImageCapture.Builder()&lt;BR /&gt;                .setCaptureMode(ImageCapture.&lt;SPAN&gt;CAPTURE_MODE_MINIMIZE_LATENCY&lt;/SPAN&gt;)&lt;BR /&gt;                .setTargetRotation(&lt;SPAN&gt;previewView&lt;/SPAN&gt;.getDisplay().getRotation()) &lt;SPAN&gt;// Add this line&lt;BR /&gt;&lt;/SPAN&gt;                .build()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;// Re-bind use cases to the camera&lt;BR /&gt;&lt;/SPAN&gt;        cameraProvider.unbindAll()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;        cameraProvider.bindToLifecycle((LifecycleOwner) &lt;SPAN&gt;this, &lt;/SPAN&gt;cameraSelector&lt;SPAN&gt;, &lt;/SPAN&gt;preview&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;imageCapture&lt;/SPAN&gt;)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;    }&lt;BR /&gt;&lt;BR /&gt;    &lt;SPAN&gt;private void &lt;/SPAN&gt;&lt;SPAN&gt;getLastLocation&lt;/SPAN&gt;() {&lt;BR /&gt;        &lt;SPAN&gt;if &lt;/SPAN&gt;(ContextCompat.&lt;SPAN&gt;checkSelfPermission&lt;/SPAN&gt;(&lt;SPAN&gt;this, &lt;/SPAN&gt;Manifest.permission.&lt;SPAN&gt;ACCESS_FINE_LOCATION&lt;/SPAN&gt;) == PackageManager.&lt;SPAN&gt;PERMISSION_GRANTED&lt;/SPAN&gt;) {&lt;BR /&gt;            &lt;SPAN&gt;fusedLocationProviderClient&lt;/SPAN&gt;.getLastLocation()&lt;BR /&gt;                    .addOnSuccessListener(&lt;SPAN&gt;this, new &lt;/SPAN&gt;OnSuccessListener&amp;lt;Location&amp;gt;() {&lt;BR /&gt;                        &lt;SPAN&gt;@Override&lt;BR /&gt;&lt;/SPAN&gt;                        &lt;SPAN&gt;public void &lt;/SPAN&gt;&lt;SPAN&gt;onSuccess&lt;/SPAN&gt;(Location location) {&lt;BR /&gt;                            &lt;SPAN&gt;if &lt;/SPAN&gt;(location != &lt;SPAN&gt;null&lt;/SPAN&gt;) {&lt;BR /&gt;                                updateAddress(location)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;                            }&lt;BR /&gt;                        }&lt;BR /&gt;                    })&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;        } &lt;SPAN&gt;else &lt;/SPAN&gt;{&lt;BR /&gt;            &lt;SPAN&gt;// Request location permission&lt;BR /&gt;&lt;/SPAN&gt;            ActivityCompat.&lt;SPAN&gt;requestPermissions&lt;/SPAN&gt;(&lt;SPAN&gt;this, new &lt;/SPAN&gt;String[]{Manifest.permission.&lt;SPAN&gt;ACCESS_FINE_LOCATION&lt;/SPAN&gt;}&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;LOCATION_PERMISSION_REQUEST&lt;/SPAN&gt;)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;        }&lt;BR /&gt;    }&lt;BR /&gt;&lt;BR /&gt;    &lt;SPAN&gt;private void &lt;/SPAN&gt;&lt;SPAN&gt;updateAddress&lt;/SPAN&gt;(Location location) {&lt;BR /&gt;        &lt;SPAN&gt;try &lt;/SPAN&gt;{&lt;BR /&gt;            List&amp;lt;Address&amp;gt; addresses = &lt;SPAN&gt;geocoder&lt;/SPAN&gt;.getFromLocation(location.getLatitude()&lt;SPAN&gt;, &lt;/SPAN&gt;location.getLongitude()&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;1&lt;/SPAN&gt;)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;            if &lt;/SPAN&gt;(addresses != &lt;SPAN&gt;null &lt;/SPAN&gt;&amp;amp;&amp;amp; addresses.size() &amp;gt; &lt;SPAN&gt;0&lt;/SPAN&gt;) {&lt;BR /&gt;                Address address = addresses.get(&lt;SPAN&gt;0&lt;/SPAN&gt;)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;                String fullAddress = address.getAddressLine(&lt;SPAN&gt;0&lt;/SPAN&gt;)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;                &lt;SPAN&gt;addressTextView&lt;/SPAN&gt;.setText(fullAddress)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;            }&lt;BR /&gt;        } &lt;SPAN&gt;catch &lt;/SPAN&gt;(IOException e) {&lt;BR /&gt;            e.printStackTrace()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;        }&lt;BR /&gt;    }&lt;BR /&gt;&lt;BR /&gt;    &lt;SPAN&gt;@Override&lt;BR /&gt;&lt;/SPAN&gt;    &lt;SPAN&gt;public void &lt;/SPAN&gt;&lt;SPAN&gt;onClick&lt;/SPAN&gt;(View v) {&lt;BR /&gt;        &lt;SPAN&gt;if &lt;/SPAN&gt;(v.getId() == R.id.&lt;SPAN&gt;captureButton&lt;/SPAN&gt;) {&lt;BR /&gt;            captureAndUploadToDropbox()&lt;SPAN&gt;; &lt;/SPAN&gt;&lt;SPAN&gt;// Call the new method&lt;BR /&gt;&lt;/SPAN&gt;        }&lt;BR /&gt;    }&lt;BR /&gt;&lt;BR /&gt;    &lt;SPAN&gt;private void &lt;/SPAN&gt;&lt;SPAN&gt;captureAndUploadToDropbox&lt;/SPAN&gt;() {&lt;BR /&gt;        &lt;SPAN&gt;// Capture the image and directly upload it to Dropbox&lt;BR /&gt;&lt;/SPAN&gt;        ImageCapture.OutputFileOptions outputFileOptions =&lt;BR /&gt;                &lt;SPAN&gt;new &lt;/SPAN&gt;ImageCapture.OutputFileOptions.Builder(createImageFile()).build()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;imageCapture&lt;/SPAN&gt;.takePicture(outputFileOptions&lt;SPAN&gt;, &lt;/SPAN&gt;ContextCompat.&lt;SPAN&gt;getMainExecutor&lt;/SPAN&gt;(&lt;SPAN&gt;this&lt;/SPAN&gt;)&lt;SPAN&gt;, new &lt;/SPAN&gt;ImageCapture.OnImageSavedCallback() {&lt;BR /&gt;            &lt;SPAN&gt;@Override&lt;BR /&gt;&lt;/SPAN&gt;            &lt;SPAN&gt;public void &lt;/SPAN&gt;&lt;SPAN&gt;onImageSaved&lt;/SPAN&gt;(&lt;SPAN&gt;@Nullable &lt;/SPAN&gt;ImageCapture.OutputFileResults outputFileResults) {&lt;BR /&gt;                Uri savedUri = outputFileResults.getSavedUri()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;                if &lt;/SPAN&gt;(savedUri != &lt;SPAN&gt;null&lt;/SPAN&gt;) {&lt;BR /&gt;                    File savedPhoto = &lt;SPAN&gt;new &lt;/SPAN&gt;File(savedUri.getPath())&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;                    &lt;SPAN&gt;// Upload the photo to Dropbox&lt;BR /&gt;&lt;/SPAN&gt;                    uploadToDropbox(savedPhoto)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;                    &lt;SPAN&gt;// Notify the user&lt;BR /&gt;&lt;/SPAN&gt;                    runOnUiThread(() -&amp;gt; Toast.&lt;SPAN&gt;makeText&lt;/SPAN&gt;(MainActivity.&lt;SPAN&gt;this, &lt;/SPAN&gt;&lt;SPAN&gt;"Photo saved and uploaded successfully"&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;Toast.&lt;SPAN&gt;LENGTH_SHORT&lt;/SPAN&gt;).show())&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;                } &lt;SPAN&gt;else &lt;/SPAN&gt;{&lt;BR /&gt;                    runOnUiThread(() -&amp;gt; Toast.&lt;SPAN&gt;makeText&lt;/SPAN&gt;(MainActivity.&lt;SPAN&gt;this, &lt;/SPAN&gt;&lt;SPAN&gt;"Error getting saved file URI"&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;Toast.&lt;SPAN&gt;LENGTH_SHORT&lt;/SPAN&gt;).show())&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;                }&lt;BR /&gt;            }&lt;BR /&gt;&lt;BR /&gt;            &lt;SPAN&gt;@Override&lt;BR /&gt;&lt;/SPAN&gt;            &lt;SPAN&gt;public void &lt;/SPAN&gt;&lt;SPAN&gt;onError&lt;/SPAN&gt;(&lt;SPAN&gt;@NonNull &lt;/SPAN&gt;ImageCaptureException exception) {&lt;BR /&gt;                runOnUiThread(() -&amp;gt; Toast.&lt;SPAN&gt;makeText&lt;/SPAN&gt;(MainActivity.&lt;SPAN&gt;this, &lt;/SPAN&gt;&lt;SPAN&gt;"Error capturing image: " &lt;/SPAN&gt;+ &lt;SPAN&gt;exception&lt;/SPAN&gt;.getMessage()&lt;SPAN&gt;, &lt;/SPAN&gt;Toast.&lt;SPAN&gt;LENGTH_SHORT&lt;/SPAN&gt;).show())&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;            }&lt;BR /&gt;        })&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;    }&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;    &lt;SPAN&gt;private void &lt;/SPAN&gt;&lt;SPAN&gt;uploadToDropbox&lt;/SPAN&gt;(File photoFile) {&lt;BR /&gt;        &lt;SPAN&gt;try &lt;/SPAN&gt;{&lt;BR /&gt;            &lt;SPAN&gt;// Get the file name&lt;BR /&gt;&lt;/SPAN&gt;            String fileName = photoFile.getName()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;            &lt;SPAN&gt;// Log the file path before upload&lt;BR /&gt;&lt;/SPAN&gt;            Log.&lt;SPAN&gt;d&lt;/SPAN&gt;(&lt;SPAN&gt;"DropboxUpload"&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;"Uploading file: " &lt;/SPAN&gt;+ photoFile.getAbsolutePath())&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;            &lt;SPAN&gt;// Open the photo file&lt;BR /&gt;&lt;/SPAN&gt;            FileInputStream fis = &lt;SPAN&gt;new &lt;/SPAN&gt;FileInputStream(photoFile)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;            &lt;SPAN&gt;// Specify the remote path on Dropbox where you want to upload the file&lt;BR /&gt;&lt;/SPAN&gt;            String remotePath = &lt;SPAN&gt;"/Apps/Bau" &lt;/SPAN&gt;+ fileName&lt;SPAN&gt;; &lt;/SPAN&gt;&lt;SPAN&gt;// Replace "Bau" with your desired folder name&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;            // Upload the photo file&lt;BR /&gt;&lt;/SPAN&gt;            FileMetadata metadata = &lt;SPAN&gt;dropboxClient&lt;/SPAN&gt;.files().uploadBuilder(remotePath)&lt;BR /&gt;                    .uploadAndFinish(fis)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;            &lt;SPAN&gt;// You can handle the metadata response if needed&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;            // metadata.getName(), metadata.getSize(), etc.&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;            runOnUiThread(() -&amp;gt; Toast.&lt;SPAN&gt;makeText&lt;/SPAN&gt;(MainActivity.&lt;SPAN&gt;this, &lt;/SPAN&gt;&lt;SPAN&gt;"Photo uploaded to Dropbox successfully"&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;Toast.&lt;SPAN&gt;LENGTH_SHORT&lt;/SPAN&gt;).show())&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;        } &lt;SPAN&gt;catch &lt;/SPAN&gt;(Exception e) {&lt;BR /&gt;            e.printStackTrace()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;            runOnUiThread(() -&amp;gt; Toast.&lt;SPAN&gt;makeText&lt;/SPAN&gt;(MainActivity.&lt;SPAN&gt;this, &lt;/SPAN&gt;&lt;SPAN&gt;"Error uploading to Dropbox: " &lt;/SPAN&gt;+ &lt;SPAN&gt;e&lt;/SPAN&gt;.getMessage()&lt;SPAN&gt;, &lt;/SPAN&gt;Toast.&lt;SPAN&gt;LENGTH_SHORT&lt;/SPAN&gt;).show())&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;        }&lt;BR /&gt;    }&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;    &lt;SPAN&gt;private &lt;/SPAN&gt;File &lt;SPAN&gt;createImageFile&lt;/SPAN&gt;() {&lt;BR /&gt;        String timeStamp = &lt;SPAN&gt;new &lt;/SPAN&gt;SimpleDateFormat(&lt;SPAN&gt;"yyyyMMdd_HHmmss"&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;Locale.&lt;SPAN&gt;US&lt;/SPAN&gt;).format(&lt;SPAN&gt;new &lt;/SPAN&gt;Date())&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;        String imageFileName = &lt;SPAN&gt;"JPEG_" &lt;/SPAN&gt;+ timeStamp + &lt;SPAN&gt;"_"&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;        File storageDir = getExternalFilesDir(Environment.&lt;SPAN&gt;DIRECTORY_PICTURES&lt;/SPAN&gt;)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;        try &lt;/SPAN&gt;{&lt;BR /&gt;            &lt;SPAN&gt;if &lt;/SPAN&gt;(storageDir != &lt;SPAN&gt;null&lt;/SPAN&gt;) {&lt;BR /&gt;                &lt;SPAN&gt;return &lt;/SPAN&gt;File.&lt;SPAN&gt;createTempFile&lt;/SPAN&gt;(imageFileName&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;".jpg"&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;storageDir)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;            } &lt;SPAN&gt;else &lt;/SPAN&gt;{&lt;BR /&gt;                runOnUiThread(() -&amp;gt; Toast.&lt;SPAN&gt;makeText&lt;/SPAN&gt;(MainActivity.&lt;SPAN&gt;this, &lt;/SPAN&gt;&lt;SPAN&gt;"Error creating storage directory"&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;Toast.&lt;SPAN&gt;LENGTH_SHORT&lt;/SPAN&gt;).show())&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;            }&lt;BR /&gt;        } &lt;SPAN&gt;catch &lt;/SPAN&gt;(IOException e) {&lt;BR /&gt;            e.printStackTrace()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;            runOnUiThread(() -&amp;gt; Toast.&lt;SPAN&gt;makeText&lt;/SPAN&gt;(MainActivity.&lt;SPAN&gt;this, &lt;/SPAN&gt;&lt;SPAN&gt;"Error creating photo file"&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;Toast.&lt;SPAN&gt;LENGTH_SHORT&lt;/SPAN&gt;).show())&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;        }&lt;BR /&gt;&lt;BR /&gt;        &lt;SPAN&gt;return null;&lt;BR /&gt;&lt;/SPAN&gt;    }&lt;BR /&gt;&lt;BR /&gt;    &lt;SPAN&gt;private boolean &lt;/SPAN&gt;&lt;SPAN&gt;allPermissionsGranted&lt;/SPAN&gt;() {&lt;BR /&gt;        &lt;SPAN&gt;for &lt;/SPAN&gt;(String permission : &lt;SPAN&gt;REQUIRED_CAMERA_PERMISSIONS&lt;/SPAN&gt;) {&lt;BR /&gt;            &lt;SPAN&gt;if &lt;/SPAN&gt;(ContextCompat.&lt;SPAN&gt;checkSelfPermission&lt;/SPAN&gt;(&lt;SPAN&gt;this, &lt;/SPAN&gt;permission) != PackageManager.&lt;SPAN&gt;PERMISSION_GRANTED&lt;/SPAN&gt;) {&lt;BR /&gt;                &lt;SPAN&gt;return false;&lt;BR /&gt;&lt;/SPAN&gt;            }&lt;BR /&gt;        }&lt;BR /&gt;        &lt;SPAN&gt;return true;&lt;BR /&gt;&lt;/SPAN&gt;    }&lt;BR /&gt;&lt;BR /&gt;    &lt;SPAN&gt;@Override&lt;BR /&gt;&lt;/SPAN&gt;    &lt;SPAN&gt;public void &lt;/SPAN&gt;&lt;SPAN&gt;onRequestPermissionsResult&lt;/SPAN&gt;(&lt;SPAN&gt;int &lt;/SPAN&gt;requestCode&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;@NonNull &lt;/SPAN&gt;String[] permissions&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;@NonNull &lt;/SPAN&gt;&lt;SPAN&gt;int&lt;/SPAN&gt;[] grantResults) {&lt;BR /&gt;        &lt;SPAN&gt;super&lt;/SPAN&gt;.onRequestPermissionsResult(requestCode&lt;SPAN&gt;, &lt;/SPAN&gt;permissions&lt;SPAN&gt;, &lt;/SPAN&gt;grantResults)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;        if &lt;/SPAN&gt;(requestCode == &lt;SPAN&gt;CAMERA_PERMISSION_REQUEST&lt;/SPAN&gt;) {&lt;BR /&gt;            &lt;SPAN&gt;if &lt;/SPAN&gt;(allPermissionsGranted()) {&lt;BR /&gt;                startCamera()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;                getLastLocation()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;            } &lt;SPAN&gt;else &lt;/SPAN&gt;{&lt;BR /&gt;                runOnUiThread(() -&amp;gt; Toast.&lt;SPAN&gt;makeText&lt;/SPAN&gt;(&lt;SPAN&gt;this, &lt;/SPAN&gt;&lt;SPAN&gt;"Camera permissions not granted."&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;Toast.&lt;SPAN&gt;LENGTH_SHORT&lt;/SPAN&gt;).show())&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;                finish()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;            }&lt;BR /&gt;        } &lt;SPAN&gt;else if &lt;/SPAN&gt;(requestCode == &lt;SPAN&gt;LOCATION_PERMISSION_REQUEST&lt;/SPAN&gt;) {&lt;BR /&gt;            &lt;SPAN&gt;if &lt;/SPAN&gt;(grantResults.&lt;SPAN&gt;length &lt;/SPAN&gt;&amp;gt; &lt;SPAN&gt;0 &lt;/SPAN&gt;&amp;amp;&amp;amp; grantResults[&lt;SPAN&gt;0&lt;/SPAN&gt;] == PackageManager.&lt;SPAN&gt;PERMISSION_GRANTED&lt;/SPAN&gt;) {&lt;BR /&gt;                getLastLocation()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;            } &lt;SPAN&gt;else &lt;/SPAN&gt;{&lt;BR /&gt;                runOnUiThread(() -&amp;gt; Toast.&lt;SPAN&gt;makeText&lt;/SPAN&gt;(&lt;SPAN&gt;this, &lt;/SPAN&gt;&lt;SPAN&gt;"Location permissions not granted."&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;Toast.&lt;SPAN&gt;LENGTH_SHORT&lt;/SPAN&gt;).show())&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;            }&lt;BR /&gt;        }&lt;BR /&gt;    }&lt;BR /&gt;}&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Thu, 23 Nov 2023 12:55:07 GMT</pubDate>
    <dc:creator>Ghost Mjrm</dc:creator>
    <dc:date>2023-11-23T12:55:07Z</dc:date>
    <item>
      <title>my android app not uploading photo directly to Dropbox app folder using API</title>
      <link>https://www.dropboxforum.com/t5/Dropbox-API-Support-Feedback/my-android-app-not-uploading-photo-directly-to-Dropbox-app/m-p/732039#M32350</link>
      <description>&lt;P&gt;i have created android app and i add the API and the SDK to it to contact with my Dropbox app folder to automatically uploading photo&lt;/P&gt;&lt;P&gt;but its tell me that the photo uploaded successfully but when i check the Dropbox app i cannot find any photo&lt;/P&gt;&lt;P&gt;this is my app code included the authentication method that i used&lt;/P&gt;&lt;PRE&gt;&lt;SPAN&gt;package &lt;/SPAN&gt;com.example.decamera&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;android.Manifest&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;android.content.pm.PackageManager&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;android.location.Address&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;android.location.Geocoder&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;android.location.Location&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;android.os.Bundle&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;android.os.Environment&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;android.view.View&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;android.widget.ImageButton&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;android.widget.TextView&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;android.widget.Toast&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;android.net.Uri&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;android.util.Log&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;androidx.annotation.&lt;SPAN&gt;NonNull&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;androidx.annotation.&lt;SPAN&gt;Nullable&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;androidx.appcompat.app.AppCompatActivity&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;androidx.camera.core.Camera&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;androidx.camera.core.CameraSelector&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;androidx.camera.core.ImageCapture&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;androidx.camera.core.ImageCaptureException&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;androidx.camera.core.Preview&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;androidx.camera.lifecycle.ProcessCameraProvider&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;androidx.camera.view.PreviewView&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;androidx.core.app.ActivityCompat&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;androidx.core.content.ContextCompat&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;androidx.lifecycle.LifecycleOwner&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;com.dropbox.core.DbxRequestConfig&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;com.dropbox.core.v2.files.FileMetadata&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;com.google.android.gms.location.FusedLocationProviderClient&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;com.google.android.gms.location.LocationServices&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;com.google.android.gms.tasks.OnSuccessListener&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;com.google.common.util.concurrent.ListenableFuture&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;java.io.File&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;java.io.FileInputStream&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;java.io.IOException&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;java.text.SimpleDateFormat&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;java.util.Date&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;java.util.List&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;java.util.Locale&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;java.util.concurrent.ExecutorService&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;java.util.concurrent.Executors&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;public class &lt;/SPAN&gt;MainActivity &lt;SPAN&gt;extends &lt;/SPAN&gt;AppCompatActivity &lt;SPAN&gt;implements &lt;/SPAN&gt;View.OnClickListener {&lt;BR /&gt;&lt;BR /&gt;    &lt;SPAN&gt;private static final int &lt;/SPAN&gt;&lt;SPAN&gt;CAMERA_PERMISSION_REQUEST &lt;/SPAN&gt;= &lt;SPAN&gt;100&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;    private static final int &lt;/SPAN&gt;&lt;SPAN&gt;LOCATION_PERMISSION_REQUEST &lt;/SPAN&gt;= &lt;SPAN&gt;101&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;    private static final &lt;/SPAN&gt;String[] &lt;SPAN&gt;REQUIRED_CAMERA_PERMISSIONS &lt;/SPAN&gt;= &lt;SPAN&gt;new &lt;/SPAN&gt;String[]{Manifest.permission.&lt;SPAN&gt;CAMERA&lt;/SPAN&gt;}&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;    private static final &lt;/SPAN&gt;String[] &lt;SPAN&gt;REQUIRED_LOCATION_PERMISSIONS &lt;/SPAN&gt;= &lt;SPAN&gt;new &lt;/SPAN&gt;String[]{Manifest.permission.&lt;SPAN&gt;ACCESS_FINE_LOCATION&lt;/SPAN&gt;}&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;    private &lt;/SPAN&gt;PreviewView &lt;SPAN&gt;previewView&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;    private &lt;/SPAN&gt;ImageCapture &lt;SPAN&gt;imageCapture&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;    private &lt;/SPAN&gt;TextView &lt;SPAN&gt;addressTextView&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;    private &lt;/SPAN&gt;ExecutorService &lt;SPAN&gt;cameraExecutor &lt;/SPAN&gt;= Executors.&lt;SPAN&gt;newSingleThreadExecutor&lt;/SPAN&gt;()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;    private &lt;/SPAN&gt;FusedLocationProviderClient &lt;SPAN&gt;fusedLocationProviderClient&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;    private &lt;/SPAN&gt;Geocoder &lt;SPAN&gt;geocoder&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;    &lt;SPAN&gt;// Dropbox variables&lt;BR /&gt;&lt;/SPAN&gt;    &lt;SPAN&gt;private static final &lt;/SPAN&gt;String &lt;SPAN&gt;ACCESS_TOKEN &lt;/SPAN&gt;= &lt;SPAN&gt;"my access token"&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;    private &lt;/SPAN&gt;DbxRequestConfig &lt;SPAN&gt;config&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;    private &lt;/SPAN&gt;com.dropbox.core.v2.DbxClientV2 &lt;SPAN&gt;dropboxClient&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;    &lt;SPAN&gt;@Override&lt;BR /&gt;&lt;/SPAN&gt;    &lt;SPAN&gt;protected void &lt;/SPAN&gt;&lt;SPAN&gt;onCreate&lt;/SPAN&gt;(Bundle savedInstanceState) {&lt;BR /&gt;        &lt;SPAN&gt;super&lt;/SPAN&gt;.onCreate(savedInstanceState)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;        setContentView(R.layout.&lt;SPAN&gt;activity_main&lt;/SPAN&gt;)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;previewView &lt;/SPAN&gt;= findViewById(R.id.&lt;SPAN&gt;previewView&lt;/SPAN&gt;)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;        ImageButton captureButton = findViewById(R.id.&lt;SPAN&gt;captureButton&lt;/SPAN&gt;)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;addressTextView &lt;/SPAN&gt;= findViewById(R.id.&lt;SPAN&gt;addressTextView&lt;/SPAN&gt;)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;fusedLocationProviderClient &lt;/SPAN&gt;= LocationServices.&lt;SPAN&gt;getFusedLocationProviderClient&lt;/SPAN&gt;(&lt;SPAN&gt;this&lt;/SPAN&gt;)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;geocoder &lt;/SPAN&gt;= &lt;SPAN&gt;new &lt;/SPAN&gt;Geocoder(&lt;SPAN&gt;this, &lt;/SPAN&gt;Locale.&lt;SPAN&gt;getDefault&lt;/SPAN&gt;())&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;// Initialize Dropbox variables&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;config &lt;/SPAN&gt;= DbxRequestConfig.&lt;SPAN&gt;newBuilder&lt;/SPAN&gt;(&lt;SPAN&gt;"de_camera_app"&lt;/SPAN&gt;).build()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;dropboxClient &lt;/SPAN&gt;= &lt;SPAN&gt;new &lt;/SPAN&gt;com.dropbox.core.v2.DbxClientV2(&lt;SPAN&gt;config&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;ACCESS_TOKEN&lt;/SPAN&gt;)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        captureButton.setOnClickListener(&lt;SPAN&gt;this&lt;/SPAN&gt;)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;        if &lt;/SPAN&gt;(allPermissionsGranted()) {&lt;BR /&gt;            startCamera()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;            getLastLocation()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;        } &lt;SPAN&gt;else &lt;/SPAN&gt;{&lt;BR /&gt;            ActivityCompat.&lt;SPAN&gt;requestPermissions&lt;/SPAN&gt;(&lt;SPAN&gt;this, &lt;/SPAN&gt;&lt;SPAN&gt;REQUIRED_CAMERA_PERMISSIONS&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;CAMERA_PERMISSION_REQUEST&lt;/SPAN&gt;)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;        }&lt;BR /&gt;    }&lt;BR /&gt;&lt;BR /&gt;    &lt;SPAN&gt;private void &lt;/SPAN&gt;&lt;SPAN&gt;startCamera&lt;/SPAN&gt;() {&lt;BR /&gt;        ListenableFuture&amp;lt;ProcessCameraProvider&amp;gt; cameraProviderFuture = ProcessCameraProvider.&lt;SPAN&gt;getInstance&lt;/SPAN&gt;(&lt;SPAN&gt;this&lt;/SPAN&gt;)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        cameraProviderFuture.addListener(() -&amp;gt; {&lt;BR /&gt;            &lt;SPAN&gt;try &lt;/SPAN&gt;{&lt;BR /&gt;                ProcessCameraProvider cameraProvider = &lt;SPAN&gt;cameraProviderFuture&lt;/SPAN&gt;.get()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;                bindPreview(cameraProvider)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;            } &lt;SPAN&gt;catch &lt;/SPAN&gt;(Exception e) {&lt;BR /&gt;                e.printStackTrace()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;            }&lt;BR /&gt;        }&lt;SPAN&gt;, &lt;/SPAN&gt;ContextCompat.&lt;SPAN&gt;getMainExecutor&lt;/SPAN&gt;(&lt;SPAN&gt;this&lt;/SPAN&gt;))&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;    }&lt;BR /&gt;&lt;BR /&gt;    &lt;SPAN&gt;private void &lt;/SPAN&gt;&lt;SPAN&gt;bindPreview&lt;/SPAN&gt;(ProcessCameraProvider cameraProvider) {&lt;BR /&gt;        Preview preview = &lt;SPAN&gt;new &lt;/SPAN&gt;Preview.Builder().build()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        CameraSelector cameraSelector = &lt;SPAN&gt;new &lt;/SPAN&gt;CameraSelector.Builder()&lt;BR /&gt;                .requireLensFacing(CameraSelector.&lt;SPAN&gt;LENS_FACING_BACK&lt;/SPAN&gt;)&lt;BR /&gt;                .build()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        Camera camera = cameraProvider.bindToLifecycle((LifecycleOwner) &lt;SPAN&gt;this, &lt;/SPAN&gt;cameraSelector&lt;SPAN&gt;, &lt;/SPAN&gt;preview)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        preview.setSurfaceProvider(&lt;SPAN&gt;previewView&lt;/SPAN&gt;.getSurfaceProvider())&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;imageCapture &lt;/SPAN&gt;= &lt;SPAN&gt;new &lt;/SPAN&gt;ImageCapture.Builder()&lt;BR /&gt;                .setCaptureMode(ImageCapture.&lt;SPAN&gt;CAPTURE_MODE_MINIMIZE_LATENCY&lt;/SPAN&gt;)&lt;BR /&gt;                .setTargetRotation(&lt;SPAN&gt;previewView&lt;/SPAN&gt;.getDisplay().getRotation()) &lt;SPAN&gt;// Add this line&lt;BR /&gt;&lt;/SPAN&gt;                .build()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;// Re-bind use cases to the camera&lt;BR /&gt;&lt;/SPAN&gt;        cameraProvider.unbindAll()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;        cameraProvider.bindToLifecycle((LifecycleOwner) &lt;SPAN&gt;this, &lt;/SPAN&gt;cameraSelector&lt;SPAN&gt;, &lt;/SPAN&gt;preview&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;imageCapture&lt;/SPAN&gt;)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;    }&lt;BR /&gt;&lt;BR /&gt;    &lt;SPAN&gt;private void &lt;/SPAN&gt;&lt;SPAN&gt;getLastLocation&lt;/SPAN&gt;() {&lt;BR /&gt;        &lt;SPAN&gt;if &lt;/SPAN&gt;(ContextCompat.&lt;SPAN&gt;checkSelfPermission&lt;/SPAN&gt;(&lt;SPAN&gt;this, &lt;/SPAN&gt;Manifest.permission.&lt;SPAN&gt;ACCESS_FINE_LOCATION&lt;/SPAN&gt;) == PackageManager.&lt;SPAN&gt;PERMISSION_GRANTED&lt;/SPAN&gt;) {&lt;BR /&gt;            &lt;SPAN&gt;fusedLocationProviderClient&lt;/SPAN&gt;.getLastLocation()&lt;BR /&gt;                    .addOnSuccessListener(&lt;SPAN&gt;this, new &lt;/SPAN&gt;OnSuccessListener&amp;lt;Location&amp;gt;() {&lt;BR /&gt;                        &lt;SPAN&gt;@Override&lt;BR /&gt;&lt;/SPAN&gt;                        &lt;SPAN&gt;public void &lt;/SPAN&gt;&lt;SPAN&gt;onSuccess&lt;/SPAN&gt;(Location location) {&lt;BR /&gt;                            &lt;SPAN&gt;if &lt;/SPAN&gt;(location != &lt;SPAN&gt;null&lt;/SPAN&gt;) {&lt;BR /&gt;                                updateAddress(location)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;                            }&lt;BR /&gt;                        }&lt;BR /&gt;                    })&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;        } &lt;SPAN&gt;else &lt;/SPAN&gt;{&lt;BR /&gt;            &lt;SPAN&gt;// Request location permission&lt;BR /&gt;&lt;/SPAN&gt;            ActivityCompat.&lt;SPAN&gt;requestPermissions&lt;/SPAN&gt;(&lt;SPAN&gt;this, new &lt;/SPAN&gt;String[]{Manifest.permission.&lt;SPAN&gt;ACCESS_FINE_LOCATION&lt;/SPAN&gt;}&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;LOCATION_PERMISSION_REQUEST&lt;/SPAN&gt;)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;        }&lt;BR /&gt;    }&lt;BR /&gt;&lt;BR /&gt;    &lt;SPAN&gt;private void &lt;/SPAN&gt;&lt;SPAN&gt;updateAddress&lt;/SPAN&gt;(Location location) {&lt;BR /&gt;        &lt;SPAN&gt;try &lt;/SPAN&gt;{&lt;BR /&gt;            List&amp;lt;Address&amp;gt; addresses = &lt;SPAN&gt;geocoder&lt;/SPAN&gt;.getFromLocation(location.getLatitude()&lt;SPAN&gt;, &lt;/SPAN&gt;location.getLongitude()&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;1&lt;/SPAN&gt;)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;            if &lt;/SPAN&gt;(addresses != &lt;SPAN&gt;null &lt;/SPAN&gt;&amp;amp;&amp;amp; addresses.size() &amp;gt; &lt;SPAN&gt;0&lt;/SPAN&gt;) {&lt;BR /&gt;                Address address = addresses.get(&lt;SPAN&gt;0&lt;/SPAN&gt;)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;                String fullAddress = address.getAddressLine(&lt;SPAN&gt;0&lt;/SPAN&gt;)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;                &lt;SPAN&gt;addressTextView&lt;/SPAN&gt;.setText(fullAddress)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;            }&lt;BR /&gt;        } &lt;SPAN&gt;catch &lt;/SPAN&gt;(IOException e) {&lt;BR /&gt;            e.printStackTrace()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;        }&lt;BR /&gt;    }&lt;BR /&gt;&lt;BR /&gt;    &lt;SPAN&gt;@Override&lt;BR /&gt;&lt;/SPAN&gt;    &lt;SPAN&gt;public void &lt;/SPAN&gt;&lt;SPAN&gt;onClick&lt;/SPAN&gt;(View v) {&lt;BR /&gt;        &lt;SPAN&gt;if &lt;/SPAN&gt;(v.getId() == R.id.&lt;SPAN&gt;captureButton&lt;/SPAN&gt;) {&lt;BR /&gt;            captureAndUploadToDropbox()&lt;SPAN&gt;; &lt;/SPAN&gt;&lt;SPAN&gt;// Call the new method&lt;BR /&gt;&lt;/SPAN&gt;        }&lt;BR /&gt;    }&lt;BR /&gt;&lt;BR /&gt;    &lt;SPAN&gt;private void &lt;/SPAN&gt;&lt;SPAN&gt;captureAndUploadToDropbox&lt;/SPAN&gt;() {&lt;BR /&gt;        &lt;SPAN&gt;// Capture the image and directly upload it to Dropbox&lt;BR /&gt;&lt;/SPAN&gt;        ImageCapture.OutputFileOptions outputFileOptions =&lt;BR /&gt;                &lt;SPAN&gt;new &lt;/SPAN&gt;ImageCapture.OutputFileOptions.Builder(createImageFile()).build()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;imageCapture&lt;/SPAN&gt;.takePicture(outputFileOptions&lt;SPAN&gt;, &lt;/SPAN&gt;ContextCompat.&lt;SPAN&gt;getMainExecutor&lt;/SPAN&gt;(&lt;SPAN&gt;this&lt;/SPAN&gt;)&lt;SPAN&gt;, new &lt;/SPAN&gt;ImageCapture.OnImageSavedCallback() {&lt;BR /&gt;            &lt;SPAN&gt;@Override&lt;BR /&gt;&lt;/SPAN&gt;            &lt;SPAN&gt;public void &lt;/SPAN&gt;&lt;SPAN&gt;onImageSaved&lt;/SPAN&gt;(&lt;SPAN&gt;@Nullable &lt;/SPAN&gt;ImageCapture.OutputFileResults outputFileResults) {&lt;BR /&gt;                Uri savedUri = outputFileResults.getSavedUri()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;                if &lt;/SPAN&gt;(savedUri != &lt;SPAN&gt;null&lt;/SPAN&gt;) {&lt;BR /&gt;                    File savedPhoto = &lt;SPAN&gt;new &lt;/SPAN&gt;File(savedUri.getPath())&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;                    &lt;SPAN&gt;// Upload the photo to Dropbox&lt;BR /&gt;&lt;/SPAN&gt;                    uploadToDropbox(savedPhoto)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;                    &lt;SPAN&gt;// Notify the user&lt;BR /&gt;&lt;/SPAN&gt;                    runOnUiThread(() -&amp;gt; Toast.&lt;SPAN&gt;makeText&lt;/SPAN&gt;(MainActivity.&lt;SPAN&gt;this, &lt;/SPAN&gt;&lt;SPAN&gt;"Photo saved and uploaded successfully"&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;Toast.&lt;SPAN&gt;LENGTH_SHORT&lt;/SPAN&gt;).show())&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;                } &lt;SPAN&gt;else &lt;/SPAN&gt;{&lt;BR /&gt;                    runOnUiThread(() -&amp;gt; Toast.&lt;SPAN&gt;makeText&lt;/SPAN&gt;(MainActivity.&lt;SPAN&gt;this, &lt;/SPAN&gt;&lt;SPAN&gt;"Error getting saved file URI"&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;Toast.&lt;SPAN&gt;LENGTH_SHORT&lt;/SPAN&gt;).show())&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;                }&lt;BR /&gt;            }&lt;BR /&gt;&lt;BR /&gt;            &lt;SPAN&gt;@Override&lt;BR /&gt;&lt;/SPAN&gt;            &lt;SPAN&gt;public void &lt;/SPAN&gt;&lt;SPAN&gt;onError&lt;/SPAN&gt;(&lt;SPAN&gt;@NonNull &lt;/SPAN&gt;ImageCaptureException exception) {&lt;BR /&gt;                runOnUiThread(() -&amp;gt; Toast.&lt;SPAN&gt;makeText&lt;/SPAN&gt;(MainActivity.&lt;SPAN&gt;this, &lt;/SPAN&gt;&lt;SPAN&gt;"Error capturing image: " &lt;/SPAN&gt;+ &lt;SPAN&gt;exception&lt;/SPAN&gt;.getMessage()&lt;SPAN&gt;, &lt;/SPAN&gt;Toast.&lt;SPAN&gt;LENGTH_SHORT&lt;/SPAN&gt;).show())&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;            }&lt;BR /&gt;        })&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;    }&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;    &lt;SPAN&gt;private void &lt;/SPAN&gt;&lt;SPAN&gt;uploadToDropbox&lt;/SPAN&gt;(File photoFile) {&lt;BR /&gt;        &lt;SPAN&gt;try &lt;/SPAN&gt;{&lt;BR /&gt;            &lt;SPAN&gt;// Get the file name&lt;BR /&gt;&lt;/SPAN&gt;            String fileName = photoFile.getName()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;            &lt;SPAN&gt;// Log the file path before upload&lt;BR /&gt;&lt;/SPAN&gt;            Log.&lt;SPAN&gt;d&lt;/SPAN&gt;(&lt;SPAN&gt;"DropboxUpload"&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;"Uploading file: " &lt;/SPAN&gt;+ photoFile.getAbsolutePath())&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;            &lt;SPAN&gt;// Open the photo file&lt;BR /&gt;&lt;/SPAN&gt;            FileInputStream fis = &lt;SPAN&gt;new &lt;/SPAN&gt;FileInputStream(photoFile)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;            &lt;SPAN&gt;// Specify the remote path on Dropbox where you want to upload the file&lt;BR /&gt;&lt;/SPAN&gt;            String remotePath = &lt;SPAN&gt;"/Apps/Bau" &lt;/SPAN&gt;+ fileName&lt;SPAN&gt;; &lt;/SPAN&gt;&lt;SPAN&gt;// Replace "Bau" with your desired folder name&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;            // Upload the photo file&lt;BR /&gt;&lt;/SPAN&gt;            FileMetadata metadata = &lt;SPAN&gt;dropboxClient&lt;/SPAN&gt;.files().uploadBuilder(remotePath)&lt;BR /&gt;                    .uploadAndFinish(fis)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;            &lt;SPAN&gt;// You can handle the metadata response if needed&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;            // metadata.getName(), metadata.getSize(), etc.&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;            runOnUiThread(() -&amp;gt; Toast.&lt;SPAN&gt;makeText&lt;/SPAN&gt;(MainActivity.&lt;SPAN&gt;this, &lt;/SPAN&gt;&lt;SPAN&gt;"Photo uploaded to Dropbox successfully"&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;Toast.&lt;SPAN&gt;LENGTH_SHORT&lt;/SPAN&gt;).show())&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;        } &lt;SPAN&gt;catch &lt;/SPAN&gt;(Exception e) {&lt;BR /&gt;            e.printStackTrace()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;            runOnUiThread(() -&amp;gt; Toast.&lt;SPAN&gt;makeText&lt;/SPAN&gt;(MainActivity.&lt;SPAN&gt;this, &lt;/SPAN&gt;&lt;SPAN&gt;"Error uploading to Dropbox: " &lt;/SPAN&gt;+ &lt;SPAN&gt;e&lt;/SPAN&gt;.getMessage()&lt;SPAN&gt;, &lt;/SPAN&gt;Toast.&lt;SPAN&gt;LENGTH_SHORT&lt;/SPAN&gt;).show())&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;        }&lt;BR /&gt;    }&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;    &lt;SPAN&gt;private &lt;/SPAN&gt;File &lt;SPAN&gt;createImageFile&lt;/SPAN&gt;() {&lt;BR /&gt;        String timeStamp = &lt;SPAN&gt;new &lt;/SPAN&gt;SimpleDateFormat(&lt;SPAN&gt;"yyyyMMdd_HHmmss"&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;Locale.&lt;SPAN&gt;US&lt;/SPAN&gt;).format(&lt;SPAN&gt;new &lt;/SPAN&gt;Date())&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;        String imageFileName = &lt;SPAN&gt;"JPEG_" &lt;/SPAN&gt;+ timeStamp + &lt;SPAN&gt;"_"&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;        File storageDir = getExternalFilesDir(Environment.&lt;SPAN&gt;DIRECTORY_PICTURES&lt;/SPAN&gt;)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;        try &lt;/SPAN&gt;{&lt;BR /&gt;            &lt;SPAN&gt;if &lt;/SPAN&gt;(storageDir != &lt;SPAN&gt;null&lt;/SPAN&gt;) {&lt;BR /&gt;                &lt;SPAN&gt;return &lt;/SPAN&gt;File.&lt;SPAN&gt;createTempFile&lt;/SPAN&gt;(imageFileName&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;".jpg"&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;storageDir)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;            } &lt;SPAN&gt;else &lt;/SPAN&gt;{&lt;BR /&gt;                runOnUiThread(() -&amp;gt; Toast.&lt;SPAN&gt;makeText&lt;/SPAN&gt;(MainActivity.&lt;SPAN&gt;this, &lt;/SPAN&gt;&lt;SPAN&gt;"Error creating storage directory"&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;Toast.&lt;SPAN&gt;LENGTH_SHORT&lt;/SPAN&gt;).show())&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;            }&lt;BR /&gt;        } &lt;SPAN&gt;catch &lt;/SPAN&gt;(IOException e) {&lt;BR /&gt;            e.printStackTrace()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;            runOnUiThread(() -&amp;gt; Toast.&lt;SPAN&gt;makeText&lt;/SPAN&gt;(MainActivity.&lt;SPAN&gt;this, &lt;/SPAN&gt;&lt;SPAN&gt;"Error creating photo file"&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;Toast.&lt;SPAN&gt;LENGTH_SHORT&lt;/SPAN&gt;).show())&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;        }&lt;BR /&gt;&lt;BR /&gt;        &lt;SPAN&gt;return null;&lt;BR /&gt;&lt;/SPAN&gt;    }&lt;BR /&gt;&lt;BR /&gt;    &lt;SPAN&gt;private boolean &lt;/SPAN&gt;&lt;SPAN&gt;allPermissionsGranted&lt;/SPAN&gt;() {&lt;BR /&gt;        &lt;SPAN&gt;for &lt;/SPAN&gt;(String permission : &lt;SPAN&gt;REQUIRED_CAMERA_PERMISSIONS&lt;/SPAN&gt;) {&lt;BR /&gt;            &lt;SPAN&gt;if &lt;/SPAN&gt;(ContextCompat.&lt;SPAN&gt;checkSelfPermission&lt;/SPAN&gt;(&lt;SPAN&gt;this, &lt;/SPAN&gt;permission) != PackageManager.&lt;SPAN&gt;PERMISSION_GRANTED&lt;/SPAN&gt;) {&lt;BR /&gt;                &lt;SPAN&gt;return false;&lt;BR /&gt;&lt;/SPAN&gt;            }&lt;BR /&gt;        }&lt;BR /&gt;        &lt;SPAN&gt;return true;&lt;BR /&gt;&lt;/SPAN&gt;    }&lt;BR /&gt;&lt;BR /&gt;    &lt;SPAN&gt;@Override&lt;BR /&gt;&lt;/SPAN&gt;    &lt;SPAN&gt;public void &lt;/SPAN&gt;&lt;SPAN&gt;onRequestPermissionsResult&lt;/SPAN&gt;(&lt;SPAN&gt;int &lt;/SPAN&gt;requestCode&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;@NonNull &lt;/SPAN&gt;String[] permissions&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;@NonNull &lt;/SPAN&gt;&lt;SPAN&gt;int&lt;/SPAN&gt;[] grantResults) {&lt;BR /&gt;        &lt;SPAN&gt;super&lt;/SPAN&gt;.onRequestPermissionsResult(requestCode&lt;SPAN&gt;, &lt;/SPAN&gt;permissions&lt;SPAN&gt;, &lt;/SPAN&gt;grantResults)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;        if &lt;/SPAN&gt;(requestCode == &lt;SPAN&gt;CAMERA_PERMISSION_REQUEST&lt;/SPAN&gt;) {&lt;BR /&gt;            &lt;SPAN&gt;if &lt;/SPAN&gt;(allPermissionsGranted()) {&lt;BR /&gt;                startCamera()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;                getLastLocation()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;            } &lt;SPAN&gt;else &lt;/SPAN&gt;{&lt;BR /&gt;                runOnUiThread(() -&amp;gt; Toast.&lt;SPAN&gt;makeText&lt;/SPAN&gt;(&lt;SPAN&gt;this, &lt;/SPAN&gt;&lt;SPAN&gt;"Camera permissions not granted."&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;Toast.&lt;SPAN&gt;LENGTH_SHORT&lt;/SPAN&gt;).show())&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;                finish()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;            }&lt;BR /&gt;        } &lt;SPAN&gt;else if &lt;/SPAN&gt;(requestCode == &lt;SPAN&gt;LOCATION_PERMISSION_REQUEST&lt;/SPAN&gt;) {&lt;BR /&gt;            &lt;SPAN&gt;if &lt;/SPAN&gt;(grantResults.&lt;SPAN&gt;length &lt;/SPAN&gt;&amp;gt; &lt;SPAN&gt;0 &lt;/SPAN&gt;&amp;amp;&amp;amp; grantResults[&lt;SPAN&gt;0&lt;/SPAN&gt;] == PackageManager.&lt;SPAN&gt;PERMISSION_GRANTED&lt;/SPAN&gt;) {&lt;BR /&gt;                getLastLocation()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;            } &lt;SPAN&gt;else &lt;/SPAN&gt;{&lt;BR /&gt;                runOnUiThread(() -&amp;gt; Toast.&lt;SPAN&gt;makeText&lt;/SPAN&gt;(&lt;SPAN&gt;this, &lt;/SPAN&gt;&lt;SPAN&gt;"Location permissions not granted."&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;Toast.&lt;SPAN&gt;LENGTH_SHORT&lt;/SPAN&gt;).show())&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;            }&lt;BR /&gt;        }&lt;BR /&gt;    }&lt;BR /&gt;}&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 23 Nov 2023 12:55:07 GMT</pubDate>
      <guid>https://www.dropboxforum.com/t5/Dropbox-API-Support-Feedback/my-android-app-not-uploading-photo-directly-to-Dropbox-app/m-p/732039#M32350</guid>
      <dc:creator>Ghost Mjrm</dc:creator>
      <dc:date>2023-11-23T12:55:07Z</dc:date>
    </item>
    <item>
      <title>Re: my android app not uploading photo directly to Dropbox app folder using API</title>
      <link>https://www.dropboxforum.com/t5/Dropbox-API-Support-Feedback/my-android-app-not-uploading-photo-directly-to-Dropbox-app/m-p/732054#M32351</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://www.dropboxforum.com/t5/user/viewprofilepage/user-id/1770682"&gt;@Ghost Mjrm&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;&lt;P&gt;...&lt;/P&gt;&lt;P&gt;but its tell me that the photo uploaded successfully but when i check the Dropbox app i cannot find any photo&lt;/P&gt;&lt;P&gt;...&lt;/P&gt;&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;Hi &lt;a href="https://www.dropboxforum.com/t5/user/viewprofilepage/user-id/1770682"&gt;@Ghost Mjrm&lt;/a&gt;,&lt;/P&gt;&lt;P&gt;Do you understand that in you code message "Photo saved and uploaded successfully" may be preceded by "Error uploading to Dropbox: "? Do you receive double confirmation of success or just one? 🧐&lt;/P&gt;&lt;P&gt;If everything was Ok, Did you take a look in your "/Apps/Bau" folder only? If so, take a look in "/Apps/Bau/Apps" too. &lt;img class="lia-deferred-image lia-image-emoji" src="https://www.dropboxforum.com/html/@41457EF40051AFF130FDBFE21B496926/emoticons/1f609.png" alt=":winking_face:" title=":winking_face:" /&gt; Are your missing photos there?&lt;/P&gt;&lt;P&gt;Hope this helps.&lt;/P&gt;</description>
      <pubDate>Thu, 23 Nov 2023 13:54:21 GMT</pubDate>
      <guid>https://www.dropboxforum.com/t5/Dropbox-API-Support-Feedback/my-android-app-not-uploading-photo-directly-to-Dropbox-app/m-p/732054#M32351</guid>
      <dc:creator>Здравко</dc:creator>
      <dc:date>2023-11-23T13:54:21Z</dc:date>
    </item>
    <item>
      <title>Re: my android app not uploading photo directly to Dropbox app folder using API</title>
      <link>https://www.dropboxforum.com/t5/Dropbox-API-Support-Feedback/my-android-app-not-uploading-photo-directly-to-Dropbox-app/m-p/732091#M32352</link>
      <description>&lt;P&gt;hi&lt;/P&gt;&lt;P&gt;you have right i noticed that now&lt;/P&gt;&lt;P&gt;its better to do one confirmation message what should i delete and what should i remove can you tell me what is better and then i can see&amp;nbsp; the right confirmation on the screen&amp;nbsp;&lt;/P&gt;&lt;P&gt;Best Regards&lt;/P&gt;</description>
      <pubDate>Thu, 23 Nov 2023 16:58:36 GMT</pubDate>
      <guid>https://www.dropboxforum.com/t5/Dropbox-API-Support-Feedback/my-android-app-not-uploading-photo-directly-to-Dropbox-app/m-p/732091#M32352</guid>
      <dc:creator>Ghost Mjrm</dc:creator>
      <dc:date>2023-11-23T16:58:36Z</dc:date>
    </item>
    <item>
      <title>Re: my android app not uploading photo directly to Dropbox app folder using API</title>
      <link>https://www.dropboxforum.com/t5/Dropbox-API-Support-Feedback/my-android-app-not-uploading-photo-directly-to-Dropbox-app/m-p/732093#M32353</link>
      <description>&lt;P&gt;i have made some changes to my code to show only confirmation in uploading success or not and when i use the app and capture image message pop up und tell me error uploading to dropbox:null this is my new code so the upload process dosn´t success&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;SPAN&gt;package &lt;/SPAN&gt;com.example.decamera&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;android.Manifest&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;android.content.pm.PackageManager&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;android.location.Address&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;android.location.Geocoder&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;android.location.Location&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;android.os.Bundle&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;android.os.Environment&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;android.view.View&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;android.widget.ImageButton&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;android.widget.TextView&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;android.widget.Toast&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;android.net.Uri&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;android.util.Log&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;androidx.annotation.&lt;SPAN&gt;NonNull&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;androidx.annotation.&lt;SPAN&gt;Nullable&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;androidx.appcompat.app.AppCompatActivity&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;androidx.camera.core.Camera&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;androidx.camera.core.CameraSelector&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;androidx.camera.core.ImageCapture&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;androidx.camera.core.ImageCaptureException&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;androidx.camera.core.Preview&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;androidx.camera.lifecycle.ProcessCameraProvider&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;androidx.camera.view.PreviewView&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;androidx.core.app.ActivityCompat&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;androidx.core.content.ContextCompat&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;androidx.lifecycle.LifecycleOwner&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;com.dropbox.core.DbxRequestConfig&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;com.dropbox.core.v2.files.FileMetadata&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;com.google.android.gms.location.FusedLocationProviderClient&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;com.google.android.gms.location.LocationServices&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;com.google.android.gms.tasks.OnSuccessListener&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;com.google.common.util.concurrent.ListenableFuture&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;java.io.File&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;java.io.FileInputStream&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;java.io.IOException&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;java.text.SimpleDateFormat&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;java.util.Date&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;java.util.List&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;java.util.Locale&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;java.util.concurrent.ExecutorService&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;java.util.concurrent.Executors&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;public class &lt;/SPAN&gt;MainActivity &lt;SPAN&gt;extends &lt;/SPAN&gt;AppCompatActivity &lt;SPAN&gt;implements &lt;/SPAN&gt;View.OnClickListener {&lt;BR /&gt;&lt;BR /&gt;    &lt;SPAN&gt;private static final int &lt;/SPAN&gt;&lt;SPAN&gt;CAMERA_PERMISSION_REQUEST &lt;/SPAN&gt;= &lt;SPAN&gt;100&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;    private static final int &lt;/SPAN&gt;&lt;SPAN&gt;LOCATION_PERMISSION_REQUEST &lt;/SPAN&gt;= &lt;SPAN&gt;101&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;    private static final &lt;/SPAN&gt;String[] &lt;SPAN&gt;REQUIRED_CAMERA_PERMISSIONS &lt;/SPAN&gt;= &lt;SPAN&gt;new &lt;/SPAN&gt;String[]{Manifest.permission.&lt;SPAN&gt;CAMERA&lt;/SPAN&gt;}&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;    private static final &lt;/SPAN&gt;String[] &lt;SPAN&gt;REQUIRED_LOCATION_PERMISSIONS &lt;/SPAN&gt;= &lt;SPAN&gt;new &lt;/SPAN&gt;String[]{Manifest.permission.&lt;SPAN&gt;ACCESS_FINE_LOCATION&lt;/SPAN&gt;}&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;    private &lt;/SPAN&gt;PreviewView &lt;SPAN&gt;previewView&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;    private &lt;/SPAN&gt;ImageCapture &lt;SPAN&gt;imageCapture&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;    private &lt;/SPAN&gt;TextView &lt;SPAN&gt;addressTextView&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;    private &lt;/SPAN&gt;ExecutorService &lt;SPAN&gt;cameraExecutor &lt;/SPAN&gt;= Executors.&lt;SPAN&gt;newSingleThreadExecutor&lt;/SPAN&gt;()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;    private &lt;/SPAN&gt;FusedLocationProviderClient &lt;SPAN&gt;fusedLocationProviderClient&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;    private &lt;/SPAN&gt;Geocoder &lt;SPAN&gt;geocoder&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;    &lt;SPAN&gt;// Dropbox variables&lt;BR /&gt;&lt;/SPAN&gt;    &lt;SPAN&gt;private static final &lt;/SPAN&gt;String &lt;SPAN&gt;ACCESS_TOKEN &lt;/SPAN&gt;= &lt;SPAN&gt;"sl.BqXWiazZAvf1uR-ONm9kH7XTjxew29xKWUh46mSxUg5CcRKKImYicad6kMsgMCLDHHNeP2mcyww-XWHNX2jP2CQPIFnHOfTu--sTcmTl5DgrgdH_Cb1UiR8V5tl3-q4L9MgywIHeaIFOEWfRIOlylMs"&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;    private &lt;/SPAN&gt;DbxRequestConfig &lt;SPAN&gt;config&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;    private &lt;/SPAN&gt;com.dropbox.core.v2.DbxClientV2 &lt;SPAN&gt;dropboxClient&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;    &lt;SPAN&gt;@Override&lt;BR /&gt;&lt;/SPAN&gt;    &lt;SPAN&gt;protected void &lt;/SPAN&gt;&lt;SPAN&gt;onCreate&lt;/SPAN&gt;(Bundle savedInstanceState) {&lt;BR /&gt;        &lt;SPAN&gt;super&lt;/SPAN&gt;.onCreate(savedInstanceState)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;        setContentView(R.layout.&lt;SPAN&gt;activity_main&lt;/SPAN&gt;)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;previewView &lt;/SPAN&gt;= findViewById(R.id.&lt;SPAN&gt;previewView&lt;/SPAN&gt;)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;        ImageButton captureButton = findViewById(R.id.&lt;SPAN&gt;captureButton&lt;/SPAN&gt;)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;addressTextView &lt;/SPAN&gt;= findViewById(R.id.&lt;SPAN&gt;addressTextView&lt;/SPAN&gt;)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;fusedLocationProviderClient &lt;/SPAN&gt;= LocationServices.&lt;SPAN&gt;getFusedLocationProviderClient&lt;/SPAN&gt;(&lt;SPAN&gt;this&lt;/SPAN&gt;)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;geocoder &lt;/SPAN&gt;= &lt;SPAN&gt;new &lt;/SPAN&gt;Geocoder(&lt;SPAN&gt;this, &lt;/SPAN&gt;Locale.&lt;SPAN&gt;getDefault&lt;/SPAN&gt;())&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;// Initialize Dropbox variables&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;config &lt;/SPAN&gt;= DbxRequestConfig.&lt;SPAN&gt;newBuilder&lt;/SPAN&gt;(&lt;SPAN&gt;"de_camera_app"&lt;/SPAN&gt;).build()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;dropboxClient &lt;/SPAN&gt;= &lt;SPAN&gt;new &lt;/SPAN&gt;com.dropbox.core.v2.DbxClientV2(&lt;SPAN&gt;config&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;ACCESS_TOKEN&lt;/SPAN&gt;)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        captureButton.setOnClickListener(&lt;SPAN&gt;this&lt;/SPAN&gt;)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;        if &lt;/SPAN&gt;(allPermissionsGranted()) {&lt;BR /&gt;            startCamera()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;            getLastLocation()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;        } &lt;SPAN&gt;else &lt;/SPAN&gt;{&lt;BR /&gt;            ActivityCompat.&lt;SPAN&gt;requestPermissions&lt;/SPAN&gt;(&lt;SPAN&gt;this, &lt;/SPAN&gt;&lt;SPAN&gt;REQUIRED_CAMERA_PERMISSIONS&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;CAMERA_PERMISSION_REQUEST&lt;/SPAN&gt;)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;        }&lt;BR /&gt;    }&lt;BR /&gt;&lt;BR /&gt;    &lt;SPAN&gt;private void &lt;/SPAN&gt;&lt;SPAN&gt;startCamera&lt;/SPAN&gt;() {&lt;BR /&gt;        ListenableFuture&amp;lt;ProcessCameraProvider&amp;gt; cameraProviderFuture = ProcessCameraProvider.&lt;SPAN&gt;getInstance&lt;/SPAN&gt;(&lt;SPAN&gt;this&lt;/SPAN&gt;)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        cameraProviderFuture.addListener(() -&amp;gt; {&lt;BR /&gt;            &lt;SPAN&gt;try &lt;/SPAN&gt;{&lt;BR /&gt;                ProcessCameraProvider cameraProvider = &lt;SPAN&gt;cameraProviderFuture&lt;/SPAN&gt;.get()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;                bindPreview(cameraProvider)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;            } &lt;SPAN&gt;catch &lt;/SPAN&gt;(Exception e) {&lt;BR /&gt;                e.printStackTrace()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;            }&lt;BR /&gt;        }&lt;SPAN&gt;, &lt;/SPAN&gt;ContextCompat.&lt;SPAN&gt;getMainExecutor&lt;/SPAN&gt;(&lt;SPAN&gt;this&lt;/SPAN&gt;))&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;    }&lt;BR /&gt;&lt;BR /&gt;    &lt;SPAN&gt;private void &lt;/SPAN&gt;&lt;SPAN&gt;bindPreview&lt;/SPAN&gt;(ProcessCameraProvider cameraProvider) {&lt;BR /&gt;        Preview preview = &lt;SPAN&gt;new &lt;/SPAN&gt;Preview.Builder().build()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        CameraSelector cameraSelector = &lt;SPAN&gt;new &lt;/SPAN&gt;CameraSelector.Builder()&lt;BR /&gt;                .requireLensFacing(CameraSelector.&lt;SPAN&gt;LENS_FACING_BACK&lt;/SPAN&gt;)&lt;BR /&gt;                .build()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        Camera camera = cameraProvider.bindToLifecycle((LifecycleOwner) &lt;SPAN&gt;this, &lt;/SPAN&gt;cameraSelector&lt;SPAN&gt;, &lt;/SPAN&gt;preview)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        preview.setSurfaceProvider(&lt;SPAN&gt;previewView&lt;/SPAN&gt;.getSurfaceProvider())&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;imageCapture &lt;/SPAN&gt;= &lt;SPAN&gt;new &lt;/SPAN&gt;ImageCapture.Builder()&lt;BR /&gt;                .setCaptureMode(ImageCapture.&lt;SPAN&gt;CAPTURE_MODE_MINIMIZE_LATENCY&lt;/SPAN&gt;)&lt;BR /&gt;                .setTargetRotation(&lt;SPAN&gt;previewView&lt;/SPAN&gt;.getDisplay().getRotation()) &lt;SPAN&gt;// Add this line&lt;BR /&gt;&lt;/SPAN&gt;                .build()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;// Re-bind use cases to the camera&lt;BR /&gt;&lt;/SPAN&gt;        cameraProvider.unbindAll()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;        cameraProvider.bindToLifecycle((LifecycleOwner) &lt;SPAN&gt;this, &lt;/SPAN&gt;cameraSelector&lt;SPAN&gt;, &lt;/SPAN&gt;preview&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;imageCapture&lt;/SPAN&gt;)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;    }&lt;BR /&gt;&lt;BR /&gt;    &lt;SPAN&gt;private void &lt;/SPAN&gt;&lt;SPAN&gt;getLastLocation&lt;/SPAN&gt;() {&lt;BR /&gt;        &lt;SPAN&gt;if &lt;/SPAN&gt;(ContextCompat.&lt;SPAN&gt;checkSelfPermission&lt;/SPAN&gt;(&lt;SPAN&gt;this, &lt;/SPAN&gt;Manifest.permission.&lt;SPAN&gt;ACCESS_FINE_LOCATION&lt;/SPAN&gt;) == PackageManager.&lt;SPAN&gt;PERMISSION_GRANTED&lt;/SPAN&gt;) {&lt;BR /&gt;            &lt;SPAN&gt;fusedLocationProviderClient&lt;/SPAN&gt;.getLastLocation()&lt;BR /&gt;                    .addOnSuccessListener(&lt;SPAN&gt;this, new &lt;/SPAN&gt;OnSuccessListener&amp;lt;Location&amp;gt;() {&lt;BR /&gt;                        &lt;SPAN&gt;@Override&lt;BR /&gt;&lt;/SPAN&gt;                        &lt;SPAN&gt;public void &lt;/SPAN&gt;&lt;SPAN&gt;onSuccess&lt;/SPAN&gt;(Location location) {&lt;BR /&gt;                            &lt;SPAN&gt;if &lt;/SPAN&gt;(location != &lt;SPAN&gt;null&lt;/SPAN&gt;) {&lt;BR /&gt;                                updateAddress(location)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;                            }&lt;BR /&gt;                        }&lt;BR /&gt;                    })&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;        } &lt;SPAN&gt;else &lt;/SPAN&gt;{&lt;BR /&gt;            &lt;SPAN&gt;// Request location permission&lt;BR /&gt;&lt;/SPAN&gt;            ActivityCompat.&lt;SPAN&gt;requestPermissions&lt;/SPAN&gt;(&lt;SPAN&gt;this, new &lt;/SPAN&gt;String[]{Manifest.permission.&lt;SPAN&gt;ACCESS_FINE_LOCATION&lt;/SPAN&gt;}&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;LOCATION_PERMISSION_REQUEST&lt;/SPAN&gt;)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;        }&lt;BR /&gt;    }&lt;BR /&gt;&lt;BR /&gt;    &lt;SPAN&gt;private void &lt;/SPAN&gt;&lt;SPAN&gt;updateAddress&lt;/SPAN&gt;(Location location) {&lt;BR /&gt;        &lt;SPAN&gt;try &lt;/SPAN&gt;{&lt;BR /&gt;            List&amp;lt;Address&amp;gt; addresses = &lt;SPAN&gt;geocoder&lt;/SPAN&gt;.getFromLocation(location.getLatitude()&lt;SPAN&gt;, &lt;/SPAN&gt;location.getLongitude()&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;1&lt;/SPAN&gt;)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;            if &lt;/SPAN&gt;(addresses != &lt;SPAN&gt;null &lt;/SPAN&gt;&amp;amp;&amp;amp; addresses.size() &amp;gt; &lt;SPAN&gt;0&lt;/SPAN&gt;) {&lt;BR /&gt;                Address address = addresses.get(&lt;SPAN&gt;0&lt;/SPAN&gt;)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;                String fullAddress = address.getAddressLine(&lt;SPAN&gt;0&lt;/SPAN&gt;)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;                &lt;SPAN&gt;addressTextView&lt;/SPAN&gt;.setText(fullAddress)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;            }&lt;BR /&gt;        } &lt;SPAN&gt;catch &lt;/SPAN&gt;(IOException e) {&lt;BR /&gt;            e.printStackTrace()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;        }&lt;BR /&gt;    }&lt;BR /&gt;&lt;BR /&gt;    &lt;SPAN&gt;@Override&lt;BR /&gt;&lt;/SPAN&gt;    &lt;SPAN&gt;public void &lt;/SPAN&gt;&lt;SPAN&gt;onClick&lt;/SPAN&gt;(View v) {&lt;BR /&gt;        &lt;SPAN&gt;if &lt;/SPAN&gt;(v.getId() == R.id.&lt;SPAN&gt;captureButton&lt;/SPAN&gt;) {&lt;BR /&gt;            captureAndUploadToDropbox()&lt;SPAN&gt;; &lt;/SPAN&gt;&lt;SPAN&gt;// Call the new method&lt;BR /&gt;&lt;/SPAN&gt;        }&lt;BR /&gt;    }&lt;BR /&gt;&lt;BR /&gt;    &lt;SPAN&gt;private void &lt;/SPAN&gt;&lt;SPAN&gt;captureAndUploadToDropbox&lt;/SPAN&gt;() {&lt;BR /&gt;        &lt;SPAN&gt;// Capture the image and directly upload it to Dropbox&lt;BR /&gt;&lt;/SPAN&gt;        ImageCapture.OutputFileOptions outputFileOptions =&lt;BR /&gt;                &lt;SPAN&gt;new &lt;/SPAN&gt;ImageCapture.OutputFileOptions.Builder(createImageFile()).build()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;imageCapture&lt;/SPAN&gt;.takePicture(outputFileOptions&lt;SPAN&gt;, &lt;/SPAN&gt;ContextCompat.&lt;SPAN&gt;getMainExecutor&lt;/SPAN&gt;(&lt;SPAN&gt;this&lt;/SPAN&gt;)&lt;SPAN&gt;, new &lt;/SPAN&gt;ImageCapture.OnImageSavedCallback() {&lt;BR /&gt;            &lt;SPAN&gt;@Override&lt;BR /&gt;&lt;/SPAN&gt;            &lt;SPAN&gt;public void &lt;/SPAN&gt;&lt;SPAN&gt;onImageSaved&lt;/SPAN&gt;(&lt;SPAN&gt;@Nullable &lt;/SPAN&gt;ImageCapture.OutputFileResults outputFileResults) {&lt;BR /&gt;                Uri savedUri = outputFileResults.getSavedUri()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;                if &lt;/SPAN&gt;(savedUri != &lt;SPAN&gt;null&lt;/SPAN&gt;) {&lt;BR /&gt;                    File savedPhoto = &lt;SPAN&gt;new &lt;/SPAN&gt;File(savedUri.getPath())&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;                    &lt;SPAN&gt;// Upload the photo to Dropbox&lt;BR /&gt;&lt;/SPAN&gt;                    uploadToDropbox(savedPhoto)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;                } &lt;SPAN&gt;else &lt;/SPAN&gt;{&lt;BR /&gt;                    runOnUiThread(() -&amp;gt; Toast.&lt;SPAN&gt;makeText&lt;/SPAN&gt;(MainActivity.&lt;SPAN&gt;this, &lt;/SPAN&gt;&lt;SPAN&gt;"Error getting saved file URI"&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;Toast.&lt;SPAN&gt;LENGTH_SHORT&lt;/SPAN&gt;).show())&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;                }&lt;BR /&gt;            }&lt;BR /&gt;&lt;BR /&gt;            &lt;SPAN&gt;@Override&lt;BR /&gt;&lt;/SPAN&gt;            &lt;SPAN&gt;public void &lt;/SPAN&gt;&lt;SPAN&gt;onError&lt;/SPAN&gt;(&lt;SPAN&gt;@NonNull &lt;/SPAN&gt;ImageCaptureException exception) {&lt;BR /&gt;                runOnUiThread(() -&amp;gt; Toast.&lt;SPAN&gt;makeText&lt;/SPAN&gt;(MainActivity.&lt;SPAN&gt;this, &lt;/SPAN&gt;&lt;SPAN&gt;"Error capturing image: " &lt;/SPAN&gt;+ &lt;SPAN&gt;exception&lt;/SPAN&gt;.getMessage()&lt;SPAN&gt;, &lt;/SPAN&gt;Toast.&lt;SPAN&gt;LENGTH_SHORT&lt;/SPAN&gt;).show())&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;            }&lt;BR /&gt;        })&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;    }&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;    &lt;SPAN&gt;private void &lt;/SPAN&gt;&lt;SPAN&gt;uploadToDropbox&lt;/SPAN&gt;(File photoFile) {&lt;BR /&gt;        &lt;SPAN&gt;try &lt;/SPAN&gt;{&lt;BR /&gt;            &lt;SPAN&gt;// Get the file name&lt;BR /&gt;&lt;/SPAN&gt;            String fileName = photoFile.getName()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;            &lt;SPAN&gt;// Log the file path before upload&lt;BR /&gt;&lt;/SPAN&gt;            Log.&lt;SPAN&gt;d&lt;/SPAN&gt;(&lt;SPAN&gt;"DropboxUpload"&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;"Uploading file: " &lt;/SPAN&gt;+ photoFile.getAbsolutePath())&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;            &lt;SPAN&gt;// Open the photo file&lt;BR /&gt;&lt;/SPAN&gt;            FileInputStream fis = &lt;SPAN&gt;new &lt;/SPAN&gt;FileInputStream(photoFile)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;            &lt;SPAN&gt;// Specify the remote path on Dropbox where you want to upload the file&lt;BR /&gt;&lt;/SPAN&gt;            String remotePath = &lt;SPAN&gt;"/Apps/Bau" &lt;/SPAN&gt;+ fileName&lt;SPAN&gt;; &lt;/SPAN&gt;&lt;SPAN&gt;// Replace "Bau" with your desired folder name&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;            // Upload the photo file&lt;BR /&gt;&lt;/SPAN&gt;            FileMetadata metadata = &lt;SPAN&gt;dropboxClient&lt;/SPAN&gt;.files().uploadBuilder(remotePath)&lt;BR /&gt;                    .uploadAndFinish(fis)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;            &lt;SPAN&gt;// You can handle the metadata response if needed&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;            // metadata.getName(), metadata.getSize(), etc.&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;            runOnUiThread(() -&amp;gt; Toast.&lt;SPAN&gt;makeText&lt;/SPAN&gt;(MainActivity.&lt;SPAN&gt;this, &lt;/SPAN&gt;&lt;SPAN&gt;"Photo uploaded to Dropbox successfully"&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;Toast.&lt;SPAN&gt;LENGTH_SHORT&lt;/SPAN&gt;).show())&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;        } &lt;SPAN&gt;catch &lt;/SPAN&gt;(Exception e) {&lt;BR /&gt;            e.printStackTrace()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;            runOnUiThread(() -&amp;gt; Toast.&lt;SPAN&gt;makeText&lt;/SPAN&gt;(MainActivity.&lt;SPAN&gt;this, &lt;/SPAN&gt;&lt;SPAN&gt;"Error uploading to Dropbox: " &lt;/SPAN&gt;+ &lt;SPAN&gt;e&lt;/SPAN&gt;.getMessage()&lt;SPAN&gt;, &lt;/SPAN&gt;Toast.&lt;SPAN&gt;LENGTH_SHORT&lt;/SPAN&gt;).show())&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;        }&lt;BR /&gt;    }&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;    &lt;SPAN&gt;private &lt;/SPAN&gt;File &lt;SPAN&gt;createImageFile&lt;/SPAN&gt;() {&lt;BR /&gt;        String timeStamp = &lt;SPAN&gt;new &lt;/SPAN&gt;SimpleDateFormat(&lt;SPAN&gt;"yyyyMMdd_HHmmss"&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;Locale.&lt;SPAN&gt;US&lt;/SPAN&gt;).format(&lt;SPAN&gt;new &lt;/SPAN&gt;Date())&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;        String imageFileName = &lt;SPAN&gt;"JPEG_" &lt;/SPAN&gt;+ timeStamp + &lt;SPAN&gt;"_"&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;        File storageDir = getExternalFilesDir(Environment.&lt;SPAN&gt;DIRECTORY_PICTURES&lt;/SPAN&gt;)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;        try &lt;/SPAN&gt;{&lt;BR /&gt;            &lt;SPAN&gt;if &lt;/SPAN&gt;(storageDir != &lt;SPAN&gt;null&lt;/SPAN&gt;) {&lt;BR /&gt;                &lt;SPAN&gt;return &lt;/SPAN&gt;File.&lt;SPAN&gt;createTempFile&lt;/SPAN&gt;(imageFileName&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;".jpg"&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;storageDir)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;            } &lt;SPAN&gt;else &lt;/SPAN&gt;{&lt;BR /&gt;                runOnUiThread(() -&amp;gt; Toast.&lt;SPAN&gt;makeText&lt;/SPAN&gt;(MainActivity.&lt;SPAN&gt;this, &lt;/SPAN&gt;&lt;SPAN&gt;"Error creating storage directory"&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;Toast.&lt;SPAN&gt;LENGTH_SHORT&lt;/SPAN&gt;).show())&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;            }&lt;BR /&gt;        } &lt;SPAN&gt;catch &lt;/SPAN&gt;(IOException e) {&lt;BR /&gt;            e.printStackTrace()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;            runOnUiThread(() -&amp;gt; Toast.&lt;SPAN&gt;makeText&lt;/SPAN&gt;(MainActivity.&lt;SPAN&gt;this, &lt;/SPAN&gt;&lt;SPAN&gt;"Error creating photo file"&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;Toast.&lt;SPAN&gt;LENGTH_SHORT&lt;/SPAN&gt;).show())&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;        }&lt;BR /&gt;&lt;BR /&gt;        &lt;SPAN&gt;return null;&lt;BR /&gt;&lt;/SPAN&gt;    }&lt;BR /&gt;&lt;BR /&gt;    &lt;SPAN&gt;private boolean &lt;/SPAN&gt;&lt;SPAN&gt;allPermissionsGranted&lt;/SPAN&gt;() {&lt;BR /&gt;        &lt;SPAN&gt;for &lt;/SPAN&gt;(String permission : &lt;SPAN&gt;REQUIRED_CAMERA_PERMISSIONS&lt;/SPAN&gt;) {&lt;BR /&gt;            &lt;SPAN&gt;if &lt;/SPAN&gt;(ContextCompat.&lt;SPAN&gt;checkSelfPermission&lt;/SPAN&gt;(&lt;SPAN&gt;this, &lt;/SPAN&gt;permission) != PackageManager.&lt;SPAN&gt;PERMISSION_GRANTED&lt;/SPAN&gt;) {&lt;BR /&gt;                &lt;SPAN&gt;return false;&lt;BR /&gt;&lt;/SPAN&gt;            }&lt;BR /&gt;        }&lt;BR /&gt;        &lt;SPAN&gt;return true;&lt;BR /&gt;&lt;/SPAN&gt;    }&lt;BR /&gt;&lt;BR /&gt;    &lt;SPAN&gt;@Override&lt;BR /&gt;&lt;/SPAN&gt;    &lt;SPAN&gt;public void &lt;/SPAN&gt;&lt;SPAN&gt;onRequestPermissionsResult&lt;/SPAN&gt;(&lt;SPAN&gt;int &lt;/SPAN&gt;requestCode&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;@NonNull &lt;/SPAN&gt;String[] permissions&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;@NonNull &lt;/SPAN&gt;&lt;SPAN&gt;int&lt;/SPAN&gt;[] grantResults) {&lt;BR /&gt;        &lt;SPAN&gt;super&lt;/SPAN&gt;.onRequestPermissionsResult(requestCode&lt;SPAN&gt;, &lt;/SPAN&gt;permissions&lt;SPAN&gt;, &lt;/SPAN&gt;grantResults)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;        if &lt;/SPAN&gt;(requestCode == &lt;SPAN&gt;CAMERA_PERMISSION_REQUEST&lt;/SPAN&gt;) {&lt;BR /&gt;            &lt;SPAN&gt;if &lt;/SPAN&gt;(allPermissionsGranted()) {&lt;BR /&gt;                startCamera()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;                getLastLocation()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;            } &lt;SPAN&gt;else &lt;/SPAN&gt;{&lt;BR /&gt;                runOnUiThread(() -&amp;gt; Toast.&lt;SPAN&gt;makeText&lt;/SPAN&gt;(&lt;SPAN&gt;this, &lt;/SPAN&gt;&lt;SPAN&gt;"Camera permissions not granted."&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;Toast.&lt;SPAN&gt;LENGTH_SHORT&lt;/SPAN&gt;).show())&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;                finish()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;            }&lt;BR /&gt;        } &lt;SPAN&gt;else if &lt;/SPAN&gt;(requestCode == &lt;SPAN&gt;LOCATION_PERMISSION_REQUEST&lt;/SPAN&gt;) {&lt;BR /&gt;            &lt;SPAN&gt;if &lt;/SPAN&gt;(grantResults.&lt;SPAN&gt;length &lt;/SPAN&gt;&amp;gt; &lt;SPAN&gt;0 &lt;/SPAN&gt;&amp;amp;&amp;amp; grantResults[&lt;SPAN&gt;0&lt;/SPAN&gt;] == PackageManager.&lt;SPAN&gt;PERMISSION_GRANTED&lt;/SPAN&gt;) {&lt;BR /&gt;                getLastLocation()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;            } &lt;SPAN&gt;else &lt;/SPAN&gt;{&lt;BR /&gt;                runOnUiThread(() -&amp;gt; Toast.&lt;SPAN&gt;makeText&lt;/SPAN&gt;(&lt;SPAN&gt;this, &lt;/SPAN&gt;&lt;SPAN&gt;"Location permissions not granted."&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;Toast.&lt;SPAN&gt;LENGTH_SHORT&lt;/SPAN&gt;).show())&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;            }&lt;BR /&gt;        }&lt;BR /&gt;    }&lt;BR /&gt;}&lt;/PRE&gt;</description>
      <pubDate>Thu, 23 Nov 2023 17:04:14 GMT</pubDate>
      <guid>https://www.dropboxforum.com/t5/Dropbox-API-Support-Feedback/my-android-app-not-uploading-photo-directly-to-Dropbox-app/m-p/732093#M32353</guid>
      <dc:creator>Ghost Mjrm</dc:creator>
      <dc:date>2023-11-23T17:04:14Z</dc:date>
    </item>
    <item>
      <title>Re: my android app not uploading photo directly to Dropbox app folder using API</title>
      <link>https://www.dropboxforum.com/t5/Dropbox-API-Support-Feedback/my-android-app-not-uploading-photo-directly-to-Dropbox-app/m-p/732094#M32354</link>
      <description>&lt;P&gt;&lt;a href="https://www.dropboxforum.com/t5/user/viewprofilepage/user-id/1770682"&gt;@Ghost Mjrm&lt;/a&gt;, there is no single right decision. It's matter of design decision and you can make it as you like.&lt;/P&gt;&lt;P&gt;Something else: Don't forget that access token (the one you use in your code) is short lived! &lt;img class="lia-deferred-image lia-image-emoji" src="https://www.dropboxforum.com/html/@A16056C119D4591E1188DE34BB2BEF73/emoticons/1f446.png" alt=":backhand_index_pointing_up:" title=":backhand_index_pointing_up:" /&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 23 Nov 2023 17:05:42 GMT</pubDate>
      <guid>https://www.dropboxforum.com/t5/Dropbox-API-Support-Feedback/my-android-app-not-uploading-photo-directly-to-Dropbox-app/m-p/732094#M32354</guid>
      <dc:creator>Здравко</dc:creator>
      <dc:date>2023-11-23T17:05:42Z</dc:date>
    </item>
    <item>
      <title>Re: my android app not uploading photo directly to Dropbox app folder using API</title>
      <link>https://www.dropboxforum.com/t5/Dropbox-API-Support-Feedback/my-android-app-not-uploading-photo-directly-to-Dropbox-app/m-p/732098#M32355</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://www.dropboxforum.com/t5/user/viewprofilepage/user-id/1770682"&gt;@Ghost Mjrm&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;&lt;P&gt;... und tell me error uploading to dropbox:null ...&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&amp;nbsp;Hm..&lt;img class="lia-deferred-image lia-image-emoji" src="https://www.dropboxforum.com/html/@9AD39CA637682E9616FBE31CDAF1B6C4/emoticons/1f914.png" alt=":thinking_face:" title=":thinking_face:" /&gt; Try find out where exactly the exception comes from (set middle points throughout your code). Perform intensive logging in your uploadToDropbox method in every line and split the composite lines.&lt;/P&gt;</description>
      <pubDate>Thu, 23 Nov 2023 17:19:59 GMT</pubDate>
      <guid>https://www.dropboxforum.com/t5/Dropbox-API-Support-Feedback/my-android-app-not-uploading-photo-directly-to-Dropbox-app/m-p/732098#M32355</guid>
      <dc:creator>Здравко</dc:creator>
      <dc:date>2023-11-23T17:19:59Z</dc:date>
    </item>
    <item>
      <title>Re: my android app not uploading photo directly to Dropbox app folder using API</title>
      <link>https://www.dropboxforum.com/t5/Dropbox-API-Support-Feedback/my-android-app-not-uploading-photo-directly-to-Dropbox-app/m-p/732099#M32356</link>
      <description>&lt;P&gt;thank you so much to noticing me one more once but every time should i update my access token to make the app working again ? is there any solution for that i want to give this app to employer to use it and give me photo every time 24 hours per day&amp;nbsp;&lt;/P&gt;&lt;P&gt;one more question i have edit my access token&amp;nbsp; but the problem is still when i take photo it tell me error uploading to dropbox:null&lt;/P&gt;&lt;P&gt;i have checked my app Dropbox folder and i cannot find anything&lt;/P&gt;&lt;P&gt;Best Regards&amp;nbsp;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 23 Nov 2023 17:22:54 GMT</pubDate>
      <guid>https://www.dropboxforum.com/t5/Dropbox-API-Support-Feedback/my-android-app-not-uploading-photo-directly-to-Dropbox-app/m-p/732099#M32356</guid>
      <dc:creator>Ghost Mjrm</dc:creator>
      <dc:date>2023-11-23T17:22:54Z</dc:date>
    </item>
    <item>
      <title>Re: my android app not uploading photo directly to Dropbox app folder using API</title>
      <link>https://www.dropboxforum.com/t5/Dropbox-API-Support-Feedback/my-android-app-not-uploading-photo-directly-to-Dropbox-app/m-p/732117#M32357</link>
      <description>&lt;P&gt;Just performing OAuth flow and using "offline" as type will give you refresh token that doesn't expire. &lt;img class="lia-deferred-image lia-image-emoji" src="https://www.dropboxforum.com/html/@41457EF40051AFF130FDBFE21B496926/emoticons/1f609.png" alt=":winking_face:" title=":winking_face:" /&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 23 Nov 2023 19:12:14 GMT</pubDate>
      <guid>https://www.dropboxforum.com/t5/Dropbox-API-Support-Feedback/my-android-app-not-uploading-photo-directly-to-Dropbox-app/m-p/732117#M32357</guid>
      <dc:creator>Здравко</dc:creator>
      <dc:date>2023-11-23T19:12:14Z</dc:date>
    </item>
    <item>
      <title>Re: my android app not uploading photo directly to Dropbox app folder using API</title>
      <link>https://www.dropboxforum.com/t5/Dropbox-API-Support-Feedback/my-android-app-not-uploading-photo-directly-to-Dropbox-app/m-p/732645#M32368</link>
      <description>&lt;P&gt;&lt;a href="https://www.dropboxforum.com/t5/user/viewprofilepage/user-id/1770682"&gt;@Ghost Mjrm&lt;/a&gt;&amp;nbsp;Здравко is correct; for long-term access, you can request "offline" access, in which case the app receives a "refresh token" that can be used to retrieve new short-lived access tokens as needed, without further manual user intervention. Refresh tokens do not expire automatically and can be used repeatedly. You can find more information in the &lt;A href="https://developers.dropbox.com/oauth-guide" rel="noopener noreferrer" target="_blank"&gt;OAuth Guide&lt;/A&gt; and &lt;A href="https://www.dropbox.com/developers/documentation/http/documentation#authorization" rel="noopener noreferrer" target="_blank"&gt;authorization documentation&lt;/A&gt;. There's a basic outline of processing this flow in &lt;A href="https://dropbox.tech/developers/using-oauth-2-0-with-offline-access" rel="noopener noreferrer" target="_blank"&gt;this blog post&lt;/A&gt; which may serve as a useful example.&lt;BR /&gt;&lt;BR /&gt;The &lt;A href="https://github.com/dropbox/dropbox-sdk-java" rel="noopener noreferrer" target="_blank"&gt;official Dropbox Java SDK&lt;/A&gt; can actually handle the process for you automatically, as long as you supply the necessary credentials, e.g., as shown retrieved in &lt;A href="https://github.com/dropbox/dropbox-sdk-java/tree/main/examples/examples/src/main/java/com/dropbox/core/examples/authorize" rel="noopener noreferrer" target="_blank"&gt;the examples here&lt;/A&gt;. For instance, for a client-side app, such as a desktop app, you should use the PKCE flow, e.g., &lt;A href="https://github.com/dropbox/dropbox-sdk-java/blob/main/examples/examples/src/main/java/com/dropbox/core/examples/authorize/PkceAuthorize.java" rel="noopener noreferrer" target="_blank"&gt;as shown here&lt;/A&gt;. That allows you to make and save &lt;A href="https://github.com/dropbox/dropbox-sdk-java/blob/main/examples/examples/src/main/java/com/dropbox/core/examples/authorize/AuthorizeExample.kt#L85" rel="noopener noreferrer" target="_blank"&gt;a DbxCredential with a refresh token as shown here&lt;/A&gt;. With that, you can make API calls &lt;A href="https://github.com/dropbox/dropbox-sdk-java/blob/main/examples/examples/src/main/java/com/dropbox/core/examples/account_info/AccountInfoExample.kt#L26" rel="noopener noreferrer" target="_blank"&gt;like shown here&lt;/A&gt;.&lt;/P&gt;</description>
      <pubDate>Mon, 27 Nov 2023 15:27:17 GMT</pubDate>
      <guid>https://www.dropboxforum.com/t5/Dropbox-API-Support-Feedback/my-android-app-not-uploading-photo-directly-to-Dropbox-app/m-p/732645#M32368</guid>
      <dc:creator>Greg-DB</dc:creator>
      <dc:date>2023-11-27T15:27:17Z</dc:date>
    </item>
    <item>
      <title>Re: my android app not uploading photo directly to Dropbox app folder using API</title>
      <link>https://www.dropboxforum.com/t5/Dropbox-API-Support-Feedback/my-android-app-not-uploading-photo-directly-to-Dropbox-app/m-p/732646#M32369</link>
      <description>&lt;P&gt;can you explain the steps to me i lost in the internet searching for a solution to my situation this is my code&lt;/P&gt;&lt;PRE&gt;&lt;SPAN&gt;package &lt;/SPAN&gt;com.example.decamera&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;android.Manifest&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;android.content.pm.PackageManager&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;android.graphics.Bitmap&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;android.graphics.BitmapFactory&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;android.graphics.Canvas&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;android.graphics.Color&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;android.graphics.Matrix&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;android.graphics.Paint&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;android.graphics.Typeface&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;android.location.Address&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;android.location.Geocoder&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;android.location.Location&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;android.os.Bundle&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;android.os.Environment&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;android.view.View&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;android.widget.ImageButton&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;android.widget.TextView&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;android.widget.Toast&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;androidx.annotation.&lt;SPAN&gt;NonNull&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;androidx.annotation.&lt;SPAN&gt;Nullable&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;androidx.appcompat.app.AppCompatActivity&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;androidx.camera.core.Camera&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;androidx.camera.core.CameraSelector&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;androidx.camera.core.ImageCapture&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;androidx.camera.core.ImageCaptureException&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;androidx.camera.core.Preview&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;androidx.camera.lifecycle.ProcessCameraProvider&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;androidx.camera.view.PreviewView&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;androidx.core.app.ActivityCompat&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;androidx.core.content.ContextCompat&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;androidx.exifinterface.media.ExifInterface&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;androidx.lifecycle.LifecycleOwner&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;com.dropbox.core.DbxRequestConfig&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;com.dropbox.core.v2.DbxClientV2&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;com.dropbox.core.v2.files.WriteMode&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;com.google.android.gms.location.FusedLocationProviderClient&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;com.google.android.gms.location.LocationServices&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;com.google.android.gms.tasks.OnSuccessListener&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;com.google.common.util.concurrent.ListenableFuture&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;java.io.File&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;java.io.FileInputStream&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;java.io.FileOutputStream&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;java.io.IOException&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;java.io.InputStream&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;java.text.SimpleDateFormat&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;java.util.Date&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;java.util.List&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;java.util.Locale&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;java.util.concurrent.ExecutorService&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;java.util.concurrent.Executors&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;public class &lt;/SPAN&gt;MainActivity &lt;SPAN&gt;extends &lt;/SPAN&gt;AppCompatActivity &lt;SPAN&gt;implements &lt;/SPAN&gt;View.OnClickListener {&lt;BR /&gt;&lt;BR /&gt;    &lt;SPAN&gt;private static final int &lt;/SPAN&gt;&lt;SPAN&gt;CAMERA_PERMISSION_REQUEST &lt;/SPAN&gt;= &lt;SPAN&gt;100&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;    private static final &lt;/SPAN&gt;String[] &lt;SPAN&gt;REQUIRED_CAMERA_PERMISSIONS &lt;/SPAN&gt;= &lt;SPAN&gt;new &lt;/SPAN&gt;String[]{Manifest.permission.&lt;SPAN&gt;CAMERA&lt;/SPAN&gt;}&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;    private static final &lt;/SPAN&gt;String &lt;SPAN&gt;DROPBOX_ACCESS_TOKEN &lt;/SPAN&gt;= &lt;SPAN&gt;"here should i input my access token but it changend everytime"&lt;/SPAN&gt;&lt;SPAN&gt;; &lt;/SPAN&gt;&lt;SPAN&gt;// Replace with your Dropbox access token&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;    &lt;SPAN&gt;private &lt;/SPAN&gt;PreviewView &lt;SPAN&gt;previewView&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;    private &lt;/SPAN&gt;ImageCapture &lt;SPAN&gt;imageCapture&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;    private &lt;/SPAN&gt;TextView &lt;SPAN&gt;addressTextView&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;    private &lt;/SPAN&gt;ExecutorService &lt;SPAN&gt;cameraExecutor &lt;/SPAN&gt;= Executors.&lt;SPAN&gt;newSingleThreadExecutor&lt;/SPAN&gt;()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;    private &lt;/SPAN&gt;FusedLocationProviderClient &lt;SPAN&gt;fusedLocationProviderClient&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;    private &lt;/SPAN&gt;Geocoder &lt;SPAN&gt;geocoder&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;    &lt;SPAN&gt;@Override&lt;BR /&gt;&lt;/SPAN&gt;    &lt;SPAN&gt;protected void &lt;/SPAN&gt;&lt;SPAN&gt;onCreate&lt;/SPAN&gt;(Bundle savedInstanceState) {&lt;BR /&gt;        &lt;SPAN&gt;super&lt;/SPAN&gt;.onCreate(savedInstanceState)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;        setContentView(R.layout.&lt;SPAN&gt;activity_main&lt;/SPAN&gt;)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;previewView &lt;/SPAN&gt;= findViewById(R.id.&lt;SPAN&gt;previewView&lt;/SPAN&gt;)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;        ImageButton captureButton = findViewById(R.id.&lt;SPAN&gt;captureButton&lt;/SPAN&gt;)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;addressTextView &lt;/SPAN&gt;= findViewById(R.id.&lt;SPAN&gt;addressTextView&lt;/SPAN&gt;)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;fusedLocationProviderClient &lt;/SPAN&gt;= LocationServices.&lt;SPAN&gt;getFusedLocationProviderClient&lt;/SPAN&gt;(&lt;SPAN&gt;this&lt;/SPAN&gt;)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;geocoder &lt;/SPAN&gt;= &lt;SPAN&gt;new &lt;/SPAN&gt;Geocoder(&lt;SPAN&gt;this, &lt;/SPAN&gt;Locale.&lt;SPAN&gt;getDefault&lt;/SPAN&gt;())&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        captureButton.setOnClickListener(&lt;SPAN&gt;this&lt;/SPAN&gt;)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;        if &lt;/SPAN&gt;(allPermissionsGranted()) {&lt;BR /&gt;            startCamera()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;            getLastLocation()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;        } &lt;SPAN&gt;else &lt;/SPAN&gt;{&lt;BR /&gt;            ActivityCompat.&lt;SPAN&gt;requestPermissions&lt;/SPAN&gt;(&lt;SPAN&gt;this, &lt;/SPAN&gt;&lt;SPAN&gt;REQUIRED_CAMERA_PERMISSIONS&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;CAMERA_PERMISSION_REQUEST&lt;/SPAN&gt;)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;        }&lt;BR /&gt;    }&lt;BR /&gt;&lt;BR /&gt;    &lt;SPAN&gt;private void &lt;/SPAN&gt;&lt;SPAN&gt;startCamera&lt;/SPAN&gt;() {&lt;BR /&gt;        ListenableFuture&amp;lt;ProcessCameraProvider&amp;gt; cameraProviderFuture = ProcessCameraProvider.&lt;SPAN&gt;getInstance&lt;/SPAN&gt;(&lt;SPAN&gt;this&lt;/SPAN&gt;)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        cameraProviderFuture.addListener(() -&amp;gt; {&lt;BR /&gt;            &lt;SPAN&gt;try &lt;/SPAN&gt;{&lt;BR /&gt;                ProcessCameraProvider cameraProvider = &lt;SPAN&gt;cameraProviderFuture&lt;/SPAN&gt;.get()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;                bindPreview(cameraProvider)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;            } &lt;SPAN&gt;catch &lt;/SPAN&gt;(Exception e) {&lt;BR /&gt;                e.printStackTrace()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;            }&lt;BR /&gt;        }&lt;SPAN&gt;, &lt;/SPAN&gt;ContextCompat.&lt;SPAN&gt;getMainExecutor&lt;/SPAN&gt;(&lt;SPAN&gt;this&lt;/SPAN&gt;))&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;    }&lt;BR /&gt;&lt;BR /&gt;    &lt;SPAN&gt;private void &lt;/SPAN&gt;&lt;SPAN&gt;bindPreview&lt;/SPAN&gt;(ProcessCameraProvider cameraProvider) {&lt;BR /&gt;        Preview preview = &lt;SPAN&gt;new &lt;/SPAN&gt;Preview.Builder().build()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        CameraSelector cameraSelector = &lt;SPAN&gt;new &lt;/SPAN&gt;CameraSelector.Builder()&lt;BR /&gt;                .requireLensFacing(CameraSelector.&lt;SPAN&gt;LENS_FACING_BACK&lt;/SPAN&gt;)&lt;BR /&gt;                .build()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        Camera camera = cameraProvider.bindToLifecycle((LifecycleOwner) &lt;SPAN&gt;this, &lt;/SPAN&gt;cameraSelector&lt;SPAN&gt;, &lt;/SPAN&gt;preview)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        preview.setSurfaceProvider(&lt;SPAN&gt;previewView&lt;/SPAN&gt;.getSurfaceProvider())&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;imageCapture &lt;/SPAN&gt;= &lt;SPAN&gt;new &lt;/SPAN&gt;ImageCapture.Builder()&lt;BR /&gt;                .setCaptureMode(ImageCapture.&lt;SPAN&gt;CAPTURE_MODE_MINIMIZE_LATENCY&lt;/SPAN&gt;)&lt;BR /&gt;                .setTargetRotation(&lt;SPAN&gt;previewView&lt;/SPAN&gt;.getDisplay().getRotation())&lt;BR /&gt;                .build()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        cameraProvider.unbindAll()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;        cameraProvider.bindToLifecycle((LifecycleOwner) &lt;SPAN&gt;this, &lt;/SPAN&gt;cameraSelector&lt;SPAN&gt;, &lt;/SPAN&gt;preview&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;imageCapture&lt;/SPAN&gt;)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;    }&lt;BR /&gt;&lt;BR /&gt;    &lt;SPAN&gt;private void &lt;/SPAN&gt;&lt;SPAN&gt;getLastLocation&lt;/SPAN&gt;() {&lt;BR /&gt;        &lt;SPAN&gt;if &lt;/SPAN&gt;(ContextCompat.&lt;SPAN&gt;checkSelfPermission&lt;/SPAN&gt;(&lt;SPAN&gt;this, &lt;/SPAN&gt;Manifest.permission.&lt;SPAN&gt;ACCESS_FINE_LOCATION&lt;/SPAN&gt;) == PackageManager.&lt;SPAN&gt;PERMISSION_GRANTED&lt;/SPAN&gt;) {&lt;BR /&gt;            &lt;SPAN&gt;fusedLocationProviderClient&lt;/SPAN&gt;.getLastLocation()&lt;BR /&gt;                    .addOnSuccessListener(&lt;SPAN&gt;this, new &lt;/SPAN&gt;OnSuccessListener&amp;lt;Location&amp;gt;() {&lt;BR /&gt;                        &lt;SPAN&gt;@Override&lt;BR /&gt;&lt;/SPAN&gt;                        &lt;SPAN&gt;public void &lt;/SPAN&gt;&lt;SPAN&gt;onSuccess&lt;/SPAN&gt;(Location location) {&lt;BR /&gt;                            &lt;SPAN&gt;if &lt;/SPAN&gt;(location != &lt;SPAN&gt;null&lt;/SPAN&gt;) {&lt;BR /&gt;                                updateAddress(location)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;                            }&lt;BR /&gt;                        }&lt;BR /&gt;                    })&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;        } &lt;SPAN&gt;else &lt;/SPAN&gt;{&lt;BR /&gt;            ActivityCompat.&lt;SPAN&gt;requestPermissions&lt;/SPAN&gt;(&lt;SPAN&gt;this, new &lt;/SPAN&gt;String[]{Manifest.permission.&lt;SPAN&gt;ACCESS_FINE_LOCATION&lt;/SPAN&gt;}&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;CAMERA_PERMISSION_REQUEST&lt;/SPAN&gt;)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;        }&lt;BR /&gt;    }&lt;BR /&gt;&lt;BR /&gt;    &lt;SPAN&gt;private void &lt;/SPAN&gt;&lt;SPAN&gt;updateAddress&lt;/SPAN&gt;(Location location) {&lt;BR /&gt;        &lt;SPAN&gt;try &lt;/SPAN&gt;{&lt;BR /&gt;            List&amp;lt;Address&amp;gt; addresses = &lt;SPAN&gt;geocoder&lt;/SPAN&gt;.getFromLocation(location.getLatitude()&lt;SPAN&gt;, &lt;/SPAN&gt;location.getLongitude()&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;1&lt;/SPAN&gt;)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;            if &lt;/SPAN&gt;(addresses != &lt;SPAN&gt;null &lt;/SPAN&gt;&amp;amp;&amp;amp; addresses.size() &amp;gt; &lt;SPAN&gt;0&lt;/SPAN&gt;) {&lt;BR /&gt;                Address address = addresses.get(&lt;SPAN&gt;0&lt;/SPAN&gt;)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;                String fullAddress = address.getAddressLine(&lt;SPAN&gt;0&lt;/SPAN&gt;)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;                &lt;SPAN&gt;addressTextView&lt;/SPAN&gt;.setText(fullAddress)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;            }&lt;BR /&gt;        } &lt;SPAN&gt;catch &lt;/SPAN&gt;(IOException e) {&lt;BR /&gt;            e.printStackTrace()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;        }&lt;BR /&gt;    }&lt;BR /&gt;&lt;BR /&gt;    &lt;SPAN&gt;@Override&lt;BR /&gt;&lt;/SPAN&gt;    &lt;SPAN&gt;public void &lt;/SPAN&gt;&lt;SPAN&gt;onClick&lt;/SPAN&gt;(View v) {&lt;BR /&gt;        &lt;SPAN&gt;if &lt;/SPAN&gt;(v.getId() == R.id.&lt;SPAN&gt;captureButton&lt;/SPAN&gt;) {&lt;BR /&gt;            captureImage()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;        }&lt;BR /&gt;    }&lt;BR /&gt;&lt;BR /&gt;    &lt;SPAN&gt;private void &lt;/SPAN&gt;&lt;SPAN&gt;captureImage&lt;/SPAN&gt;() {&lt;BR /&gt;        File photoFile = createImageFile()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;        if &lt;/SPAN&gt;(photoFile != &lt;SPAN&gt;null&lt;/SPAN&gt;) {&lt;BR /&gt;            ImageCapture.OutputFileOptions outputFileOptions =&lt;BR /&gt;                    &lt;SPAN&gt;new &lt;/SPAN&gt;ImageCapture.OutputFileOptions.Builder(photoFile).build()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;            &lt;SPAN&gt;imageCapture&lt;/SPAN&gt;.takePicture(outputFileOptions&lt;SPAN&gt;, &lt;/SPAN&gt;ContextCompat.&lt;SPAN&gt;getMainExecutor&lt;/SPAN&gt;(&lt;SPAN&gt;this&lt;/SPAN&gt;)&lt;SPAN&gt;, new &lt;/SPAN&gt;ImageCapture.OnImageSavedCallback() {&lt;BR /&gt;                &lt;SPAN&gt;@Override&lt;BR /&gt;&lt;/SPAN&gt;                &lt;SPAN&gt;public void &lt;/SPAN&gt;&lt;SPAN&gt;onImageSaved&lt;/SPAN&gt;(&lt;SPAN&gt;@Nullable &lt;/SPAN&gt;ImageCapture.OutputFileResults outputFileResults) {&lt;BR /&gt;                    combineImageWithAddress(&lt;SPAN&gt;photoFile&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;addressTextView&lt;/SPAN&gt;.getText().toString())&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;                    uploadToDropbox(&lt;SPAN&gt;photoFile&lt;/SPAN&gt;)&lt;SPAN&gt;;  &lt;/SPAN&gt;&lt;SPAN&gt;// Upload to Dropbox&lt;BR /&gt;&lt;/SPAN&gt;                }&lt;BR /&gt;&lt;BR /&gt;                &lt;SPAN&gt;@Override&lt;BR /&gt;&lt;/SPAN&gt;                &lt;SPAN&gt;public void &lt;/SPAN&gt;&lt;SPAN&gt;onError&lt;/SPAN&gt;(&lt;SPAN&gt;@NonNull &lt;/SPAN&gt;ImageCaptureException exception) {&lt;BR /&gt;                    runOnUiThread(() -&amp;gt; Toast.&lt;SPAN&gt;makeText&lt;/SPAN&gt;(MainActivity.&lt;SPAN&gt;this, &lt;/SPAN&gt;&lt;SPAN&gt;"Error capturing image: " &lt;/SPAN&gt;+ &lt;SPAN&gt;exception&lt;/SPAN&gt;.getMessage()&lt;SPAN&gt;, &lt;/SPAN&gt;Toast.&lt;SPAN&gt;LENGTH_SHORT&lt;/SPAN&gt;).show())&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;                }&lt;BR /&gt;            })&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;        } &lt;SPAN&gt;else &lt;/SPAN&gt;{&lt;BR /&gt;            runOnUiThread(() -&amp;gt; Toast.&lt;SPAN&gt;makeText&lt;/SPAN&gt;(MainActivity.&lt;SPAN&gt;this, &lt;/SPAN&gt;&lt;SPAN&gt;"Error creating photo file"&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;Toast.&lt;SPAN&gt;LENGTH_SHORT&lt;/SPAN&gt;).show())&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;        }&lt;BR /&gt;    }&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;    &lt;SPAN&gt;private void &lt;/SPAN&gt;&lt;SPAN&gt;combineImageWithAddress&lt;/SPAN&gt;(File photoFile&lt;SPAN&gt;, &lt;/SPAN&gt;String addressText) {&lt;BR /&gt;        Bitmap photoBitmap = BitmapFactory.&lt;SPAN&gt;decodeFile&lt;/SPAN&gt;(photoFile.getAbsolutePath())&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;// Check the orientation of the image and rotate it if needed&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;int &lt;/SPAN&gt;rotation = getRotationAngle(photoFile.getAbsolutePath())&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;        if &lt;/SPAN&gt;(rotation != &lt;SPAN&gt;0&lt;/SPAN&gt;) {&lt;BR /&gt;            photoBitmap = rotateBitmap(photoBitmap&lt;SPAN&gt;, &lt;/SPAN&gt;rotation)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;        }&lt;BR /&gt;&lt;BR /&gt;        Bitmap combinedBitmap = photoBitmap.copy(photoBitmap.getConfig()&lt;SPAN&gt;, true&lt;/SPAN&gt;)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;        Canvas canvas = &lt;SPAN&gt;new &lt;/SPAN&gt;Canvas(combinedBitmap)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        Paint paint = &lt;SPAN&gt;new &lt;/SPAN&gt;Paint()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;        paint.setColor(Color.&lt;SPAN&gt;WHITE&lt;/SPAN&gt;)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;        paint.setTextSize(&lt;SPAN&gt;150&lt;/SPAN&gt;)&lt;SPAN&gt;; &lt;/SPAN&gt;&lt;SPAN&gt;// Adjust this value according to your preference&lt;BR /&gt;&lt;/SPAN&gt;        paint.setAntiAlias(&lt;SPAN&gt;true&lt;/SPAN&gt;)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;// Set the font to bold&lt;BR /&gt;&lt;/SPAN&gt;        paint.setTypeface(Typeface.&lt;SPAN&gt;create&lt;/SPAN&gt;(Typeface.&lt;SPAN&gt;DEFAULT&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;Typeface.&lt;SPAN&gt;BOLD&lt;/SPAN&gt;))&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;// Set the coordinates for the left bottom corner&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;float &lt;/SPAN&gt;x = &lt;SPAN&gt;50&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;        float &lt;/SPAN&gt;y = combinedBitmap.getHeight() - &lt;SPAN&gt;50&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        canvas.drawText(addressText&lt;SPAN&gt;, &lt;/SPAN&gt;x&lt;SPAN&gt;, &lt;/SPAN&gt;y&lt;SPAN&gt;, &lt;/SPAN&gt;paint)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        saveCombinedImage(combinedBitmap&lt;SPAN&gt;, &lt;/SPAN&gt;photoFile)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;    }&lt;BR /&gt;&lt;BR /&gt;    &lt;SPAN&gt;private int &lt;/SPAN&gt;&lt;SPAN&gt;getRotationAngle&lt;/SPAN&gt;(String imagePath) {&lt;BR /&gt;        ExifInterface exifInterface&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;        try &lt;/SPAN&gt;{&lt;BR /&gt;            exifInterface = &lt;SPAN&gt;new &lt;/SPAN&gt;ExifInterface(imagePath)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;        } &lt;SPAN&gt;catch &lt;/SPAN&gt;(IOException e) {&lt;BR /&gt;            e.printStackTrace()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;            return &lt;/SPAN&gt;&lt;SPAN&gt;0&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;        }&lt;BR /&gt;&lt;BR /&gt;        &lt;SPAN&gt;int &lt;/SPAN&gt;orientation = exifInterface.getAttributeInt(ExifInterface.&lt;SPAN&gt;TAG_ORIENTATION&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;ExifInterface.&lt;SPAN&gt;ORIENTATION_NORMAL&lt;/SPAN&gt;)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;        switch &lt;/SPAN&gt;(orientation) {&lt;BR /&gt;            &lt;SPAN&gt;case &lt;/SPAN&gt;ExifInterface.&lt;SPAN&gt;ORIENTATION_ROTATE_90&lt;/SPAN&gt;:&lt;BR /&gt;                &lt;SPAN&gt;return &lt;/SPAN&gt;&lt;SPAN&gt;90&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;            case &lt;/SPAN&gt;ExifInterface.&lt;SPAN&gt;ORIENTATION_ROTATE_180&lt;/SPAN&gt;:&lt;BR /&gt;                &lt;SPAN&gt;return &lt;/SPAN&gt;&lt;SPAN&gt;180&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;            case &lt;/SPAN&gt;ExifInterface.&lt;SPAN&gt;ORIENTATION_ROTATE_270&lt;/SPAN&gt;:&lt;BR /&gt;                &lt;SPAN&gt;return &lt;/SPAN&gt;&lt;SPAN&gt;270&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;            default&lt;/SPAN&gt;:&lt;BR /&gt;                &lt;SPAN&gt;return &lt;/SPAN&gt;&lt;SPAN&gt;0&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;        }&lt;BR /&gt;    }&lt;BR /&gt;&lt;BR /&gt;    &lt;SPAN&gt;private &lt;/SPAN&gt;Bitmap &lt;SPAN&gt;rotateBitmap&lt;/SPAN&gt;(Bitmap bitmap&lt;SPAN&gt;, int &lt;/SPAN&gt;angle) {&lt;BR /&gt;        Matrix matrix = &lt;SPAN&gt;new &lt;/SPAN&gt;Matrix()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;        matrix.postRotate(angle)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;        return &lt;/SPAN&gt;Bitmap.&lt;SPAN&gt;createBitmap&lt;/SPAN&gt;(bitmap&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;0&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;0&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;bitmap.getWidth()&lt;SPAN&gt;, &lt;/SPAN&gt;bitmap.getHeight()&lt;SPAN&gt;, &lt;/SPAN&gt;matrix&lt;SPAN&gt;, true&lt;/SPAN&gt;)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;    }&lt;BR /&gt;&lt;BR /&gt;    &lt;SPAN&gt;private void &lt;/SPAN&gt;&lt;SPAN&gt;saveCombinedImage&lt;/SPAN&gt;(Bitmap combinedBitmap&lt;SPAN&gt;, &lt;/SPAN&gt;File photoFile) {&lt;BR /&gt;        &lt;SPAN&gt;try &lt;/SPAN&gt;{&lt;BR /&gt;            FileOutputStream out = &lt;SPAN&gt;new &lt;/SPAN&gt;FileOutputStream(photoFile)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;            combinedBitmap.compress(Bitmap.CompressFormat.&lt;SPAN&gt;JPEG&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;100&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;out)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;            out.flush()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;            out.close()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;        } &lt;SPAN&gt;catch &lt;/SPAN&gt;(IOException e) {&lt;BR /&gt;            e.printStackTrace()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;            runOnUiThread(() -&amp;gt; Toast.&lt;SPAN&gt;makeText&lt;/SPAN&gt;(MainActivity.&lt;SPAN&gt;this, &lt;/SPAN&gt;&lt;SPAN&gt;"Error combining image with address: " &lt;/SPAN&gt;+ &lt;SPAN&gt;e&lt;/SPAN&gt;.getMessage()&lt;SPAN&gt;, &lt;/SPAN&gt;Toast.&lt;SPAN&gt;LENGTH_SHORT&lt;/SPAN&gt;).show())&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;        }&lt;BR /&gt;    }&lt;BR /&gt;&lt;BR /&gt;    &lt;SPAN&gt;private void &lt;/SPAN&gt;&lt;SPAN&gt;uploadToDropbox&lt;/SPAN&gt;(File photoFile) {&lt;BR /&gt;        &lt;SPAN&gt;// Check if the file exists before attempting to upload&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;if &lt;/SPAN&gt;(photoFile == &lt;SPAN&gt;null &lt;/SPAN&gt;|| !photoFile.exists()) {&lt;BR /&gt;            runOnUiThread(() -&amp;gt; Toast.&lt;SPAN&gt;makeText&lt;/SPAN&gt;(MainActivity.&lt;SPAN&gt;this, &lt;/SPAN&gt;&lt;SPAN&gt;"Error: Photo file does not exist"&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;Toast.&lt;SPAN&gt;LENGTH_SHORT&lt;/SPAN&gt;).show())&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;            return;&lt;BR /&gt;&lt;/SPAN&gt;        }&lt;BR /&gt;&lt;BR /&gt;        &lt;SPAN&gt;// Set up Dropbox client&lt;BR /&gt;&lt;/SPAN&gt;        DbxRequestConfig config = DbxRequestConfig.&lt;SPAN&gt;newBuilder&lt;/SPAN&gt;(&lt;SPAN&gt;"Decamera"&lt;/SPAN&gt;).build()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;        DbxClientV2 client = &lt;SPAN&gt;new &lt;/SPAN&gt;DbxClientV2(config&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;DROPBOX_ACCESS_TOKEN&lt;/SPAN&gt;)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;        try &lt;/SPAN&gt;{&lt;BR /&gt;            &lt;SPAN&gt;// Specify the path in Dropbox where you want to upload the file&lt;BR /&gt;&lt;/SPAN&gt;            String remotePath = &lt;SPAN&gt;"/Decamera/" &lt;/SPAN&gt;+ photoFile.getName()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;            &lt;SPAN&gt;// Open the photo file for reading&lt;BR /&gt;&lt;/SPAN&gt;            &lt;SPAN&gt;try &lt;/SPAN&gt;(InputStream in = &lt;SPAN&gt;new &lt;/SPAN&gt;FileInputStream(photoFile)) {&lt;BR /&gt;                &lt;SPAN&gt;// Upload the file to Dropbox&lt;BR /&gt;&lt;/SPAN&gt;                client.files().uploadBuilder(remotePath)&lt;BR /&gt;                        .withMode(WriteMode.&lt;SPAN&gt;ADD&lt;/SPAN&gt;)&lt;BR /&gt;                        .uploadAndFinish(in)&lt;SPAN&gt;; &lt;/SPAN&gt;&lt;SPAN&gt;// This line was missing&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;                // Display a success message&lt;BR /&gt;&lt;/SPAN&gt;                runOnUiThread(() -&amp;gt; Toast.&lt;SPAN&gt;makeText&lt;/SPAN&gt;(MainActivity.&lt;SPAN&gt;this, &lt;/SPAN&gt;&lt;SPAN&gt;"Photo uploaded to Dropbox"&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;Toast.&lt;SPAN&gt;LENGTH_SHORT&lt;/SPAN&gt;).show())&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;            }&lt;BR /&gt;&lt;BR /&gt;        } &lt;SPAN&gt;catch &lt;/SPAN&gt;(Exception e) {&lt;BR /&gt;            e.printStackTrace()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;            &lt;SPAN&gt;// Handle upload errors&lt;BR /&gt;&lt;/SPAN&gt;            runOnUiThread(() -&amp;gt; Toast.&lt;SPAN&gt;makeText&lt;/SPAN&gt;(MainActivity.&lt;SPAN&gt;this, &lt;/SPAN&gt;&lt;SPAN&gt;"Error uploading to Dropbox: " &lt;/SPAN&gt;+ &lt;SPAN&gt;e&lt;/SPAN&gt;.getMessage()&lt;SPAN&gt;, &lt;/SPAN&gt;Toast.&lt;SPAN&gt;LENGTH_SHORT&lt;/SPAN&gt;).show())&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;        }&lt;BR /&gt;    }&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;    &lt;SPAN&gt;private &lt;/SPAN&gt;File &lt;SPAN&gt;createImageFile&lt;/SPAN&gt;() {&lt;BR /&gt;        String timeStamp = &lt;SPAN&gt;new &lt;/SPAN&gt;SimpleDateFormat(&lt;SPAN&gt;"yyyyMMdd_HHmmss"&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;Locale.&lt;SPAN&gt;US&lt;/SPAN&gt;).format(&lt;SPAN&gt;new &lt;/SPAN&gt;Date())&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;        String imageFileName = &lt;SPAN&gt;"JPEG_" &lt;/SPAN&gt;+ timeStamp + &lt;SPAN&gt;"_"&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;        File storageDir = getExternalFilesDir(Environment.&lt;SPAN&gt;DIRECTORY_PICTURES&lt;/SPAN&gt;)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;        try &lt;/SPAN&gt;{&lt;BR /&gt;            &lt;SPAN&gt;if &lt;/SPAN&gt;(storageDir != &lt;SPAN&gt;null&lt;/SPAN&gt;) {&lt;BR /&gt;                File tempFile = File.&lt;SPAN&gt;createTempFile&lt;/SPAN&gt;(imageFileName&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;".jpg"&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;storageDir)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;                &lt;SPAN&gt;// Log the file path for debugging&lt;BR /&gt;&lt;/SPAN&gt;                System.&lt;SPAN&gt;out&lt;/SPAN&gt;.println(&lt;SPAN&gt;"File path: " &lt;/SPAN&gt;+ tempFile.getAbsolutePath())&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;                return &lt;/SPAN&gt;tempFile&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;            } &lt;SPAN&gt;else &lt;/SPAN&gt;{&lt;BR /&gt;                runOnUiThread(() -&amp;gt; Toast.&lt;SPAN&gt;makeText&lt;/SPAN&gt;(MainActivity.&lt;SPAN&gt;this, &lt;/SPAN&gt;&lt;SPAN&gt;"Error creating storage directory"&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;Toast.&lt;SPAN&gt;LENGTH_SHORT&lt;/SPAN&gt;).show())&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;            }&lt;BR /&gt;        } &lt;SPAN&gt;catch &lt;/SPAN&gt;(IOException e) {&lt;BR /&gt;            e.printStackTrace()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;            runOnUiThread(() -&amp;gt; Toast.&lt;SPAN&gt;makeText&lt;/SPAN&gt;(MainActivity.&lt;SPAN&gt;this, &lt;/SPAN&gt;&lt;SPAN&gt;"Error creating photo file: " &lt;/SPAN&gt;+ &lt;SPAN&gt;e&lt;/SPAN&gt;.getMessage()&lt;SPAN&gt;, &lt;/SPAN&gt;Toast.&lt;SPAN&gt;LENGTH_SHORT&lt;/SPAN&gt;).show())&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;        }&lt;BR /&gt;&lt;BR /&gt;        &lt;SPAN&gt;return null;&lt;BR /&gt;&lt;/SPAN&gt;    }&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;    &lt;SPAN&gt;private boolean &lt;/SPAN&gt;&lt;SPAN&gt;allPermissionsGranted&lt;/SPAN&gt;() {&lt;BR /&gt;        &lt;SPAN&gt;for &lt;/SPAN&gt;(String permission : &lt;SPAN&gt;REQUIRED_CAMERA_PERMISSIONS&lt;/SPAN&gt;) {&lt;BR /&gt;            &lt;SPAN&gt;if &lt;/SPAN&gt;(ContextCompat.&lt;SPAN&gt;checkSelfPermission&lt;/SPAN&gt;(&lt;SPAN&gt;this, &lt;/SPAN&gt;permission) != PackageManager.&lt;SPAN&gt;PERMISSION_GRANTED&lt;/SPAN&gt;) {&lt;BR /&gt;                &lt;SPAN&gt;return false;&lt;BR /&gt;&lt;/SPAN&gt;            }&lt;BR /&gt;        }&lt;BR /&gt;        &lt;SPAN&gt;return true;&lt;BR /&gt;&lt;/SPAN&gt;    }&lt;BR /&gt;&lt;BR /&gt;    &lt;SPAN&gt;@Override&lt;BR /&gt;&lt;/SPAN&gt;    &lt;SPAN&gt;public void &lt;/SPAN&gt;&lt;SPAN&gt;onRequestPermissionsResult&lt;/SPAN&gt;(&lt;SPAN&gt;int &lt;/SPAN&gt;requestCode&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;@NonNull &lt;/SPAN&gt;String[] permissions&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;@NonNull &lt;/SPAN&gt;&lt;SPAN&gt;int&lt;/SPAN&gt;[] grantResults) {&lt;BR /&gt;        &lt;SPAN&gt;super&lt;/SPAN&gt;.onRequestPermissionsResult(requestCode&lt;SPAN&gt;, &lt;/SPAN&gt;permissions&lt;SPAN&gt;, &lt;/SPAN&gt;grantResults)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;        if &lt;/SPAN&gt;(requestCode == &lt;SPAN&gt;CAMERA_PERMISSION_REQUEST&lt;/SPAN&gt;) {&lt;BR /&gt;            &lt;SPAN&gt;if &lt;/SPAN&gt;(allPermissionsGranted()) {&lt;BR /&gt;                startCamera()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;                getLastLocation()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;            } &lt;SPAN&gt;else &lt;/SPAN&gt;{&lt;BR /&gt;                runOnUiThread(() -&amp;gt; Toast.&lt;SPAN&gt;makeText&lt;/SPAN&gt;(&lt;SPAN&gt;this, &lt;/SPAN&gt;&lt;SPAN&gt;"Camera permissions not granted."&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;Toast.&lt;SPAN&gt;LENGTH_SHORT&lt;/SPAN&gt;).show())&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;                finish()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;            }&lt;BR /&gt;        }&lt;BR /&gt;    }&lt;BR /&gt;}&lt;/PRE&gt;</description>
      <pubDate>Mon, 27 Nov 2023 15:27:36 GMT</pubDate>
      <guid>https://www.dropboxforum.com/t5/Dropbox-API-Support-Feedback/my-android-app-not-uploading-photo-directly-to-Dropbox-app/m-p/732646#M32369</guid>
      <dc:creator>Ghost Mjrm</dc:creator>
      <dc:date>2023-11-27T15:27:36Z</dc:date>
    </item>
    <item>
      <title>Re: my android app not uploading photo directly to Dropbox app folder using API</title>
      <link>https://www.dropboxforum.com/t5/Dropbox-API-Support-Feedback/my-android-app-not-uploading-photo-directly-to-Dropbox-app/m-p/732650#M32371</link>
      <description>&lt;P&gt;one more thing i got error upload to Dropbox:null and i didn't find the solution yet so i considered that if i make the refresh token doesn't expire it could fix my problem&lt;/P&gt;</description>
      <pubDate>Mon, 27 Nov 2023 15:37:05 GMT</pubDate>
      <guid>https://www.dropboxforum.com/t5/Dropbox-API-Support-Feedback/my-android-app-not-uploading-photo-directly-to-Dropbox-app/m-p/732650#M32371</guid>
      <dc:creator>Ghost Mjrm</dc:creator>
      <dc:date>2023-11-27T15:37:05Z</dc:date>
    </item>
    <item>
      <title>Re: my android app not uploading photo directly to Dropbox app folder using API</title>
      <link>https://www.dropboxforum.com/t5/Dropbox-API-Support-Feedback/my-android-app-not-uploading-photo-directly-to-Dropbox-app/m-p/732656#M32374</link>
      <description>&lt;P&gt;More details about that error would be useful. It's not clear what doesn't work for you actually. The refresh token will just 'extend' your authentication 'life' (if could be said so), nothing more.&lt;/P&gt;</description>
      <pubDate>Mon, 27 Nov 2023 15:44:27 GMT</pubDate>
      <guid>https://www.dropboxforum.com/t5/Dropbox-API-Support-Feedback/my-android-app-not-uploading-photo-directly-to-Dropbox-app/m-p/732656#M32374</guid>
      <dc:creator>Здравко</dc:creator>
      <dc:date>2023-11-27T15:44:27Z</dc:date>
    </item>
    <item>
      <title>Re: my android app not uploading photo directly to Dropbox app folder using API</title>
      <link>https://www.dropboxforum.com/t5/Dropbox-API-Support-Feedback/my-android-app-not-uploading-photo-directly-to-Dropbox-app/m-p/732666#M32376</link>
      <description>&lt;P&gt;&lt;a href="https://www.dropboxforum.com/t5/user/viewprofilepage/user-id/1770682"&gt;@Ghost Mjrm&lt;/a&gt; As Здравко said, it's unclear what the issue is from the information you've provided. If you're having trouble with the Dropbox API, please troubleshoot the issue in your environment and if you need help, share the relevant specific details.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;For example, I see you are calling uploadAndFinish to upload a file. I suggest adding some more logging and/or stepping through with a debugger to inspect what is happening. For example, check if uploadAndFinish is returning a value, and if so, what it is, or if it's raising an exception, and if so, what it is.&lt;/P&gt;</description>
      <pubDate>Mon, 27 Nov 2023 16:14:46 GMT</pubDate>
      <guid>https://www.dropboxforum.com/t5/Dropbox-API-Support-Feedback/my-android-app-not-uploading-photo-directly-to-Dropbox-app/m-p/732666#M32376</guid>
      <dc:creator>Greg-DB</dc:creator>
      <dc:date>2023-11-27T16:14:46Z</dc:date>
    </item>
    <item>
      <title>Re: my android app not uploading photo directly to Dropbox app folder using API</title>
      <link>https://www.dropboxforum.com/t5/Dropbox-API-Support-Feedback/my-android-app-not-uploading-photo-directly-to-Dropbox-app/m-p/732675#M32378</link>
      <description>&lt;P&gt;using logcat i got this system error&lt;/P&gt;&lt;P&gt;W/System.err: android.os.NetworkOnMainThreadException&lt;BR /&gt;at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1513)&lt;BR /&gt;at java.net.Inet6AddressImpl.lookupHostByName(Inet6AddressImpl.java:117)&lt;BR /&gt;at java.net.Inet6AddressImpl.lookupAllHostAddr(Inet6AddressImpl.java:105)&lt;BR /&gt;at java.net.InetAddress.getAllByName(InetAddress.java:1154)&lt;BR /&gt;at com.android.okhttp.Dns$1.lookup(Dns.java:39)&lt;BR /&gt;at com.android.okhttp.internal.http.RouteSelector.resetNextInetSocketAddress(RouteSelector.java:196)&lt;BR /&gt;at com.android.okhttp.internal.http.RouteSelector.nextProxy(RouteSelector.java:144)&lt;BR /&gt;at com.android.okhttp.internal.http.RouteSelector.next(RouteSelector.java:89)&lt;BR /&gt;at com.android.okhttp.internal.http.StreamAllocation.findConnection(StreamAllocation.java:190)&lt;BR /&gt;at com.android.okhttp.internal.http.StreamAllocation.findHealthyConnection(StreamAllocation.java:142)&lt;BR /&gt;at com.android.okhttp.internal.http.StreamAllocation.newStream(StreamAllocation.java:104)&lt;BR /&gt;at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:392)&lt;BR /&gt;at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:325)&lt;BR /&gt;at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:488)&lt;BR /&gt;at com.android.okhttp.internal.huc.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:131)&lt;BR /&gt;at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getOutputStream(HttpURLConnectionImpl.java:262)&lt;BR /&gt;at com.android.okhttp.internal.huc.DelegatingHttpsURLConnection.getOutputStream(DelegatingHttpsURLConnection.java:218)&lt;BR /&gt;at com.android.okhttp.internal.huc.HttpsURLConnectionImpl.getOutputStream(HttpsURLConnectionImpl.java:26)&lt;BR /&gt;at com.dropbox.core.http.StandardHttpRequestor.getOutputStream(StandardHttpRequestor.java:132)&lt;BR /&gt;at com.dropbox.core.http.StandardHttpRequestor.access$000(StandardHttpRequestor.java:29)&lt;BR /&gt;at com.dropbox.core.http.StandardHttpRequestor$Uploader.&amp;lt;init&amp;gt;(StandardHttpRequestor.java:141)&lt;BR /&gt;at com.dropbox.core.http.StandardHttpRequestor.startPostInStreamingMode(StandardHttpRequestor.java:81)&lt;BR /&gt;at com.dropbox.core.http.StandardHttpRequestor.startPostInStreamingMode(StandardHttpRequestor.java:29)&lt;BR /&gt;at com.dropbox.core.v2.DbxRawClientV2.uploadStyle(DbxRawClientV2.java:286)&lt;BR /&gt;at com.dropbox.core.v2.files.DbxUserFilesRequests.upload(DbxUserFilesRequests.java:3795)&lt;BR /&gt;at com.dropbox.core.v2.files.UploadBuilder.start(UploadBuilder.java:154)&lt;BR /&gt;at com.dropbox.core.v2.files.UploadBuilder.start(UploadBuilder.java:20)&lt;BR /&gt;at com.dropbox.core.v2.DbxUploadStyleBuilder.uploadAndFinish(DbxUploadStyleBuilder.java:92)&lt;BR /&gt;at com.example.decamera.MainActivity.uploadToDropbox(MainActivity.java:277)&lt;BR /&gt;at com.example.decamera.MainActivity.access$300(MainActivity.java:57)&lt;BR /&gt;at com.example.decamera.MainActivity$2.onImageSaved(MainActivity.java:173)&lt;BR /&gt;at androidx.camera.core.imagecapture.TakePictureRequest.lambda$onResult$1$androidx-camera-core-imagecapture-TakePictureRequest(TakePictureRequest.java:192)&lt;BR /&gt;at androidx.camera.core.imagecapture.TakePictureRequest$$ExternalSyntheticLambda0.run(Unknown Source:4)&lt;BR /&gt;at android.os.Handler.handleCallback(Handler.java:873)&lt;BR /&gt;at android.os.Handler.dispatchMessage(Handler.java:99)&lt;BR /&gt;at android.os.Looper.loop(Looper.java:214)&lt;BR /&gt;at android.app.ActivityThread.main(ActivityThread.java:7078)&lt;BR /&gt;at java.lang.reflect.Method.invoke(Native Method)&lt;BR /&gt;at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:494)&lt;BR /&gt;at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:964)&lt;/P&gt;</description>
      <pubDate>Mon, 27 Nov 2023 16:48:37 GMT</pubDate>
      <guid>https://www.dropboxforum.com/t5/Dropbox-API-Support-Feedback/my-android-app-not-uploading-photo-directly-to-Dropbox-app/m-p/732675#M32378</guid>
      <dc:creator>Ghost Mjrm</dc:creator>
      <dc:date>2023-11-27T16:48:37Z</dc:date>
    </item>
    <item>
      <title>Re: my android app not uploading photo directly to Dropbox app folder using API</title>
      <link>https://www.dropboxforum.com/t5/Dropbox-API-Support-Feedback/my-android-app-not-uploading-photo-directly-to-Dropbox-app/m-p/732679#M32379</link>
      <description>&lt;P&gt;NetworkOnMainThreadException. I've added an AsyncTask for Dropbox upload and the problem got fixed&amp;nbsp;&lt;/P&gt;&lt;P&gt;thanks&lt;/P&gt;&lt;P&gt;now i want to add offline access token that doesn´t expire&lt;/P&gt;</description>
      <pubDate>Mon, 27 Nov 2023 17:01:39 GMT</pubDate>
      <guid>https://www.dropboxforum.com/t5/Dropbox-API-Support-Feedback/my-android-app-not-uploading-photo-directly-to-Dropbox-app/m-p/732679#M32379</guid>
      <dc:creator>Ghost Mjrm</dc:creator>
      <dc:date>2023-11-27T17:01:39Z</dc:date>
    </item>
    <item>
      <title>Re: my android app not uploading photo directly to Dropbox app folder using API</title>
      <link>https://www.dropboxforum.com/t5/Dropbox-API-Support-Feedback/my-android-app-not-uploading-photo-directly-to-Dropbox-app/m-p/732701#M32381</link>
      <description>&lt;P&gt;I'm glad to hear you've sorted out the issue with the NetworkOnMainThreadException.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;For information on using refresh tokens, please refer to the resources in my earlier response.&lt;/P&gt;</description>
      <pubDate>Mon, 27 Nov 2023 19:10:44 GMT</pubDate>
      <guid>https://www.dropboxforum.com/t5/Dropbox-API-Support-Feedback/my-android-app-not-uploading-photo-directly-to-Dropbox-app/m-p/732701#M32381</guid>
      <dc:creator>Greg-DB</dc:creator>
      <dc:date>2023-11-27T19:10:44Z</dc:date>
    </item>
    <item>
      <title>Re: my android app not uploading photo directly to Dropbox app folder using API</title>
      <link>https://www.dropboxforum.com/t5/Dropbox-API-Support-Feedback/my-android-app-not-uploading-photo-directly-to-Dropbox-app/m-p/732895#M32388</link>
      <description>&lt;P&gt;thank you both &lt;SPAN class=""&gt;&lt;A href="https://www.dropboxforum.com/t5/user/viewprofilepage/user-id/422790" target="_self"&gt;&lt;SPAN class=""&gt;Здравко&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt; and &lt;SPAN class=""&gt;&lt;A href="https://www.dropboxforum.com/t5/user/viewprofilepage/user-id/10" target="_self"&gt;&lt;SPAN class=""&gt;Greg-DB&amp;nbsp;&lt;/SPAN&gt;&lt;/A&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 28 Nov 2023 10:13:12 GMT</pubDate>
      <guid>https://www.dropboxforum.com/t5/Dropbox-API-Support-Feedback/my-android-app-not-uploading-photo-directly-to-Dropbox-app/m-p/732895#M32388</guid>
      <dc:creator>Ghost Mjrm</dc:creator>
      <dc:date>2023-11-28T10:13:12Z</dc:date>
    </item>
  </channel>
</rss>

