Activer l'autorisation dans Android par l'utilisateur
Doubleface2022 Messages postés 12 Date d'inscription Statut Membre Dernière intervention -
Bonjour, j'ai un souci concernant les telechargements dans mon webview Android, bref lorsque je click sur l'objet à télécharger, ceci bug et arrête l'application brutalement. Après vérification, je constate que c'est à cause d'un problème de permission au niveau du paramètre de l'application dans l'autorisation est désactivée. Lorsque j'active manuellement cela dans les paramètres du téléphone, en relançant le téléchargement, cela fonctionne parfaitement. Question : comment activer ce menu stockage automatique lors du téléchargement par l'utilisateur ?
Voici mon code actuel ????
@Override
public void onDownloadStart(String url, String userAgent,
String contentDisposition, String mimetype, long contentLength) {
if(Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())){
int pm[] = null;
if(pm[0]==PackageManager.PERMISSION_GRANTED){
DownloadManager storagemanager=(DownloadManager)getSystemService(Context.DOWNLOAD_SERVICE);
SharedPreferences prefs=getSharedPreferences("BusinesStore",MODE_PRIVATE);
String uid=prefs.getString("UUID", null);
}
DownloadManager.Request request = new DownloadManager.Request(Uri.parse(url));
request.allowScanningByMediaScanner();
String cookie = CookieManager.getInstance().getCookie(url);
request.addRequestHeader("Cookie", cookie);
// Notify client once download is completed!
request.setNotificationVisibility(
DownloadManager.Request.VISIBILITY_VISIBLE);
final String exportFileName = URLUtil.guessFileName(
url, contentDisposition, mimetype);
request.setDestinationInExternalPublicDir(
Environment.DIRECTORY_DOWNLOADS, exportFileName);
DownloadManager dm = (DownloadManager) getSystemService(DOWNLOAD_SERVICE);
dm.enqueue(request);
// This is important!
Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
intent.addCategory(Intent.CATEGORY_OPENABLE); // CATEGORY.OPENABLE
intent.setType("*/*");// any application,any extension
Toast.makeText(getApplicationContext(), "Download launched",Toast.LENGTH_LONG).show();
}
else{
Toast.makeText(getApplicationContext(), "Repertoire non détécté", Toast.LENGTH_LONG).show();
}
}
Mes permissions dans le fichier manifeste
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_DOWNLOAD_MANAGER"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.DOWNLOAD_WITHOUT_NOTIFICATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.WRITE_SOCIAL_STREAM"/>
<uses-permission android:name="com.android.browser.permission.READ_HISTORY_BOOKMARKS"/>
<uses-permission android:name="com.android.launcher.permission.UNINSTALL_SHORTCUT"/>
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
Android / Chrome 99.0.4844.73
- Activer l'autorisation dans Android par l'utilisateur
- Android recovery - Guide
- Activer chromecast - Guide
- Activer office gratuitement - Accueil - Bureautique
- Comment activer windows 10 - Guide
- Gestion autorisation application android - Guide
2 réponses
Hello,
Tu ne peux pas le faire automatiquement, tu es obligé de demander l'autorisation à l'utilisateur. Ce qui veut dire que, s'il refuse (il a le droit), tu ne dois pas utiliser la fonctionnalité.
Pour plus d'infos: https://developer.android.com/training/permissions/requesting