2015-10-05 16 views

回答

7
中的build.gradle

task grantPermissions(type: Exec, dependsOn: 'installDebugAndroidTest') { 
def permissions = ['INTERNET', 
        'GET_ACCOUNTS', 
        'WAKE_LOCK', 
        'VIBRATE', 
        'READ_CONTACTS', 
        'RECORD_AUDIO', 
        'CAMERA', 
        'WRITE_EXTERNAL_STORAGE', 
        'READ_EXTERNAL_STORAGE'] 
permissions.each { 
    commandLine "\$ANDROID_HOME/platform-tools/adb shell pm grant com.singlewire.cirrus android.permission.${it}".split(' ') 
}} 

tasks.whenTaskAdded { task -> 
    if (task.name.startsWith('connectedDebugAndroidTest')) { 
     task.dependsOn grantPermissions 
    } 
} 
-1
android.productFlavors.all { flavour -> 
def applicationId = flavour.applicationId 
def adb = android.getAdbExe().toString() 

def grantPermissionsTask = tasks.create("grant${flavour.name.capitalize()}Permissions") << { 
    "${adb} shell pm grant ${applicationId} android.permission.ACCESS_FINE_LOCATION".execute() 
    "${adb} shell pm grant ${applicationId} android.permission.ACCESS_COARSE_LOCATION".execute() 
} 
grantPermissionsTask.description = "Grants permissions for Marshmallow" 

tasks.whenTaskAdded { theTask -> 
    def assemblePattern = ~"assemble${flavour.name.capitalize()}DebugAndroidTest" 
    if (assemblePattern.matcher(theTask.name).matches()) { 
     theTask.dependsOn grantPermissionsTask.name 
    } 
} 
} 

您可以爲單元測試儀器測試這樣做不僅沒有。 Reference