title: how to set FileProvider for file in External Cache dir
body: <p>For file in Cache dir , I can add this in xml to set FileProvider</p>
  
  <pre><code>    &lt;cache-path
      name="image"
      path="image/"/&gt;
  </code></pre>
  
  <p>But if I storage file in External Cache Dir,I cannot get external-cache-path tag or something like that to set FileProvider.And </p>
  
  <pre><code>    &lt;external-path
      name="image_external"
      path="cache/image/"/&gt;
  </code></pre>
  
  <p>did not help ,too.</p>
  
  <p>This is my Manifest file:</p>
  
  <pre><code> &lt;provider
          android:name="android.support.v4.content.FileProvider"
          android:authorities="com.tizi.quanzi"
          android:exported="false"
          android:grantUriPermissions="true"&gt;
          &lt;meta-data
              android:name="android.support.FILE_PROVIDER_PATHS"
              android:resource="@xml/file_paths"/&gt;
   &lt;/provider&gt;
  </code></pre>
  
  <p>This is the xml/file_paths file:</p>
  
  <pre><code>&lt;?xml version="1.0" encoding="utf-8"?&gt;
  &lt;paths&gt;
      &lt;cache-path
          name="image"
          path="image/"/&gt;
      &lt;external-path
          name="image_external"
          path="cache/image/"/&gt;
  &lt;/paths&gt;
  </code></pre>
  
  <p>And this is my Code:</p>
  
  <pre><code>String RootPath = App.getApplication().getExternalCacheDir().getAbsolutePath();
  String filePath = RootPath + "/image/" + fileName;
  // done something there to save file
  Intent shareIntent = new Intent();
  
  Uri contentUri = FileProvider.getUriForFile(App.getApplication(),
          App.getApplication().getPackageName(), new File(filePath));
  App.getApplication().grantUriPermission(App.getApplication().getPackageName(),
          contentUri, Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
  shareIntent.setData(contentUri);
  shareIntent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
  shareIntent.setAction(Intent.ACTION_SEND);
  shareIntent.putExtra(Intent.EXTRA_STREAM, contentUri);
  shareIntent.setType("image/*");
  
  activity.startActivity(Intent.createChooser(shareIntent, "share image"));
  </code></pre>
  
  <p>And this is the error infomation:</p>
  
  <pre><code>    /AndroidRuntime: FATAL EXCEPTION: main
  Process: com.tizi.quanzi, PID: 27487
  java.lang.IllegalArgumentException: Failed to find configured root that contains /storage/emulated/0/Android/data/com.tizi.quanzi/cache/image/o9xygODHtdP6HXqsuUZghVCsBKTtY4FJgO1MpnmX.jpg
      at android.support.v4.content.FileProvider$SimplePathStrategy.getUriForFile(FileProvider.java:678)
      at android.support.v4.content.FileProvider.getUriForFile(FileProvider.java:377)
      at com.tizi.quanzi.tool.ShareImage.shareImage(ShareImage.java:67)
      at com.tizi.quanzi.tool.ShareImage.shareImage(ShareImage.java:61)
      at com.tizi.quanzi.adapter.GalleryAdapter$2.onClick(GalleryAdapter.java:119)
      at android.support.v7.app.AlertController$AlertParams$3.onItemClick(AlertController.java:956)
      at android.widget.AdapterView.performItemClick(AdapterView.java:310)
      at android.widget.AbsListView.performItemClick(AbsListView.java:1145)
      at android.widget.AbsListView$PerformClick.run(AbsListView.java:3042)
      at android.widget.AbsListView$3.run(AbsListView.java:3879)
      at android.os.Handler.handleCallback(Handler.java:739)
      at android.os.Handler.dispatchMessage(Handler.java:95)
      at android.os.Looper.loop(Looper.java:148)
      at android.app.ActivityThread.main(ActivityThread.java:5417)
      at java.lang.reflect.Method.invoke(Native Method)
      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
  </code></pre>