IllegalArgumentException в поставщике файлов — Android 7.0

Я пытаюсь получить доступ к файлу apk, сохраненному в Download\AppName\myApk.apk, из моего приложения, используя концепцию FileProvider, но не удалось

Я использую следующий код

        Intent intent = new Intent(Intent.ACTION_INSTALL_PACKAGE);
        File file = new File(location);     
        // location= Environment.getExternalStorageDirectory() + "/Download/AppName\MyApk.apk";      
        Uri uri = FileProvider.getUriForFile(Login.this, BuildConfig.APPLICATION_ID + ".fileprovider", file);
        intent.setData(uri);
        intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
        startActivityForResult(intent, INSTALL_APK_REQUEST_CODE);

Манифест

<provider
        android:name="android.support.v4.content.FileProvider"
        android:authorities="xxx.xxx.xxx.fileprovider"
        android:exported="false"
        android:grantUriPermissions="true">
        <meta-data
            android:name="android.support.FILE_PROVIDER_PATHS"
            android:resource="@xml/filepaths"/>
    </provider>

filePath.xml

<paths xmlns:android="http://schemas.android.com/apk/res/android">
  <files-path name="adbc" path="Download/AppName" />
</paths>

Исключение

Failed to find configured root that contains /storage/emulated/0/Download/AppName/MyAPk.apk

Пожалуйста помоги !!!


person Rajeev Kumar    schedule 21.12.2017    source источник
comment
Пожалуйста, отредактируйте свой вопрос и предоставьте полную трассировку стека Java.   -  person CommonsWare    schedule 21.12.2017
comment
Обратите внимание, что вы добавили сообщение об ошибке, а не трассировку стека. Так получилось, что на этот раз сообщения об ошибке было достаточно. В будущем, когда вы будете задавать вопросы о переполнении стека, связанные со сбоями, опубликуйте полную трассировку стека, так как источник вашей проблемы может лежать глубже в этой трассировке, чем только в верхней строке.   -  person CommonsWare    schedule 21.12.2017


Ответы (1)


Заменять:

<files-path name="adbc" path="Download/AppName" />

с:

<external-path name="adbc" path="Download/AppName" />
person CommonsWare    schedule 21.12.2017