如何解决查找包含的已配置根?

时间:2019-05-03 16:24:07

标签: android fileprovider

下面是我尝试过的代码。我已经从手机存储下载文件夹中的URL下载了apk文件。但是无法打开它。 如果我使用file.exists()检查它,则表明文件在那里。

    File file = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS) +
            "/gproplus1.apk");
    //Uri path = Uri.fromFile(file);
    Uri path = FileProvider.getUriForFile(MainActivity.this,
            BuildConfig.APPLICATION_ID + ".fileprovider", file);
    String mime = getContentResolver().getType(path);

    Intent pdfOpenintent = new Intent(Intent.ACTION_VIEW);
    pdfOpenintent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    pdfOpenintent.setDataAndType(path, ""+mime);
    try {
        startActivity(pdfOpenintent);
    } catch (ActivityNotFoundException e) {

}
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.skinfotech.gproesportsplus, PID: 16292
java.lang.IllegalArgumentException: Failed to find configured root that contains /storage/emulated/0/Download/file.apk
    at android.support.v4.content.FileProvider$SimplePathStrategy.getUriForFile(FileProvider.java:739)
    at android.support.v4.content.FileProvider.getUriForFile(FileProvider.java:418)
    at com.skinfotech.gproesportsplus.MainActivity$2.onClick(MainActivity.java:176)
    at android.support.v7.app.AlertController$ButtonHandler.handleMessage(AlertController.java:167)
    at android.os.Handler.dispatchMessage(Handler.java:106)
    at android.os.Looper.loop(Looper.java:176)
    at android.app.ActivityThread.main(ActivityThread.java:6635)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:823)

0 个答案:

没有答案
相关问题