Example #1
0
        protected override void OnActivityResult(int requestCode, [GeneratedEnum] Result resultCode, Intent data)
        {
            base.OnActivityResult(requestCode, resultCode, data);
            if (requestCode == ACTIVITY_REQUEST_ID && resultCode == Result.Ok)
            {
                // obtain image view that will display image of the document
                ImageView documentImageView = this.FindViewById <ImageView>(Resource.Id.documentImageView);

                // unfortunately, C# does not support covariant return types, so binding
                // of AAR loses the return type of the Java's GetResult method. Therefore, a cast is required.
                // This is always a safe cast, since the original object in Java is of correct type - type
                // information was lost during conversion to C# due to https://github.com/xamarin/java.interop/pull/216
                var mrtdResult = (MrtdRecognizer.Result)mrtdRecognizer.GetResult();
                var eudlResult = (EudlRecognizer.Result)eudlRecognizer.GetResult();
                var usdlResult = (UsdlRecognizer.Result)usdlRecognizer.GetResult();

                var message = "";

                // we can check ResultState property of the Result to see if the result contains scanned information
                if (mrtdResult.ResultState == Recognizer.Result.State.Valid)
                {
                    message += "MRTD recognizer result:\n" +
                               "PrimaryID: " + mrtdResult.MrzResult.PrimaryId + "\n" +
                               "SecondaryID: " + mrtdResult.MrzResult.SecondaryId + "\n" +
                               "Date of birth: " + mrtdResult.MrzResult.DateOfBirth.Date.Day + "." +
                               mrtdResult.MrzResult.DateOfBirth.Date.Month + "." +
                               mrtdResult.MrzResult.DateOfBirth.Date.Year + ".\n";

                    // image is now part of the result - no need for having separate image listener
                    documentImageView.SetImageBitmap(mrtdResult.FullDocumentImage.ConvertToBitmap());
                }
                if (eudlResult.ResultState == Recognizer.Result.State.Valid)
                {
                    message += "EUDL recognizer result:\n" +
                               "First name: " + eudlResult.FirstName + "\n" +
                               "Last name: " + eudlResult.LastName + "\n" +
                               "Birth data: " + eudlResult.BirthData + "\n" +
                               "Country: " + eudlResult.Country.ToString() + "\n";
                    documentImageView.SetImageBitmap(eudlResult.FullDocumentImage.ConvertToBitmap());
                }
                if (usdlResult.ResultState == Recognizer.Result.State.Valid)
                {
                    message += "USDL recognizer result:\n" +
                               "First name: " + usdlResult.FirstName + "\n" +
                               "Last name: " + usdlResult.LastName + "\n" +
                               "Address: " + usdlResult.Address + "\n";
                }

                AlertDialog.Builder alert = new AlertDialog.Builder(this);
                alert.SetTitle("BlinkID Results");
                alert.SetPositiveButton("OK", (senderAlert, args) => { });
                alert.SetMessage(message);
                alert.Show();
            }
        }