One approach you might use is to provide an explanation only if the user has already denied that permission request. Android provides a utility method,
shouldShowRequestPermissionRationale(), that returns true if the user has previously denied the request, and returns false if a user has denied a permission and selected the
Don't ask again option in the permission request dialog, or if a device policy prohibits the permission.