Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class AddArticle extends AppCompatActivity {
- private static final int COD_FOTO = 20;
- private static final String CARPETA_PRINCIPAL = "Hipack/";
- private static final String CARPETA_IMAGEN = "HipackImages";
- private static final String DIRECTORIO_IMAGEN = CARPETA_PRINCIPAL + CARPETA_IMAGEN;
- private String path;
- File fileImagen;
- Bitmap bitmap;
- private ImageView imgProducto;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_add_article);
- setTitle("Agregar Artículo");
- imgProducto = (ImageView)findViewById(R.id.imageProductoAddA);
- }
- public void tomarFoto(View vista){
- File miFile = new File(Environment.getExternalStorageDirectory(), DIRECTORIO_IMAGEN);
- boolean isCreada = miFile.exists();
- String nombreImagen = "";
- if (!isCreada){
- isCreada = miFile.mkdirs();
- } if (isCreada){
- nombreImagen = (System.currentTimeMillis()/1000) + ".jpg";
- }
- fileImagen = new File(Environment.getExternalStorageDirectory(), nombreImagen + ".jpg");
- Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
- intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(fileImagen)); // Aqui me da el error
- startActivityForResult(intent, COD_FOTO);
- }
- @Override
- protected void onActivityResult(int requestCode, int resultCode, Intent data) {
- super.onActivityResult(requestCode, resultCode, data);
- switch (requestCode){
- case COD_FOTO:
- MediaScannerConnection.scanFile(this, new String[]{path}, null,
- new MediaScannerConnection.OnScanCompletedListener() {
- @Override
- public void onScanCompleted(String path, Uri uri) {
- Log.i("Ruta de almacenamiento", "Path: "+path);
- }
- });
- bitmap = BitmapFactory.decodeFile(path);
- imgProducto.setImageBitmap(bitmap);
- break;
- }
- }
- }
- E/AndroidRuntime: FATAL EXCEPTION: main
- Process: com.example.humberto.hipackpro2, PID: 31387
- java.lang.IllegalStateException: Could not execute method for android:onClick
- at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:389)
- at android.view.View.performClick(View.java:6305)
- at android.view.View$PerformClick.run(View.java:24840)
- at android.os.Handler.handleCallback(Handler.java:790)
- at android.os.Handler.dispatchMessage(Handler.java:99)
- at android.os.Looper.loop(Looper.java:164)
- at android.app.ActivityThread.main(ActivityThread.java:6501)
- at java.lang.reflect.Method.invoke(Native Method)
- at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
- at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
- Caused by: java.lang.reflect.InvocationTargetException
- at java.lang.reflect.Method.invoke(Native Method)
- at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:384)
- at android.view.View.performClick(View.java:6305)
- at android.view.View$PerformClick.run(View.java:24840)
- at android.os.Handler.handleCallback(Handler.java:790)
- at android.os.Handler.dispatchMessage(Handler.java:99)
- at android.os.Looper.loop(Looper.java:164)
- at android.app.ActivityThread.main(ActivityThread.java:6501)
- at java.lang.reflect.Method.invoke(Native Method)
- at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
- at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
- Caused by: android.os.FileUriExposedException: file:///storage/emulated/0/1537456175.jpg.jpg exposed beyond app through ClipData.Item.getUri()
- at android.os.StrictMode.onFileUriExposed(StrictMode.java:1962)
- at android.net.Uri.checkFileUriExposed(Uri.java:2356)
- at android.content.ClipData.prepareToLeaveProcess(ClipData.java:942)
- at android.content.Intent.prepareToLeaveProcess(Intent.java:9850)
- at android.content.Intent.prepareToLeaveProcess(Intent.java:9835)
- at android.app.Instrumentation.execStartActivity(Instrumentation.java:1612)
- at android.app.Activity.startActivityForResult(Activity.java:4514)
- at android.support.v4.app.BaseFragmentActivityApi16.startActivityForResult(BaseFragmentActivityApi16.java:54)
- at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:68)
- at android.app.Activity.startActivityForResult(Activity.java:4472)
- at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:751)
- at com.example.humberto.hipackpro2.AddArticle.tomarFoto(AddArticle.java:206) //Aqui me manda a la línea del código
- at java.lang.reflect.Method.invoke(Native Method)
- at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:384)
- at android.view.View.performClick(View.java:6305)
- at android.view.View$PerformClick.run(View.java:24840)
- at android.os.Handler.handleCallback(Handler.java:790)
- at android.os.Handler.dispatchMessage(Handler.java:99)
- at android.os.Looper.loop(Looper.java:164)
- at android.app.ActivityThread.main(ActivityThread.java:6501)
- at java.lang.reflect.Method.invoke(Native Method)
- at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
- at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
- @Override
- protected void onActivityResult(int requestCode, int resultCode, Intent data) {
- super.onActivityResult(requestCode, resultCode, data);
- switch (requestCode) {
- case COD_FOTO:
- if (resultCode == RESULT_OK) {
- Uri uri = data.getData();
- String[] projection = {MediaStore.Images.Media.DATA};
- Cursor cursor = getContentResolver().query(uri, projection, null, null, null);
- cursor.moveToFirst();
- int columnIndex = cursor.getColumnIndex(projection[0]);
- String filepath = cursor.getString(columnIndex);
- cursor.close();
- bitmap = BitmapFactory.decodeFile(filepath);
- imgProducto.setImageBitmap(bitmap);
- }
- break;
- default:
- break;
- }
- }
Add Comment
Please, Sign In to add comment