Intent intent = new Intent ();intent . setAction ( "android.intent.action.VIEW" );Uri content_url = Uri . parse ( "http://www.163.com" );intent . setData ( content_url );startActivity ( intent );
Intent intent = new Intent ();intent . setAction ( "android.intent.action.VIEW" );Uri content_url = Uri . parse ( "http://www.163.com" );intent . setData ( content_url );intent . setClassName ( "com.android.browser" , "com.android.browser.BrowserActivity" );startActivity ( intent );
Intent intent = new Intent ();intent . setAction ( "android.intent.action.VIEW" );Uri content_url = Uri . parse ( "file:///sdcard/robin.hu/help.html" );intent . setData ( content_url );intent . setClassName ( "com.android.browser" , "com.android.browser.BrowserActivity" );startActivity ( intent );
Uri.parse("file:///sdcard/robin.hu/help.html");
Uri content_url = Uri.parse("content://com.android.htmlfileprovider/sdcard/robin.hu/help.html");
Uri.parse("file:///sdcard/robin.hu/help.html");
Uri content_url = Uri.parse("content://com.android.htmlfileprovider/sdcard/robin.hu/help.html");
static void startBrower ( Context context , String uri ){startBrower ( context , Uri . parse ( uri ));}static void startBrower ( Context context , Uri uri ){Intent intent = new Intent ();intent . setAction ( "android.intent.action.VIEW" );/*其实可以不用添加该Category*/intent . addCategory ( "android.intent.category.BROWSABLE" );intent . setData ( uri );intent . addFlags ( Intent . FLAG_ACTIVITY_NEW_TASK );/*如果想用浏览器打开本地html文件的话,则只能通过显式intent启动浏览器*/boolean explicitMode = false ;String scheme = uri . getScheme ();if ( scheme != null && scheme . startsWith ( "file" )) {explicitMode = true ;}if ( explicitMode ) {intent . setClassName ( "com.android.browser" , "com.android.browser.BrowserActivity" );} else {intent . addCategory ( "android.intent.category.BROWSABLE" );}context . startActivity ( intent );}static void startBrower ( Context context , String uri , String packageName , String className ){startBrower ( context , Uri . parse ( uri ), packageName , className );}static void startBrower ( Context context , Uri uri , String packageName , String className ){Intent intent = new Intent ();intent . setAction ( "android.intent.action.VIEW" );intent . setData ( uri );intent . addFlags ( Intent . FLAG_ACTIVITY_NEW_TASK );intent . setClassName ( packageName , className );context . startActivity ( intent );}
<manifest xmlns:android = "http://schemas.android.com/apk/res/android" package = "com.android.browser" ><original-package android:name = "com.android.browser" /><permission android:name = "com.android.browser.permission.PRELOAD"android:label = "@string/permission_preload_label"android:protectionLevel = "signatureOrSystem" /><uses-permission android:name = "android.permission.ACCESS_COARSE_LOCATION" /><uses-permission android:name = "android.permission.ACCESS_DOWNLOAD_MANAGER" /><uses-permission android:name = "android.permission.ACCESS_FINE_LOCATION" /><uses-permission android:name = "android.permission.ACCESS_NETWORK_STATE" /><uses-permission android:name = "android.permission.ACCESS_WIFI_STATE" /><uses-permission android:name = "android.permission.GET_ACCOUNTS" /><uses-permission android:name = "android.permission.USE_CREDENTIALS" /><uses-permission android:name = "android.permission.INTERNET" /><uses-permission android:name = "android.permission.NFC" /><uses-permission android:name = "android.permission.SEND_DOWNLOAD_COMPLETED_INTENTS" /><uses-permission android:name = "android.permission.SET_WALLPAPER" /><uses-permission android:name = "android.permission.WAKE_LOCK" /><uses-permission android:name = "android.permission.WRITE_EXTERNAL_STORAGE" /><uses-permission android:name = "android.permission.WRITE_SETTINGS" /><uses-permission android:name = "android.permission.READ_SYNC_SETTINGS" /><uses-permission android:name = "android.permission.WRITE_SYNC_SETTINGS" /><uses-permission android:name = "android.permission.MANAGE_ACCOUNTS" /><uses-permission android:name = "com.android.browser.permission.READ_HISTORY_BOOKMARKS" /><uses-permission android:name = "com.android.browser.permission.WRITE_HISTORY_BOOKMARKS" /><uses-permission android:name = "com.android.launcher.permission.INSTALL_SHORTCUT" /><application android:name = "Browser"android:label = "@string/application_name"android:icon = "@mipmap/ic_launcher_browser"android:backupAgent = ".BrowserBackupAgent"android:hardwareAccelerated = "true"android:taskAffinity = "android.task.browser" ><provider android:name = ".provider.BrowserProvider2"android:authorities = "com.android.browser;browser"android:multiprocess = "true"android:readPermission = "com.android.browser.permission.READ_HISTORY_BOOKMARKS"android:writePermission = "com.android.browser.permission.WRITE_HISTORY_BOOKMARKS" ><path-permission android:path = "/bookmarks/search_suggest_query"android:readPermission = "android.permission.GLOBAL_SEARCH" /></provider><activity android:name = "BrowserActivity"android:label = "@string/application_name"android:launchMode = "singleTask"android:alwaysRetainTaskState = "true"android:configChanges = "orientation|keyboardHidden|keyboard|screenSize"android:theme = "@style/BrowserTheme"android:windowSoftInputMode = "adjustResize" ><intent-filter><action android:name = "android.speech.action.VOICE_SEARCH_RESULTS" /><category android:name = "android.intent.category.DEFAULT" /></intent-filter><!-- For these schemes were not particular MIME type has beensupplied, we are a good candidate. --><intent-filter><action android:name = "android.intent.action.VIEW" /><category android:name = "android.intent.category.DEFAULT" /><category android:name = "android.intent.category.BROWSABLE" /><data android:scheme = "http" /><data android:scheme = "https" /><data android:scheme = "about" /><data android:scheme = "javascript" /></intent-filter><!-- For these schemes where any of these particular MIME typeshave been supplied, we are a good candidate. --><intent-filter><action android:name = "android.intent.action.VIEW" /><category android:name = "android.intent.category.BROWSABLE" /><category android:name = "android.intent.category.DEFAULT" /><data android:scheme = "http" /><data android:scheme = "https" /><data android:scheme = "inline" /><data android:mimeType = "text/html" /><data android:mimeType = "text/plain" /><data android:mimeType = "application/xhtml+xml" /><data android:mimeType = "application/vnd.wap.xhtml+xml" /></intent-filter><!-- For viewing saved web archives. --><intent-filter><action android:name = "android.intent.action.VIEW" /><category android:name = "android.intent.category.BROWSABLE" /><category android:name = "android.intent.category.DEFAULT" /><data android:scheme = "http" /><data android:scheme = "https" /><data android:scheme = "file" /><data android:mimeType = "application/x-webarchive-xml" /></intent-filter><!-- Accept inbound NFC URLs at a low priority --><intent-filter android:priority = "-101" ><action android:name = "android.nfc.action.NDEF_DISCOVERED" /><category android:name = "android.intent.category.DEFAULT" /><data android:scheme = "http" /><data android:scheme = "https" /></intent-filter><!-- We are also the main entry point of the browser. --><intent-filter><action android:name = "android.intent.action.MAIN" /><category android:name = "android.intent.category.DEFAULT" /><category android:name = "android.intent.category.LAUNCHER" /><category android:name = "android.intent.category.BROWSABLE" /></intent-filter><!-- The maps app is a much better experience, so it's notworth having this at all... especially for a demo!<intent-filter android:label="Map In Browser"><action android:name="android.intent.action.VIEW" /><category android:name="android.intent.category.DEFAULT" /><data android:mimeType="vnd.android.cursor.item/postal-address" /></intent-filter>--><intent-filter><action android:name = "android.intent.action.WEB_SEARCH" /><category android:name = "android.intent.category.DEFAULT" /><category android:name = "android.intent.category.BROWSABLE" /><data android:scheme = "" /><data android:scheme = "http" /><data android:scheme = "https" /></intent-filter><intent-filter><action android:name = "android.intent.action.MEDIA_SEARCH" /><category android:name = "android.intent.category.DEFAULT" /></intent-filter><intent-filter><action android:name = "android.intent.action.SEARCH" /><category android:name = "android.intent.category.DEFAULT" /></intent-filter><meta-data android:name = "android.app.searchable"android:resource = "@xml/searchable" /></activity><activity android:name = "ShortcutActivity"android:theme = "@style/ShortcutTheme"android:label = "@string/shortcut_bookmark"android:icon = "@mipmap/ic_launcher_shortcut_browser_bookmark" ><intent-filter><action android:name = "android.intent.action.CREATE_SHORTCUT" /><category android:name = "android.intent.category.DEFAULT" /></intent-filter></activity><activity android:name = "BrowserPreferencesPage" android:label = "@string/menu_preferences" ><intent-filter><action android:name = "android.intent.action.MANAGE_NETWORK_USAGE" /><category android:name = "android.intent.category.DEFAULT" /></intent-filter></activity><activity android:name = "BookmarkSearch"android:label = "@string/bookmarks_search"android:stateNotNeeded = "true"android:theme = "@android:style/Theme.NoDisplay"android:excludeFromRecents = "true" ><intent-filter><action android:name = "android.intent.action.SEARCH" /><category android:name = "android.intent.category.DEFAULT" /></intent-filter><meta-data android:name = "android.app.searchable"android:resource = "@xml/bookmarks_searchable" /></activity><activity android:name = "AddBookmarkPage" android:label = "Save bookmark"android:theme = "@style/DialogWhenLarge"android:configChanges = "orientation|keyboardHidden|screenSize" ><intent-filter><action android:name = "android.intent.action.INSERT" /><category android:name = "android.intent.category.DEFAULT" /><data android:mimeType = "vnd.android.cursor.dir/bookmark" /></intent-filter></activity><activity android:name = "ComboViewActivity" ></activity><!-- Bookmark thumbnail homescreen widget --><receiverandroid:name = ".widget.BookmarkThumbnailWidgetProvider"android:label = "@string/bookmarks" ><intent-filter><actionandroid:name = "android.appwidget.action.APPWIDGET_UPDATE" /><actionandroid:name = "com.android.browser.BOOKMARK_APPWIDGET_UPDATE" /></intent-filter><meta-dataandroid:name = "android.appwidget.provider"android:resource = "@xml/bookmarkthumbnailwidget_info" /></receiver><serviceandroid:name = ".widget.BookmarkThumbnailWidgetService"android:permission = "android.permission.BIND_REMOTEVIEWS"android:exported = "false" /><receiverandroid:name = ".widget.BookmarkWidgetProxy"android:exported = "false" /><activity android:name = ".widget.BookmarkWidgetConfigure"android:theme = "@android:style/Theme.Holo.DialogWhenLarge" ><intent-filter><action android:name = "android.appwidget.action.APPWIDGET_CONFIGURE" /></intent-filter></activity><!-- Makes .BrowserActivity the search target for any activity in Browser --><meta-data android:name = "android.app.default_searchable" android:value = ".BrowserActivity" /><!-- Application code for RLZ tracking. RLZ assigns non-unique, non-personally identifiabletracking labels to client products; these labels sometimes appear in Google searchqueries. See http://code.google.com/p/rlz for more info.This value signifies to the RLZ client that this application uses RLZ tracking. --><meta-data android:name = "com.google.android.partnersetup.RLZ_ACCESS_POINT"android:value = "@string/rlz_access_point" /><receiver android:name = ".OpenDownloadReceiver" ><intent-filter><action android:name = "android.intent.action.DOWNLOAD_NOTIFICATION_CLICKED" /></intent-filter></receiver><!-- For custom home pages (like most visited) --><providerandroid:name = ".homepages.HomeProvider"android:authorities = "com.android.browser.home"android:readPermission = "com.android.browser.permission.READ_HISTORY_BOOKMARKS"android:exported = "false" /><receiver android:name = ".AccountsChangedReceiver" ><intent-filter><action android:name = "android.accounts.LOGIN_ACCOUNTS_CHANGED" /></intent-filter></receiver><receiver android:name = ".PreloadRequestReceiver"android:permission = "com.android.browser.permission.PRELOAD" ><intent-filter><action android:name = "android.intent.action.PRELOAD" /><data android:scheme = "http" /></intent-filter></receiver><provider android:name = ".provider.SnapshotProvider"android:authorities = "com.android.browser.snapshots"android:exported = "false" /></application></manifest>