E / BitmapFactory (нет такого файла или каталога) Android API25 - PullRequest
0 голосов
/ 04 октября 2019

Добрый день, у меня есть следующий код в Android для того, чтобы сделать фотографию и показать в ImageView, фотография файла находится в пути, когда я проверяю с помощью filemanager, но не отображается в ImageView и выдает следующее сообщение:

E / BitmapFactory: невозможно декодировать поток: java.io.FileNotFoundException: /storage/emulated/0/S3TAUDIT/photos/S3actual.png (нет такого файла или каталога)

Пожалуйста, мне нужна ваша помощь для завершения моего приложения. Я использую API 25 Android 7, права доступа, options.inJustDecodeBounds. Я просмотрел все сообщения с этим типом ошибки и не нашел решения.

Большое спасибо.

package com.example.jorge.s3taudit;

import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.media.MediaScannerConnection;
import android.net.Uri;
import android.os.Environment;
import android.os.StrictMode;
import android.provider.MediaStore;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Base64;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.RadioButton;

import java.io.File;

public class PICSSECTOR extends AppCompatActivity {

    private final String carpeta_raiz="S3TAUDIT/";
    private final String ruta_imagen=carpeta_raiz+"photos";
    String path;

    ImageView pics1actual;

 protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_picssector);

public void pics1actual(View view) {
        StrictMode.VmPolicy.Builder builder = new StrictMode.VmPolicy.Builder();
        StrictMode.setVmPolicy(builder.build());
        File pics1actualpng= new File(Environment.getExternalStorageDirectory(),ruta_imagen);
        boolean isCreada =pics1actualpng.exists();
        String nombre_imagen ="";
        if (isCreada == false){
            isCreada = pics1actualpng.mkdirs();
            nombre_imagen = "S3actual.png";
        }
        if (isCreada==true){
            nombre_imagen = "S3actual.png";
        }
        path = Environment.getExternalStorageDirectory()+File.separator +ruta_imagen+File.separator+ nombre_imagen;

        File pics1actual =new File(path);
        Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
        intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(pics1actual));
        startActivityForResult(intent, 0);
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
            if (requestCode == 0) {
                MediaScannerConnection.scanFile(this, new String[]{path}, null,
                        new MediaScannerConnection.OnScanCompletedListener() {
                            @Override
                            public void onScanCompleted(String s, Uri uri) {
                                Log.i("RUTA de almacenamiento", "Path: " + path);
                            }
                        });
                BitmapFactory.Options options = new BitmapFactory.Options();
                options.inJustDecodeBounds = false;
                ImageView pics1actual = (ImageView) findViewById(R.id.s1actual);
                Bitmap bitmap = BitmapFactory.decodeFile(path,options);
                pics1actual.setImageBitmap(bitmap);
          }

    }
}

XML только для этого действия:

 <ImageView
                android:id="@+id/s1actual"
                android:layout_width="0dp"
                android:layout_height="150dp"
                android:layout_margin="4dp"
                android:layout_weight="1"
                android:background="#DDDDDD" />

 <Button
                android:id="@+id/ButtonPICS1actual"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:drawableStart="@drawable/ic_stat_name"
                android:onClick="pics1actual"
                android:text="PHOTO"
                android:textSize="20dp" />

Это изображение у меня в отладчике

enter image description here

...