Je n'ai pas trouvé d'exemple pratique qui concerne spécifiquement l'enregistrement du chemin de fichier d'une image que vous venez de prendre avec l'application appareil photo dans une base de données SQLite dans votre application.Enregistrement du chemin du fichier image vers la base de données sqlite
J'ai vu du code pour enregistrer une image à partir d'une source HTML ... pas bon! Mon problème est que j'ai l'URI mais honnêtement, je ne peux pas comprendre avec les données disponibles (guide de dev, Stack Overflow questions) comment insérer ce chemin de fichier à ma colonne de base de données.
Voici mon code dans lequel j'essaie de définir un champ de texte d'édition afin que le chemin puisse être sauvegardé dans la base de données. J'ai essayé ceci dans l'émulateur:
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == TAKE_PHOTO_CODE && resultCode == RESULT_OK) {
Bitmap x = (Bitmap) data.getExtras().get("data");
File storagePath = new File(Environment.getExternalStorageDirectory() +
"/DCIM/GPAA/");
storagePath.mkdirs();
File myImage = new File(storagePath,
System.currentTimeMillis() + ".jpg");
try {
FileOutputStream out = new FileOutputStream(myImage);
x.compress(Bitmap.CompressFormat.JPEG, 80, out);
Uri outputFileUri = Uri.fromFile(myImage);
mnotesText = (EditText)findViewById(R.id.notes);
mnotesText.setText (outputFileUri.toString());
((ImageView)findViewById(R.id.photoResultView)).setImageBitmap(x);
out.close();
Toast.makeText(Review.this,
"Image saved: " + outputFileUri.toString(),
Toast.LENGTH_LONG).show();
} catch (FileNotFoundException e) {
} catch (IOException e){
}
}
}
Avec ce code le toast vérifie que la chaîne est disponible et correcte. Cependant, l'entrée sur le mnotesText.setText (outputFileUri.toString());
fonctionne dans l'émulateur. Mais curieusement, cela ne marchera pas au téléphone.
Si votre problème est résolu, vous devez poster la solution comme une réponse (oui, il est parfaitement acceptable pour répondre à votre propre question). Si vous souhaitez attendre une meilleure réponse, ne l'acceptez pas. (Vous remarquerez que des milliers de questions ont été résolues ici, mais très peu d'entre elles ont "RESOLU" dans le titre.) –