2017-05-25 4 views
0

Der Versuch, ein Bild in der Standard-Galerie-App zu öffnen. Ich kann dieses Problem nach den Schritten nicht beheben: Mein Dateipfad /data/data/{applicationName}/cache/file.jpgIllegalArgumentException: Fehler beim Suchen des konfigurierten Stammverzeichnisses, das filePath enthält

Intent ist:

Intent intent = new Intent(Intent.ACTION_VIEW); 
File file = new File(filePath); 
    intent.setDataAndType(FileProvider.getUriForFile(this, getApplicationContext() 
          .getPackageName() + ".provider", file),"image/*"); 
intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); 

Manifest:

<provider 
    android:name="android.support.v4.content.FileProvider" 
    android:authorities="${applicationId}.provider" 
    android:exported="false" 
    android:grantUriPermissions="true"> 
    <meta-data 
      android:name="android.support.FILE_PROVIDER_PATHS" 
      android:resource="@xml/provider_paths"/> 
</provider> 

provider_paths.xml

<?xml version="1.0" encoding="utf-8"?> 
<paths> 
    <external-path 
     name="external_files" 
     path="." /> 
</paths> 

I habe versucht den Pfad und den Namen in provider_paths zu ändern, aber kein Glück.

Antwort

3

ersetzen:

<external-path 
    name="external_files" 
    path="." /> 

mit:

<cache-path name="external_files" /> 

als Ihr Weg scheint in getCacheDir() zu sein.

Verwandte Themen