This is Android camera permission tutorial that teaches you how to create Android Apps that work on Android Nougat, Marshmallow, Kitkat and Jellybean.

From Marshmallow, Android requires user to click on a runtime permission in order for an app to have access for a specific permission. This allows more security to your phone. However, for a developer side, it creates another mess. You will write both permission on the AndroidManifest.xml and on the Java file.

Below is the snapshot of the code:
in build.gradle under app:

in AndroidManifest.xml:

In Java code: