Я хочу поделиться файлом /data/data/com.myapp/app_profiles/profile_1/games/game_1.xml
через ACTION_SEND
.
Я добавил это в Манифест:
<provider
android:name="android.support.v4.content.FileProvider"
android:authorities="com.myapp.fileprovider"
android:grantUriPermissions="true"
android:exported="false">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/filepaths" />
</provider>
и мой filepaths.xml
равен
<paths>
<files-path path="app_profiles/profile_1/games/" name="myGame" />
</paths>
Код (в классе XYActivity):
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setItems(items, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int item) {
....
File file = FileManager.getGameFile(gameID);
Uri fileUri = FileProvider.getUriForFile(XYActivity.this,
"com.myapp.fileprovider", file);
Я получаю следующую ошибку:
java.lang.IllegalArgumentException: Failed to find configured root that contains /data/data/com.myapp/app_profiles/profile_1/games/game_1.xml
at android.support.v4.content.FileProvider$SimplePathStrategy.getUriForFile(FileProvider.java:739)
...
Я проверил с помощью проводника файлов, этот файл делаетСуществуют!
Об объектном файле, который я знаю
file.getPath() /data/user/0/com.myapp/app_profiles/profile_1/games/game_1.xml
file.getAbsolutePath() /data/user/0/com.myapp/app_profiles/profile_1/games/game_1.xml
file.getName() game_1.xml
file.getParent() /data/user/0/com.myapp/app_profiles/profile_1/games
Для path
в filepaths.xml Я пробовал разные, даже неправильные значения:
path="app_profiles/profile_1/gamXes/"
path="app_profiles/profile_1/games/"
path="app_profiles/profile_1/games"
path="profile_1/games"
path="games/"
path="games"
path="."
path="../games/"
Это ничего не меняет.Это говорит о том, что все они не правы, и я просто должен использовать правильное значение, но я не знаю, что это было бы / почему мой не работает.
Есть несколько похожих ответов, и они нене работает для меня
нет подкаталогов: Ошибка FileProvider "Не удалось найти настроенный корень, содержащий /data/data/sawbodeployer.entm.illinois.edu ..."
externalхранилище: Файловый провайдер: не удалось найти настроенный корень, который содержит , java.lang.IllegalArgumentException: не удалось найти настроенный корень, который содержит , многие другие