自分では解決できないような問題に遭遇しました。
このアプリケーションの重要な要素は、URL からファイルをダウンロードして保存することです。AsyncTask
このファイルは最終的に保存されます
Environment.getExternalStorageDirectory().toString() + "/" + fileName + ".xls")
次に、ファイルが作成されます。
File file = new File(Environment.getExternalStorageDirectory().toString() + "/" + fileName + ".xls");
そしてストリームが作られる
InputStream is = new FileInputStream(file);
その時点でFileNotFoundException ENOENT : no such file or directory が発生します。
AndroidManifest.xml ファイルに適切な権限が設定されています
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
Environment.getExternalStorageState() は「マウントされた」値を返します。
また、ファイルをダウンロードする前に、アプリで適切な資格情報を使用してログインする必要があるため、インターネット接続が確立されていることを確認できます。
API 16、Android 4.1 (Jelly Bean) 向けにこのアプリを作成しています。どんな助けでも大歓迎です!
編集: Samsung SM-G800G (Android 5.1.1、API 22) でこれを機能させることができました。しかし、アプリケーションは私の Nexus One (Android 6.0、API 23) や SAMSUNG SM-G900F (Android 6.0.1、API 23) では動作しません。
したがって、Android のバージョンがダウンロードに与える影響については、間違いなく何かが起こっているので、現在調査中です。