web-dev-qa-db-fra.com

L'autorisation de stockage externe en lecture et en écriture ne fonctionne pas

Dans mon application, je veux obtenir la permission de l'utilisateur de lire et d'écrire des données sur le stockage externe, j'ai mis la balise d'autorisation dans mon manifeste comme ci-dessous. Mais lors de l'installation de l'application ou de son exécution et où il faut lire ou écrire dans le stockage, aucune autorisation n'est prise par l'utilisateur et la lecture et l'écriture de la mémoire ne fonctionnent tout simplement pas, jusqu'à ce que je passe manuellement à la configuration de l'accès à l'application et que j'autorise l'accès à la mémoire.

Mon manifeste est le suivant:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:Android="http://schemas.Android.com/apk/res/Android"
   package="javadi60.saber.storeassistant">

   <uses-permission Android:name="Android.permission.WRITE_EXTERNAL_STORAGE" />
   <uses-permission Android:name="Android.permission.READ_EXTERNAL_STORAGE" />

   <application
      Android:allowBackup="true"
      Android:dialogTheme="@style/CustomDialog"
      Android:icon="@mipmap/myappicon"
      Android:label="@string/app_name"
      Android:roundIcon="@mipmap/ic_launcher_round"
      Android:supportsRtl="true"
      Android:theme="@style/AppTheme">
      <activity Android:name=".MainActivity">
          <intent-filter>
              <action Android:name="Android.intent.action.MAIN" />
              <category Android:name="Android.intent.category.LAUNCHER" />
          </intent-filter>
      </activity>
      <activity Android:name=".insertData" />
      <activity Android:name=".setting" />
      <activity Android:name=".dellAll" />
      <activity Android:name=".reports" />
      <activity Android:name=".login" />
  </application>

</manifest>
9
saber javadi

Nettoyez le fichu projet, reconstruisez et exécutez s'il ne fonctionne toujours pas ....

Ajoutez ce code dans la méthode onCreate dans votre activité. Supprimez l'application, nettoyez le projet, générez et exécutez. N'oubliez pas non plus d'ajouter l'autorisation que vous souhaitez dans votre manifeste. (Pour un niveau d'API inférieur, le code n'est pas nécessaire, mais à partir de 23 ans, vous avez également besoin de ce code)

private fun requestPermission() {

    val permissions = arrayOf(Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.WRITE_EXTERNAL_STORAGE)
    this.requestPermissions(permissions, 5)
}
0
ovidiur