A permission request makes more sense when the user has just chosen the feature that needs it. Asking for camera access while someone is trying to take a picture has an obvious explanation. Presenting several access requests before the app has done anything useful makes that explanation much harder to follow.
Android’s runtime-permission guidance recommends asking in context and handling denial gracefully. Before adding a request, also check the permission-minimising alternatives. A system picker or a more limited capability may be enough for the actual task.
I would design the refused-permission state alongside the accepted one. The app should explain which feature is unavailable without making unrelated parts unusable. Recheck access before the operation rather than assuming a previous grant lasts forever, and avoid trapping someone in repeated prompts after they have already made a choice.
A good permission flow is a small, understandable exchange: this action needs this access, here is why, and here is what happens if you decline. It is easier to trust because the request belongs to something the person chose to do. That usually makes a better application as well as a more considerate one.