因此,我正在拍攝一張照片,然後我試圖將其保存到該路徑,但我無法訪問它。試過這個<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塊,程序跳出試試,一號線。
我希望這是有道理的。英語不是我的主要語言。任何幫助將不勝感激。
所以沒有人知道如何解決它?偉大的... – user3842769 2014-10-06 02:11:49
請張貼您的日誌貓,並嘗試添加讀取外部存儲的權限 – 2014-10-06 02:34:00
好的,將這樣做。當我把我的電腦拿回來時,我會試試這個 – user3842769 2014-10-07 22:50:59