Skip to content

Instantly share code, notes, and snippets.

@ubaierbhat
Created February 21, 2017 18:44
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ubaierbhat/3a100338b4774cbb86e4b3e64d124989 to your computer and use it in GitHub Desktop.
Save ubaierbhat/3a100338b4774cbb86e4b3e64d124989 to your computer and use it in GitHub Desktop.
Grant permissions for Android application
android.applicationVariants.all { variant ->
// Create tasks for granting permissions
def applicationId = variant.applicationId
def variantName = variant.name.capitalize()
def grantPermissionTask = tasks.create("grant${variantName}Permissions") << {
"${adb} devices".execute().text.eachLine {
if (it.endsWith("device")) {
def device = it.split()[0]
println "Granting permissions on devices ${device}"
def permissions = ['SET_ANIMATION_SCALE',
'CAMERA',
'ACCESS_COARSE_LOCATION',
'ACCESS_FINE_LOCATION',
'WRITE_EXTERNAL_STORAGE',
'READ_EXTERNAL_STORAGE']
permissions.each {
"${adb} -s ${device} shell pm grant ${applicationId} android.permission.${it}".execute()
println " - granted ${it} permission"
}
}
}
}
grantPermissionTask.description = "Grant permissions for Marshmallow devices"
grantPermissionTask.group = "permissions"
grantPermissionTask.dependsOn "install${variantName}"
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment