0
我試圖在使用攝像機的應用程序的某個活動中拍照,保存並返回文件位置以供進一步使用。 但是,當我在相機活動中按OK按鈕時,沒有任何反應(儘管取消工作)。Monodroid - 攝像機活動未返回
我正在使用模擬器。
有用來調用攝像頭活動代碼:
FindViewById<Button>(Resource.Id.exSetPicture).Click += delegate {
var dir = new Java.IO.File (
Android.OS.Environment.GetExternalStoragePublicDirectory (
Android.OS.Environment.DirectoryPictures), "MySuperbPictures");
if (!dir.Exists()) {
dir.Mkdirs();
}
_file = new Java.IO.File (dir, String.Format ("Picture\t{0}.jpg", Guid.NewGuid()));
Intent cameraIntent = new Intent(Android.Provider.MediaStore.ActionImageCapture);
cameraIntent.PutExtra (MediaStore.ExtraOutput, Android.Net.Uri.FromFile (_file));
StartActivityForResult(cameraIntent, SET_NEW_PICTURE);
};
解決方案我發現,似乎沒有爲我工作:
- 檢查應用程序的權限(照相機,外部存儲設置)
- 確保文件夾已創建(斷點確實表明它不會進入if(!dir.Exists())
- 將IntentExtra設置爲新文件而不是直接TLY Uri.FromFile(文件夾)
我有點卡住現在..這可能是一些非常愚蠢的,但我不知道爲什麼它不工作..
幫助將apreciated:P
編輯:
這是我的 「OnActivityResult」 有關的部分:
protected override void OnActivityResult (int requestCode, Result resultCode, Android.Content.Intent data)
{
int ResultID = 0;
base.OnActivityResult (requestCode, resultCode, data);
if (data != null) {
if(resultCode == Result.Ok) {
switch (requestCode) {
case SET_NEW_PICTURE:
var contentUri = Android.Net.Uri.FromFile (_file);
PhotoLocation = contentUri.ToString();
FindViewById<Button>(Resource.Id.exViewPhoto).Visibility = Android.Views.ViewStates.Visible;
break;
default:
break;
}
}
}
}
請確定你正在重寫'onActivityResult'以從相機Activity獲取結果嗎? –
嘿,我做了,然後我可能做錯了:P 我將代碼添加到第一篇文章。 (刪除關於其他活動返回的部分) – MagiKruiser
它不會當我點擊確定,但它確實當我按取消... 我真的不明白它。 (我在OnActivityResult中設置了一個斷點來檢查) – MagiKruiser