I have this error "ContextCompat does not exist in the current context" and a "PackageManager does not contain PERMISSION_GRANTED definition"

0

Hello, when I create the method, the error "ContextCompat does not exist in the current context" and a "PackageManager does not contain PERMISSION_GRANTED definition" .. know if I should add any special directive. Thanks

METHOD

 private void CheckSMSStatePermission()
{

    int PermissionCheck = ContextCompat.CheckSelfPermission(this, Manifest.Permission.SendSms);
    if (PermissionCheck != PackageManager.PERMISSION_GRANTED)
    {
        Toast.MakeText(Activity,  "No se tiene permiso para enviar SMS.", ToastLength.Short).Show();
        ActivityCompat.requestPermissions(this, new String[] { Manifest.Permission.SendSms }, 1);
    }
    else
    {
        Toast.MakeText(Activity, "Se tiene permiso para enviar SMS!", ToastLength.Short).Show();
    }
}

COMPLETE CODE

 private void MBtnEnviar_Click(object sender, EventArgs e)

    {
        if (mTxtInstitucion.Text.Equals("")|| mTxtCiudad.Text.Equals(""))
        {
            Toast.MakeText(Activity, "has dejado Institución o Ciudad vacia", ToastLength.Short).Show();

        }

        else
        {


            try
            {
                //Configurando el cliente SMTP
                SmtpClient client = new SmtpClient()
                {
                    Host = "smtp.gmail.com",
                    Port = 587,
                    EnableSsl = true,
                    DeliveryMethod = SmtpDeliveryMethod.Network,
                    UseDefaultCredentials = false,
                    Credentials = new NetworkCredential("[email protected]", "jwspvnzutniimmmmm")
                };
                //Preparando archivo adjunto
                var filePath = System.IO.Path.Combine(uris, "");
                var File = new Java.IO.File(filePath);
                var path = Uri.FromFile(File);


                //Enviando correo
                MailMessage mail = new MailMessage()
                {
                    From = new MailAddress("[email protected]")
                };
                mail.To.Add(new MailAddress("[email protected]"));
                mail.Subject = "Solicitud Autorizacion Medica " + mTxtNombre + " " + mTxtApellido + "" + mTxtCedula;
                mail.IsBodyHtml = true;
                mail.Body = "Hola Solicito por favor autorizar procedimiento, adjunto anexo solicitud Medica especificaciones el nombre de la Institución es  " + mTxtInstitucion.Text +
                " , ciudad " + mTxtCiudad.Text + " ,Nombre de usuario " + mTxtNombre + " " + mTxtApellido + " y Cedula " + mTxtCedula +
                " " + "Gracias por su atención"
                ;
                mail.Attachments.Add(new Attachment(File.Path));
                client.Send(mail);
                textView.FindViewById<TextView>(Resource.Id.txtNota).Text = MSJTEnvioExitoso;
                Enviar.Visibility = ViewStates.Invisible;
                imageView.Visibility = ViewStates.Invisible;
                textView.FindViewById<TextView>(Resource.Id.txtAutoCiudad).Text = "";
                textView.FindViewById<TextView>(Resource.Id.txtAutoInstitucion).Text = "";

                CheckSMSStatePermission();
                SmsManager.Default.SendTextMessage("57301111111", null,
                "Hello from Xamarin.Android", null, null);
                var smsUri = Android.Net.Uri.Parse("smsto:57301111111");
                var smsIntent = new Intent(Intent.ActionSendto, smsUri);
                smsIntent.PutExtra("sms_body", "Hello from Xamarin.Android");
                StartActivity(smsIntent);

            }
            catch (Exception ex)

            {
                Toast.MakeText(Activity, "Mensaje Fallido"+ex, ToastLength.Short).Show();
            }
        }
    }



    private void CheckSMSStatePermission()
    {

        int PermissionCheck = ContextCompat.CheckSelfPermission(this, Manifest.Permission.SendSms);
        if (PermissionCheck != PackageManager.PERMISSION_GRANTED)
        {
            Toast.MakeText(Activity,  "No se tiene permiso para enviar SMS.", ToastLength.Short).Show();
            ActivityCompat.requestPermissions(this, new String[] { Manifest.Permission.SendSms }, 1);
        }
        else
        {
            Toast.MakeText(Activity, "Se tiene permiso para enviar SMS!", ToastLength.Short).Show();
        }
    }
    
asked by Andrés Felipe Contreras Muñoz 28.08.2017 в 20:56
source

1 answer

0

To solve the error of the permissions you must add this permission:

Android.Content.PM.Permission.Granted
    
answered by 29.08.2017 в 14:48