Sub Check_Permissions
hasPermissions = False 'assumo che non sia stato dato nessun permesso
Dim requestedPermissions As List
requestedPermissions.Initialize
requestedPermissions.Clear
'controllo i permessi uno per uno, e se non dati, li aggiungo ad una lista
Dim permissionResult As Boolean
permissionResult = RuntimePermissions.Check("android.permission.WRITE_EXTERNAL_STORAGE")
If (permissionResult = False) Then
requestedPermissions.Add("android.permission.WRITE_EXTERNAL_STORAGE")
End If
permissionResult = RuntimePermissions.Check("android.permission.READ_PHONE_STATE")
If (permissionResult = False) Then
requestedPermissions.Add("android.permission.READ_PHONE_STATE")
End If
permissionResult = RuntimePermissions.Check("android.permission.CAMERA")
If (permissionResult = False) Then
requestedPermissions.Add("android.permission.CAMERA")
End If
permissionResult = RuntimePermissions.Check("android.permission.ACCESS_COARSE_LOCATION")
If (permissionResult = False) Then
requestedPermissions.Add("android.permission.ACCESS_COARSE_LOCATION")
End If
permissionResult = RuntimePermissions.Check("android.permission.ACCESS_FINE_LOCATION")
If (permissionResult = False) Then
requestedPermissions.Add("android.permission.ACCESS_FINE_LOCATION")
End If
If (requestedPermissions.Size > 0) Then 'ci sono permessi da richiedere, quindi hasPermissions rimane False
Wait For (Request_Permissions(requestedPermissions)) Complete (Result As Object)
Else
hasPermissions = True 'permessi già dati in precedenza
End If
End Sub
Sub Request_Permissions (requestedPermissions As List) As ResumableSub
hasPermissions = True 'risetto il default, perchè mi serve che se anche solo un permesso non viene dato, devo fermare l'esecuzione dell'app
Dim cPermission As String
For p=0 To (requestedPermissions.Size-1)
cPermission = requestedPermissions.Get(p)
RuntimePermissions.CheckAndRequest(cPermission)
Wait For Activity_PermissionResult (Permission As String, Result As Boolean) 'attendo il risultato
If (Result = False) Then 'else se concesso, hasPermissions è già True di default
hasPermissions = False
End If
Next
Return Null
End Sub
Sub Activity_Create
Check_Permissions
If (hasPermissions = False) Then
'Blocco
End If