2017-03-16 2 views
0

J'essaie d'appeler la caméra, avec certains arguments, avec quelques données supplémentaires dont mon activité a besoin pour traiter la photo retournée, J'ai utilisé ce code:Xamarin Android: Envoyer des données à une activité externe et les récupérer du résultat

Intent intent = new Intent(MediaStore.ActionImageCapture); 
Java.IO.File file = new Java.IO.File(System.IO.Path.Combine(App.DatabaseFolder, ATTACHMENT_FILE)); 
intent.PutExtra(MediaStore.ExtraOutput, Android.Net.Uri.FromFile(file)); 
intent.PutExtra(MediaStore.ExtraScreenOrientation, (int)ScreenOrientation.Portrait); 
intent.PutExtra("source_id", id); // here I put the extra data 
StartActivityForResult(intent, CAMERA_INTENT_REQUEST); 

maintenant je suis en train de récupérer l'ID envoyé à l'activité lorsque le résultat revient

est-il un moyen de le faire? J'ai essayé

if (requestCode = CAMERA_INTENT_REQUEST && resultCode == Result.Ok) { 
    data.GetIntExtra("source_id", -1); 
} 

mais je ne peux pas sembler récupérer le résultat

comme solution de contournement j'ai réussi à faire ce qui précède soit par l'enregistrement de l'ID dans le code de résultat ou le nom du fichier, mais je préfère trouver un autre moyen, y en a-t-il un?

Si vous trouvez le code bizarre, il est écrit dans Xamarin Android, mais il est encore une question android

merci à l'avance pour toute aide que vous pouvez fournir

Répondre

1

Vous ne pouvez pas faire cela. L'appareil photo est une application externe et ne collecte pas vos "informations supplémentaires".

Plus d'infos ici: AndroidDeveloer - Camera API

Donc, dans votre cas, vous devez stocker votre identifiant dans une variable globale ou SharedPreferences