title: The method checkSelfPermission(Context, String) is undefined for the type ContextCompat
body: <pre><code>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 &gt;= 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 &gt; 0
                  &amp;&amp; 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 &amp;&amp;
   * 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);
   * } }
   */
  </code></pre>
  
  <p>When i try this in a demo app it is working fine.But when i include in the project it is throwing a error as title.Any help will be appreciated.It is because of context i think so.
  ..........................................................................................................................................................................................................................................................................................................................................................</p>