私は私たちのアプリ(Xamarin C#)私たちはサーバーからファイルをダウンロードします。我々は新たにダウンロードしたファイルにし、URIからURIを取得succefulダウンロードの終わりに、私たちは、ファイルのパスを取得:アンドロイド4.4.2でとAndroid 5 URIとパスでAndroid 6ダウンロードファイルへのパスを取得
Android.Net.Uri uri = downloadManager.GetUriForDownloadedFile(entry.Value);
path = u.EncodedPath;
は、次のようになります。
uri="file:///storage/emulated/0/Download/2.zip"
path = u.EncodedPath ="/storage/emulated/0/Download/2.zip"
私たちは、そのファイルを処理するためにパスを使用しています。 問題は、Android 6(実際のネクサス電話上)に、我々は完全に異なるURIとパスをすることを取得されています
uri="content://downloads/my_downloads/2802"
path="/my_downloads/2802"
これはにFileNotFound例外をスローすることにより、自分のコードを壊します。ダウンロードしたファイルが存在し、ダウンロードフォルダにあることに注意してください。 Android 6から取得したURIを使用して、適切なファイルパスを取得してファイルを処理できるようにするにはどうすればよいですか?
を使用すると、ダウンロードフォルダを使用してURIを構築することができる、 [email protected]
@これは、これは私がやったことでSDK 22と23の両方で試してみましたSDK 22 – user1523271
、同じ結果 – user1523271