使用意图筛选器

点击下载源代码

1、创建一个Intents项目,给该项目加入一个新类,命名为MyBrowserActivity。在res/layout目录下新增一个browser.xml;

2、在AndroidManifest.xml文件里加入例如以下代码:

加入权限:

    <uses-permission android:name="android.permission.CALL_PHONE" /><uses-permission android:name="android.permission.INTERNET" />
        <activityandroid:name=".MyBrowserActivity"android:label="@string/app_name" ><intent-filter><action android:name="android.intent.action.VIEW" /><action android:name="net.zenail.MyBrowser" /><category android:name="android.intent.category.DEFAULT" /><data android:scheme="http" /></intent-filter></activity>

action:动作。category:类别;data:指明获取的数据类型。

3、在main.xml文件里加入三个Button:

    <Buttonandroid:id="@+id/btn_webbrowser"android:layout_width="fill_parent"android:layout_height="wrap_content"android:onClick="onClickWebBrowser"android:text="Web Browser" /><Buttonandroid:id="@+id/btn_makecalls"android:layout_width="fill_parent"android:layout_height="wrap_content"android:onClick="onClickMakeCalls"android:text="Make Calls" /><Buttonandroid:id="@+id/btn_launchMyBrowser"android:layout_width="fill_parent"android:layout_height="wrap_content"android:onClick="onClickLaunchMyBrowser"android:text="Launch My Browser" />

4、在IntentsActivity.java文件里加入三个Button相应的三个点击方法:

    public void onClickWebBrowser(View v) {Intent intent = new Intent(android.content.Intent.ACTION_VIEW,Uri.parse("http://网址"));//此处输入百度网址。CSDN不让加链接...//使用createChooser()的优点://1、将显示的选择对话框的标题改掉。且没有了Use by default for this action选项//2、当没有活动与程序的Intent对象匹配时,应用程序不会崩溃//startActivity(intent.createChooser(intent, "Open URL using..."));startActivity(intent);}public void onClickMakeCalls(View v) {Intent intent = new Intent(android.content.Intent.ACTION_DIAL,Uri.parse("tel:+651234567"));startActivity(intent);}public void onClickLaunchMyBrowser(View v) {Intent intent = new Intent("net.zenail.MyBrowser");intent.setData(Uri.parse("http://网址"));//此处输入百度网址,CSDN不让加链接...startActivity(intent);}

5、在browser.xml中加入一个WebView:

    <WebViewandroid:id="@+id/WebView01"android:layout_width="wrap_content"android:layout_height="wrap_content" />

6、在MyBrowserActivity.java文件里加入例如以下代码,实现浏览网页功能:

public class MyBrowserActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);setContentView(R.layout.browser);Uri url = getIntent().getData();WebView webView = (WebView) findViewById(R.id.WebView01);webView.setWebViewClient(new Callback());webView.loadUrl(url.toString());}private class Callback extends WebViewClient {@Overridepublic boolean shouldOverrideUrlLoading(WebView view, String url) {// TODO Auto-generated method stubreturn false;}}
}

7、执行一下,效果例如以下:

点击第三个button:

点击第一个button:

若想完好意图筛选器,则在IntentsActivity.java的onClickWebBrowser()方法中加入createChooser()方法:

startActivity(intent.createChooser(intent, "Open URL using..."));

加入后的效果例如以下:

这时就可以选择你想要选择的应用程序就可以~

附、使用createChooser()的优点:

1、将显示的选择对话框的标题改掉,且没有了Use by default for this action选项。

2、当没有活动与程序的Intent对象匹配时,应用程序不会崩溃。

转载于:https://www.cnblogs.com/llguanli/p/6845361.html

Android学习笔记(十八)——使用意图筛选器和实现浏览网页(附源代码)相关推荐

  1. python3.4学习笔记(十八) pycharm 安装使用、注册码、显示行号和字体大小等常用设置...

    python3.4学习笔记(十八) pycharm 安装使用.注册码.显示行号和字体大小等常用设置 Download JetBrains Python IDE :: PyCharm http://ww ...

  2. windows内核开发学习笔记十八:IRP 处理的标准模式

