PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV Mobile 2024 → Permissions non démandé
Permissions non démandé
Débuté par Tom, 29 juin 2018 16:18 - Aucune réponse
Posté le 29 juin 2018 - 16:18
Salut,

Nous avons passé notre application en Windev Mobile 23, mais nous éprouvons des problème avec les permissions.Elle ne sont tous simplement pas demandé et dont lorsque vient le temps d'écrire un fichier sa plante puisque nous n'avons pas le permissions.

J'ai essayé l'exemple suivant: https://forum.pcsoft.fr/fr-FR/pcsoft.fr.windevmobile/28463-fonctions-gps-sur-materiels-android-plantage-28647/read.awp…, mais le problème est que l'autorisation est demandé, mais je ne sais pas ce que l'usager à sélectionné.

Lorsque je rappel ma fonction CheckStoragePermissions() pour savoir si l'usager a accepter ou non, le résultat de celle-ci est toujours faux, malgré le fait que j'appel le setStoragePermissions avant cette fonction pour demander l'autorisation.

Voici mon code en exemple

HASStoragesPermissions est un booléen = CheckStoragePermissions()
SI HASStoragesPermissions= Faux ALORS setStoragePermissions()
SI HASStoragesPermissions= Vrai ALORS
IDFichier = fCrée(fileName)
fEcrit(IDFichier,cCityData.DocumentData)
fFerme(IDFichier)
Multitâche(-1)
Sablier(Faux)
LanceAppliAssociée(fileName)
FIN



Fonction java :
import android.support.v4.content.ContextCompat;
import android.Manifest;
import android.content.pm.PackageManager;
import android.os.Build;
public static boolean CheckStoragePermissions()
{
// Seulement depuis la version 6
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) {
// Assume thisActivity is the current activity
int permissionCheck = ContextCompat.checkSelfPermission(getContexteApplication(), Manifest.permission.WRITE_EXTERNAL_STORAGE);

// Pas de permissions
if (permissionCheck == PackageManager.PERMISSION_GRANTED) {
return true;
} else {
return false;
}
} else {
return true;
}
}

import android.support.v4.app.ActivityCompat;
import android.Manifest;
public static void setStoragePermissions()
{
// Pas de permissions
if (!CheckStoragePermissions()) {
// On demande
ActivityCompat.requestPermissions(getActiviteEnCours(), new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 0);
}




J'ai vue que nous pouvons obtenir le résultat de ce que l'usager à fait lors de la demande, mais je ne sais pas comment l'appeler

Voici un exemple, mais cette fonction n'ai jamais appelé :
public void onRequestPermissionsResult(int requestCode, @NonNull String permissions[],@NonNull int[] grantResults) 
{
switch (requestCode) 
{
case 1: if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) appelProcedureWL_int("SetPermissionsResult",1); else appelProcedureWL_int("SetPermissionsResult",-1);
break;
}
}


Merci !!