解决方法如下:
if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this, new String[] {Manifest.permission.READ_EXTERNAL_STORAGE}, 1);
}
webView.getSettings().setAllowFileAccessFromFileURLs(true);
webView.getSettings().setAllowUniversalAccessFromFileURLs(true);
String filePath = Environment.getExternalStorageDirectory().getAbsolutePath() + "/index.html";
File file = new File(filePath);
if (file.exists()) {
// 加载文件
webView.loadUrl("file://" + filePath);
} else {
// 文件不存在
Toast.makeText(this, "文件不存在", Toast.LENGTH_SHORT).show();
}
请注意,在Android 10(API级别29)及更高版本上,对于外部存储的访问权限有一些限制。如果你的应用需要在Android 10及更高版本上访问外部存储,你需要使用特殊的访问权限,如MANAGE_EXTERNAL_STORAGE权限。