Я пытаюсь загрузить html файл в webView с SD-карты, его не работает, каталог существует на SD-карте, а также файл в нем. Вот код, который я попробовал.
public void CheckReg()
{
File file = new File(getExternalCacheDir(), "Reginfo/input/register.html" );
if (file.exists())
{
index.loadUrl("file:///sdcard/Reginfo/input/register.html");
Toast.makeText(mContext, "File Exists", Toast.LENGTH_SHORT).show();
}
}
сделай это
File file = new File(Environment.getExternalStorageDirectory()+"/Reginfo/input/register.html");
if (file.exists())
{
index.loadUrl("file://"+Environment.getExternalStorageDirectory()+"/Reginfo/input/register.html");
не забудьте добавить разрешения на манифест
должен быть установлен как,
public void CheckReg()
{
File file = new File(Environment
.getExternalStorageDirectory()
.getAbsolutePath()+"Reginfo/input/register.html" );
if (file.exists())
{
index.loadUrl("file:///"+file);
Toast.makeText(mContext, "File Exists", Toast.LENGTH_SHORT).show();
}
}
Вы не должны жестко закодировать каталог sdcard. Обычно он находится в /mnt/sdcard/, но это никогда не бывает уверенным, а вы можете написать его вот так.
и перед загрузкой файла с SD-карты вы убедитесь, что SD-карта установлена.
Вы можете использовать следующее:
if (!Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){
Log.d(TAG, "No SDCARD");
} else {
index.loadUrl("file://"+Environment.getExternalStorageDirectory()+"/Reginfo/input/register.html");
}