2014-10-06 1091 views
2

因此,我正在拍攝一張照片,然後我試圖將其保存到該路徑,但我無法訪問它。試過這個<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>並沒有工作。FileNotFoundException:/storage/emulated/0/Pictures/pic.jpg:打開失敗:EACCES(權限被拒絕)

這就是我如何拍照並保存它。

private void takePic(View v) 
    { 
     // se usa para usar algun app del phone para usar sus cosas para hacer lo que queremos envez de crearlo from scratch 
     Intent intent = new Intent("android.media.action.IMAGE_CAPTURE"); 

     //guarda la imagen 
     File imgFile = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES),"pic.jpg"); 

     imgUri = Uri.fromFile(imgFile); 

     intent.putExtra(MediaStore.EXTRA_OUTPUT, imgUri); 

     //le dice que use el app de camare y le dice que use la camara de atras 1 = la de atras 
     startActivityForResult(intent, TAKE_PICTURE); 
    } 

    //hay que hacerle override para que haga algo que no es parte del metedo. 
    //Por ejemplo quiero que guarde la imagen donde yo quiera y no donde tiene por default. 
    @Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent intent) 
    { 
     super.onActivityResult(requestCode, resultCode, intent); 

     //si presiono el buton de ok 
     if(resultCode == Activity.RESULT_OK) 
     { 
      Uri selectedImg = imgUri; 

      // te deja saber que termino de usar la imagen 
      getContentResolver().notifyChange(selectedImg, null); 

      ImageView imgV = (ImageView)findViewById(R.id.SteerinRackImgVw); 

      // lo mismo de horita 
      ContentResolver cR = getContentResolver(); 

      //tiene la data de la img 
      Bitmap btMp; 

      try 
      { 
       btMp = MediaStore.Images.Media.getBitmap(cR, selectedImg); 

       imgV.setImageBitmap(btMp); 

       //display a small popup de lo que esta pasando 
       Toast.makeText(TestMain.this,selectedImg.toString(), Toast.LENGTH_LONG).show(); 
      } 

      catch (Exception e) 
      { 
       Log.e("error", e.toString()); 
      } 
     } 
    } 

希望我沒有錯過任何括號:P

當我調試try和catch塊,程序跳出試試,一號線。

我希望這是有道理的。英語不是我的主要語言。任何幫助將不勝感激。

+0

所以沒有人知道如何解決它?偉大的... – user3842769 2014-10-06 02:11:49

+0

請張貼您的日誌貓,並嘗試添加讀取外部存儲的權限 – 2014-10-06 02:34:00

+0

好的,將這樣做。當我把我的電腦拿回來時,我會試試這個 – user3842769 2014-10-07 22:50:59

回答

4

沒有logcat的這將是很難調試,但你可以嘗試這對於初學者

android.permission.READ_EXTERNAL_STORAGE 

你有寫權限,但不能讀取。看到這個更多的細節Android Permissions

+4

錯! 任何聲明WRITE_EXTERNAL_STORAGE權限的應用程序都被隱式授予READ_EXTERNAL_STORAGE權限。 – 2014-12-12 18:53:53

+0

如果您看到原始問題,則僅使用android.permission.WRITE_EXTERNAL_STORAGE。這就是爲什麼我添加了讀取權限。對 – 2015-05-06 16:44:28

相關問題