<?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 Re: 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/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>
    <dc:creator>Здравко</dc:creator>
    <dc:date>2023-11-27T15:44:27Z</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>

