Team,
Trying to Work on Camera Taking Picture but everytime getting result as Android.App.Result.Canceled and data as null on OnActivityresult function.
TakePicture.Click += delegate
{
if (slabDetails != null)
{
File SlabFile = new File(Constants.INVENTORY_PATH, slabDetails.ExtSlabNo + ".jpg");
//if (SlabFile.Exists()) { SlabFile.Delete(); }
//SlabFile.CreateNewFile();
imageUri = Uri.FromFile(SlabFile);
//var documentsDirectry = ApplicationContext.GetExternalFilesDir(Environment.DirectoryPictures);
//File cameraFile = new Java.IO.File(documentsDirectry, "default_image" + ".jpg");
//Uri photoURI = Uri.FromFile(cameraFile);
Intent camIntent = new Intent(MediaStore.ActionImageCapture);
camIntent.AddFlags(ActivityFlags.ClearTop | ActivityFlags.SingleTop);
camIntent.PutExtra(MediaStore.ExtraOutput, imageUri);
camIntent.AddFlags(ActivityFlags.GrantReadUriPermission);
camIntent.AddFlags(ActivityFlags.GrantWriteUriPermission);
StartActivityForResult(camIntent, 2);
}
};
On Activity Result Function
protected override void OnActivityResult(int requestCode, Result resultCode, Intent data)
{
base.OnActivityResult(requestCode, resultCode, data);
switch (requestCode)
{
case 2:// From Camera
if (resultCode == Result.Ok)
{
try
{
new SyncDataTask(this, data, 1, db).Execute();
}
catch (Exception ex)
{
var method = System.Reflection.MethodBase.GetCurrentMethod();
var methodName = method.Name;
var className = method.ReflectedType.Name;
MainActivity.SaveLogReport(className, methodName, ex);
}
catch (OutOfMemoryError ex)
{
ex.PrintStackTrace();
}
}
}
}
Using Xamarin Native Android deploying in Android API 33 and Android 12 Version tablets. It Return the Image and Works good on android version 11 tablets.
Provided permissions in android manifest file as per Android 13 Tutorials
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
<uses-permission android:name="android.permission.READ_MEDIA_VIDEO" />
<uses-permission android:name="android.permission.READ_MEDIA_AUDIO" />
<uses-permission android:name="android.permission.MANAGE_MEDIA" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />
<uses-permission android:name="android.permission.SET_DEBUG_APP" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />
So, I would like to return Android.App.Result.Ok and data in ActivityResult. So, Do anybody faced the issue. Please help me in this Case. Thanks in Advance.