Отказ в разрешении при чтении локального файла HTML в SDCard в 2.3 - PullRequest
0 голосов
/ 23 декабря 2011

При чтении локального HTML-файла в sdcard, я использую это,

webview.loadUrl("content://com.android.htmlfileprovider/sdcard/123.html").

Приведенный выше код может работать в 2.2 emulator, но не может работать в 2.3 emulator и предоставляет следующую информацию:

отказ в разрешении: открытие провайдера

Теперь я изменил его на:

webview.loadUrl("file:////sdcard/123.html") 

и это работает.

Я все еще хочу знать, почему предыдущий код не может работать в эмуляторе 2.3.

1 Ответ

0 голосов
/ 23 декабря 2011

Теперь я изменил его на: webview.loadUrl ("file: ////sdcard/123.html"), и он работает.

Это удивительно, учитываянеправильный путь для эмулятора Android 2.3 (четыре слеша и отсутствие /mnt).

Не используйте жесткие имена каталогов.Используйте Environment.getExternalStorageDirectory(), чтобы добраться до корня внешнего хранилища, конструкторы File, чтобы построить полный путь на основе этого каталога, и Uri.fromFile(), чтобы создать file:/// Uri из этого.

Я все еще хочу знать, почему предыдущий код не может работать в эмуляторе 2.3.

Этот поставщик больше не экспортируется и поэтому больше не доступен для злоупотреблений.Вы не должны были использовать этого поставщика в первую очередь, так как он был недокументирован и не поддерживается.

...