file:///android_asset/www/trialhtml.html means nothing to an external application like the Web Browser.
Any files in your assets are not accessible by other applications. You have 2 options.
- Copy the html file to shared storage so that the the file can be accessed by the webbrowser.
- Implement a WebView within a new Activity or fragment in your application then
webview.loadUrl("file:///android_asset/www/trialhtml.html");
You do not need to read the asset like other answers are instructing you. WebView will handle this all behind the scenes, including loading other assets like images
As a side note, if the web browser was able to read your files, you would not want to use
i.setClassName("com.android.browser", "com.android.browser.BrowserActivity");
This is because you are explicitly asking for a certain browser, which may or may not be installed on the user's device. I'm reasonably sure this isn't the case on some modern Android devices that come with only Chrome installed.
The correct usage would be something like
Uri uri = Uri.parse("http://www.example.com");
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
startActivity(intent);
By not explicitly setting the class and package name, this ensures that no matter which web browser is installed, the users default will be picked.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…