For Android, it is required that we ask permissions at runtime to make sure users understand better why en when permissions are needed. I know this is true for permissions like WRITE_CALENDAR
and ACCESS_FINE_LOCATION
but it seems it's not required for INTERNET. Not strange because almost all apps use internet.
Is it safe to say that I only need to declare it in the manifest?
<uses-permission android:name="android.permission.INTERNET" />
Or should I always check it at runtime?
Internet permissions work as pre-sdk 23 permissions. Permission is given at installation of the app.
INTERNET permissions are regarded as PROTECTION_NORMAL.
Dangerous permission require runtime permission management. They are also in 'permission groups' so once runtime permission is granted for one permission from that group, it does not need to be granted for other permissions from the same group.
Also permssions can be granted at runtime and set as default acceptance, which can also be revoked at any time by the user.
No, you shouldn't ask for
INTERNET
permission at runtime.INTERNET
belongs to the Normal permissions group, which are automatically granted by the system if they're declared in the Manifest, as mentioned in this document:By default it is not required. only use it when you need internet connectivity in your app.