    windows内核开发学习笔记十八:IRP 处理的标准模式 在 Windows 内核中的请求基本上是通过 I/O Request Packet 完成的. I/O manager ---> Dis ...

  3. Polyworks脚本开发学习笔记(十八)-用SDK开发Polyworks插件

    Polyworks脚本开发学习笔记(十八)-用SDK开发Polyworks插件 插件是由PolyWorks加载的动态链接库(DLL文件),然后查询Polyworks模块,以确定它们具有哪些功能,提供给 ...

  4. 学习笔记(十八):MoRe-Fi用深度学习网络从非线性信号中恢复呼吸波形

    <MoRe-Fi: Motion-robust and Fine-grained Respiration Monitoring via Deep-Learning UWB Radar>学习 ...

  5. 【D3D11游戏编程】学习笔记十八:模板缓冲区的使用、镜子的实现

    (注:[D3D11游戏编程]学习笔记系列由CSDN作者BonChoix所写,转载请注明出处:http://blog.csdn.net/BonChoix,谢谢~) 模板缓冲区(Stencil Buffe ...

  6. Pro Android学习笔记 四八 ActionBar 1 Home图标区

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! Acti ...

  7. three.js学习笔记(十八)——调整材质

    介绍 到现在为止,我们都在创建新的着色器材质,但是如果我们想要修改一个Three.js内置的材质呢?或许我们对MeshStandardMaterial的处理结果感到满意,但是希望往里边添加顶点动画. ...

  8. 《算法图解》学习笔记(八):贪婪算法和NP完全问题(附代码)

    欢迎关注WX公众号:[程序员管小亮] python学习之路 - 从入门到精通到大师 文章目录 欢迎关注WX公众号:[程序员管小亮] [python学习之路 - 从入门到精通到大师](https://b ...

  9. android 学习笔记(八)building system8.5 shell脚本的学习

    虽然接触她很久了,但只能说认识,.说道很熟,熟到称兄道弟,这是我的目标.想要混熟总得经历些事情,那么现在开始吧.最近在学习android,还是从android开始吧! android源码中的build ...

最新文章

  1. Go 1.12发布:改进了运行时性能以及模块支持
  2. AXI总线基本知识:(基于uart_lite IP核)
  3. iPhone中的heic格式怎么查看,heic文件怎么打开
  4. TCP连接的建立(二)
  5. WebRTC通话原理
  6. mysql 5.5 slave 配置_mysql5.5 master-slave(Replication)配置方法
  7. 工作177:时间戳转换
  8. C++11并发实战(专栏)
  9. stm32f407 6个串口dma_stm32之DMA
  10. 折纸 瓦力机器人_折纸图解金鱼筷子架
  11. java 非法字符: \65279
  12. 子龙山人 opengl系列 - 网址
  13. 分类预测 | MATLAB实现LSSVM(最小二乘支持向量机)分类
  14. viper4android资源分享,一步一步教你如何使4.42版本ROOT并且安装Viper4Android音效软件...
  15. 【ARCore 入门开发课程系列】ARCore 打造沉浸式体验全过程
  16. 叹20年奶茶江湖纷争,入局奶茶行业仍有机会
  17. php三级分销思路 数据库设计_分销系统的用户关系,用户与推广链接的数据库设计。设计思路...
  18. 开源全文搜索(搜索引擎)
  19. Java011-数组及其常见问题
  20. 【Web技术】1091- 跨浏览器窗口 ,7种方式,你还知道几种呢?

热门文章

  1. php model controller,Laravel 中 Controller访问Model函数/常量
  2. php和数据库的永久链接,php – WordPress永久链接,包括名称和ID,但仅考虑ID
  3. 使用Keras打造一个实时可用交通标志识别App
  4. 爱奇艺NLP:BiLSTM_CRF的关键词自动抽取
  5. md360 android,MD360Player4Android 学习的简单使用
  6. prestashop后台如何删除订单
  7. 一张图11招学会Python网络黑客
  8. 第14章 使用Kotlin 进行 Android 开发
  9. Juniper发展史
  10. 模块化配电系统在高密度数据中心的应用