La méthode checkSelfPermission(Context, String) n'est pas défini pour le type ContextCompat

Context context;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Context context = (Permission) this;
//In an actual app, you'd want to request a permission when the user
//performs an action
//that requires that permission.
if (Build.VERSION.SDK_INT >= 23) {
getPermissionToReadUserContacts();
}
}
//Identifier for the permission request
private static final int READ_CONTACTS_PERMISSIONS_REQUEST = 1;
//Called when the user is performing an action which requires the app to
//read the
//user's contacts
public void getPermissionToReadUserContacts() {
//1) Use the support library version
//ContextCompat.checkSelfPermission(...) to avoid
//checking the build version since Context.checkSelfPermission(...) is
//only available
//in Marshmallow
//2) Always check for permission (even if permission has already been
//granted)
//since the user can revoke permissions at any time through Settings
if (ContextCompat.checkSelfPermission(this,
Manifest.permission.READ_CONTACTS) != PackageManager.PERMISSION_GRANTED) {
//Should we show an explanation?
if (ActivityCompat.shouldShowRequestPermissionRationale(this,
Manifest.permission.READ_CONTACTS)) {
//Show an expanation to the user *asynchronously* -- don't
//block
//this thread waiting for the user's response! After the user
//sees the explanation, try again to request the permission.
} else {
//No explanation needed, we can request the permission.
ActivityCompat.requestPermissions(this,
new String[] { Manifest.permission.READ_CONTACTS },
READ_CONTACTS_PERMISSIONS_REQUEST);
//MY_PERMISSIONS_REQUEST_READ_CONTACTS is an
//app-defined int constant. The callback method gets the
//result of the request.
}
}
}
@Override
public void onRequestPermissionsResult(int requestCode,
String permissions[], int[] grantResults) {
switch (requestCode) {
case READ_CONTACTS_PERMISSIONS_REQUEST: {
//If request is cancelled, the result arrays are empty.
if (grantResults.length > 0
&& grantResults[0] == PackageManager.PERMISSION_GRANTED) {
Toast.makeText(this, "Read Contacts permission granted",
Toast.LENGTH_SHORT).show();
//permission was granted, yay! Do the
//contacts-related task you need to do.
} else {
Toast.makeText(this, "Read Contacts permission denied",
Toast.LENGTH_SHORT).show();
//permission denied, boo! Disable the
//functionality that depends on this permission.
}
return;
}
//other 'case' lines to check for other
//permissions this app might request
}
}
//Callback with the request from calling requestPermissions(...)
/*
* @Override public void onRequestPermissionsResult(int requestCode, String
* permissions[], int[] grantResults) { //Make sure it's our original
* READ_CONTACTS request if (requestCode ==
* READ_CONTACTS_PERMISSIONS_REQUEST) { if (grantResults.length == 1 &&
* grantResults[0] == PackageManager.PERMISSION_GRANTED) {
* Toast.makeText(this, "Read Contacts permission granted",
* Toast.LENGTH_SHORT).show(); } else { Toast.makeText(this,
* "Read Contacts permission denied", Toast.LENGTH_SHORT).show(); } } else {
* super.onRequestPermissionsResult(requestCode, permissions, grantResults);
* } }
*/

Quand j'ai essayer ceci dans une démo application, elle fonctionne bien.Mais quand je inclure dans le projet, il est en train de jeter une erreur que le titre.Toute aide sera appréciée.C'est à cause du contexte, je pense que oui.
..........................................................................................................................................................................................................................................................................................................................................................

l'utilisation de la compilation com.android.support:appcompat-v7:23.0.1'

OriginalL'auteur Naresh Reddy | 2016-01-05