Search code examples
androidpermissionscalendarsecurityexception

Android Calendar Check Permission


I'm currently implementing the calendar provider however i've stumbled upon a minor error that i'd like to prevent.

ContentResolver contentResolver = getContentResolver();
ContentValues contentValues = new ContentValues();

....

Uri uri = contentResolver.insert(CalendarContract.Events.CONTENT_URI, contentValues); // Error pops here

"Call requires permission which may be rejected by user: code should explicitly check to see if permission is available (with checkPermission) or explicitly handle a potential `SecurityException"

What is the best method to prevent this error?

Any help will be appreciated.


Solution

  • Handle android permission first , check if they are available , if not you can request them as shown below

    proceed with your functionality only if permissions are available

    if (ActivityCompat.checkSelfPermission(this, Manifest.permission.READ_CALENDAR) != PackageManager.PERMISSION_GRANTED 
        && ActivityCompat.checkSelfPermission(this, Manifest.permission.WRITE_CALENDAR) != PackageManager.PERMISSION_GRANTED) {
    ActivityCompat.requestPermissions(this,new String[]{Manifest.permission.ACCESS_FINE_LOCATION},MY_PERMISSIONS_REQUEST_ACCESS_FINE_LOCATION);}else if(ActivityCompat.checkSelfPermission(this, Manifest.permission.READ_CALENDAR) == PackageManager.PERMISSION_GRANTED 
            && ActivityCompat.checkSelfPermission(this, Manifest.permission.WRITE_CALENDAR) == PackageManager.PERMISSION_GRANTED){
    
    ContentResolver contentResolver = getContentResolver();
    ContentValues contentValues = new ContentValues();
    Uri uri = contentResolver.insert(CalendarContract.Events.CONTENT_URI, contentValues);}