Android 6.0 uses a new permission management model. When an application is installed, except for general permissions such as the internet that are defined as PROTECTION_NORMAL, other (risky) permissions need to be dynamically granted by the user at runtime. The author should be using android-mnc, so it will automatically complete the code to check whether it has permissions. Permission management is provided by the latest v4 and v13 libraries. If the application is running on an Android 6.0 machine, no error will be reported; if you want to use the new permission management model on a machine lower than 6.0 to check permissions, you need to rely on the latest v4 (ActivityCompat.requestPerssions) or v13 (FragmentCompat.requestPerssions)
Android 6.0 uses a new permission management model. When an application is installed, except for general permissions such as the internet that are defined as PROTECTION_NORMAL, other (risky) permissions need to be dynamically granted by the user at runtime. The author should be using android-mnc, so it will automatically complete the code to check whether it has permissions. Permission management is provided by the latest v4 and v13 libraries. If the application is running on an Android 6.0 machine, no error will be reported; if you want to use the new permission management model on a machine lower than 6.0 to check permissions, you need to rely on the latest v4 (ActivityCompat.requestPerssions) or v13 (FragmentCompat.requestPerssions)