Я новичок в разработке Android Studio и столкнулся с проблемой при попытке сохранить путь к изображению в базе данных SQLite.
Я получаю сообщение об ошибке «java.io.FileNotFoundException», хотя путь и файл такие же, как в папке телефонов,
Я не понимаю, почему у меня такая проблема, может кто-нибудь объяснить мне, что я скучаю?
java.io.FileNotFoundException
Column_index: 0
DataBaseHelper.java
public boolean InsertImage(File x){
SQLiteDatabase db = this.getWritableDatabase();
try {
FileInputStream fs = new FileInputStream(x);
byte [] imgbyte = new byte[fs.available()];
fs.read(imgbyte);
ContentValues contentValues = new ContentValues();
contentValues.put("img",imgbyte);
db.insert(TABLE_NAME_USERS,"Avatar",contentValues);
fs.close();
return true;
} catch (IOException e){
e.printStackTrace();
return false;
}
}
SignIn.java
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data){
ImageView AvatarImage = findViewById(R.id.AvatarImage);
super.onActivityResult(requestCode, resultCode,data);
if(requestCode == REQUEST_CODE && data != null && data.getData() != null){
Uri uri = data.getData();
String path = uri.getPath(); // "/mnt/sdcard/FileName.mp3"
File file = new File((path));
String x = getPath(uri);
myDb.InsertImage(file);
try {
Bitmap bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(),uri);
AvatarImage.setImageBitmap(bitmap);
} catch (IOException e) {
e.printStackTrace();
}
}
}
public String getPath(Uri uri){
if (uri==null)return null;
String [] projection = {MediaStore.Images.Media.DATA};
Cursor cursor = managedQuery(uri,projection,null,null,null);
if (cursor!=null){
int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
String dede = cursor.getString(column_index);
return cursor.getString(column_index);
}
return uri.getPath();
}