Android FileProvider.GetUriForFile正在切断URI的开始

时间:2017-05-08 00:11:58

标签: android xamarin xamarin.android android-fileprovider

我正在尝试更新获取数据库文件的代码。我正在尝试使用FileProvider

我有点卡住了,因为原始文件路径是"/storage/emulated/0/Android/data/com.abc/files/abcMobile.db3”

我需要获取FileProvider.GetUriForFile返回的URI,在其开头包含“/ storage / emulated / 0 /”。

这是我的代码:

Log.Info ("directory", GetDirectory (dir).ToString());
                Log.Info ("filename", filename);
                File newFile = new File (GetDirectory (dir).AbsolutePath, "/" + filename);
                Android.Net.Uri androidContentUri = FileProvider.GetUriForFile (Application.Context, Application.Context.PackageName + ".fileprovider", newFile);
                System.Uri systemContentUri = SystemUri (androidContentUri);
                return systemContentUri;

在上面的代码中,我创建了一个路径为"/storage/emulated/0/Android/data/com.abc/files/abcMobile.db3”的文件,但是当我将文件传递给FileProvider.GetUriForFile()时,似乎创建了{content://com.abc.fileprovider/./Android/data/com.abc/files/abcMobile.db3}的Android.Net.URI然后我把它投到System.Net.URI,变成{content://com.abc.fileprovider/Android/data/com.abc/files/abcMobile.db3}

我只需要弄清楚为什么它会从"/storage/emulated/0/“的开头删除Android.Net.Uri并阻止它发生,然后才能正常工作。有什么想法吗?

0 个答案:

没有答案