我有这个错误 "ContextCompat does not exist in the current context" 和 "PackageManager does not contain PERMISSION_GRANTED definition"

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

当我创建方法输出错误 "ContextCompat does not exist in the current context" 和一个 "PackageManager does not contain definition PERMISSION_GRANTED" .. 知道我是否应该添加任何特殊指令。谢谢

方法

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();
}
}

错误 1

   Severity Code Description Project Project category Path File Line Column 
   Category Source Status deleted Tool
   Error CS1503 Argument 1: can not be converted from                      
 'LoginSystem.Authorization' to 'Android.Content.Context' LoginSystem 1 C: \ 
  Users \ Lenovo \ documents \ visual studio 2017 \ Projects \ LoginSystem \ 
   Documents \ visual studio 2017 \ Projects \ LoginSystem \ LoginSystem \ 
   Authorization.cs 229 70 Active Compiler IntelliSense Compiler

错误 2

   Severity Code Description Project Project category Path File Line Column 
   Category Source Status deleted Tool
   CS0117   'PackageManager' no contiene una definición para 
 'PERMISSION_GRANTED'   LoginSystem 1   C:\Users\Lenovo\documents\visual 
  studio 2017\Projects\LoginSystem\LoginSystem  
  C:\Users\Lenovo\documents\visual studio 
  2017\Projects\LoginSystem\LoginSystem\Autorizacion.cs 230 51  Compiler    
  IntelliSense  Activo  Compilador

改变这个

int PermissionCheck = ContextCompat.CheckSelfPermission(this, Manifest.Permission.SendSms);

至此

int PermissionCheck = ContextCompat.CheckSelfPermission(this, Manifest.permission.SEND_SMS;);

或者试试这个

 String permission = android.Manifest.permission.SEND_SMS;
 if (ActivityCompat.checkSelfPermission(SearchCityClass.this, permission)
     != PackageManager.PERMISSION_GRANTED){
      ActivityCompat.requestPermissions(SearchCityClass.this, new String[]
                    {permission}, 1);

 }

在清单文件中添加此权限

<uses-permission android:name="android.permission.SEND_SMS"/>

如果您尝试使用 ContextCompat.XXXX,您的 Activity 子类需要来自 AppCompatActivity(不是 Activity...)。

AppCompatActivity 在 nuget 包中可用:Xamarin.Android.Support.v4:

<package id="Xamarin.Android.Support.v4" version="25.4.0.2" targetFramework="monoandroid71" />

添加该包并将您的 Activity 更改为 AppCompatActivity