我有这个错误 "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
当我创建方法输出错误 "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