je fait face au même problème. Il existe deux types d'autorisations dans Android:
- Dangerous (accès aux contacts, écrire au stockage externe ...)
- normal (autorisations normales sont automatiquement approuvés par Android alors que les autorisations dangereuses doivent être approuvé par les utilisateurs Android.)
Voici la stratégie pour obtenir des autorisations dangereuses dans Android 6,0
- Vérifiez si vous avez l'autorisation accordée
- Si votre application est déjà accordée la permission, allez-y et effectuez normalement.
- Si votre application ne dispose pas de l'autorisation encore, demandez l'utilisateur d'approuver
- Écoutez l'approbation de l'utilisateur dans
onRequestPermissionsResult
Voici mon cas: je dois écrire au stockage externe.
D'abord, je vérifier si j'ai la permission:
...
private static final int REQUEST_WRITE_STORAGE = 112;
...
boolean hasPermission = (ContextCompat.checkSelfPermission(activity,
Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED);
if (!hasPermission) {
ActivityCompat.requestPermissions(parentActivity,
new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},
REQUEST_WRITE_STORAGE);
}
vérifier ensuite l'approbation de l'utilisateur:
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
switch (requestCode)
{
case REQUEST_WRITE_STORAGE: {
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED)
{
//reload my activity with permission granted or use the features what required the permission
} else
{
Toast.makeText(parentActivity, "The app was not allowed to write to your storage. Hence, it cannot function properly. Please consider granting it this permission", Toast.LENGTH_LONG).show();
}
}
}
}
Merci fixXedd. Cela a fonctionné parfaitement. –
Pas de problème. Heureux d'aider. –
oui, les comprimés Samsung publié par la suite utilisent flash intégré – CQM