在Android开发中,Intent是应用程序之间通信的重要机制,它用于启动其他组件或传递数据。本文将详细介绍Android Intent的几种常见用法。 1. **显示网页** 当你需要在应用中打开一个网页时,可以通过ACTION_VIEW Intent来实现。首先创建一个Uri对象解析网页URL,然后创建Intent,将ACTION_VIEW和Uri作为参数传入,最后调用startActivity()启动浏览器展示网页。例如: ```java Uri uri = Uri.parse("http://www.google.com"); Intent it = new Intent(Intent.ACTION_VIEW, uri); startActivity(it); ``` 2. **显示地图和路径规划** - 显示地图:同样使用ACTION_VIEW Intent,但这次Uri解析为地理坐标。这会打开地图应用展示指定位置。 ```java Uri uri = Uri.parse("geo:38.899533,-77.036476"); Intent it = new Intent(Intent.ACTION_VIEW, uri); startActivity(it); ``` - 路径规划:提供起始和目的地坐标,Intent将引导用户至路线规划页面。 ```java Uri uri = Uri.parse("http://maps.google.com/maps?f=d&saddr=startLat%20startLng&daddr=endLat%20endLng&hl=en"); Intent it = new Intent(Intent.ACTION_VIEW, uri); startActivity(it); ``` 3. **拨打电话** 拨打电话有两种方式:一种是调用拨号器(ACTION_DIAL),另一种是直接拨打电话(ACTION_CALL)。ACTION_DIAL不实际拨打电话,而ACTION_CALL需要权限 `<uses-permission android:name="android.permission.CALL_PHONE" />`。 ```java Uri uri = Uri.parse("tel:xxxxxx"); Intent it = new Intent(Intent.ACTION_DIAL, uri); startActivity(it); // 或者直接拨打电话 Intent it = new Intent(Intent.ACTION_CALL, Uri.parse("tel.xxxxxx")); ``` 4. **发送SMS/MMS** - 发送短信:ACTION_VIEW Intent结合特定的Uri格式,可以启动短信应用预填充文本。 ```java Intent it = new Intent(Intent.ACTION_VIEW); it.putExtra("sms_body", "The SMS text"); it.setType("vnd.android-dir/mms-sms"); startActivity(it); ``` - 发送彩信:ACTION_SEND Intent结合Uri指向多媒体文件,可以发送带有附件的彩信。 ```java Uri uri = Uri.parse("content://media/external/images/media/23"); Intent it = new Intent(Intent.ACTION_SEND); it.putExtra("sms_body", "some text"); it.putExtra(Intent.EXTRA_STREAM, uri); it.setType("image/png"); startActivity(it); ``` 5. **发送邮件** ACTION_SENDTO Intent用于指定收件人并打开邮件客户端。ACTION_SEND则允许选择邮件客户端,并预填邮件正文和类型。 ```java Uri uri = Uri.parse("mailto:xxx@abc.com"); Intent it = new Intent(Intent.ACTION_SENDTO, uri); startActivity(it); Intent it = new Intent(Intent.ACTION_SEND); it.putExtra(Intent.EXTRA_EMAIL, "me@abc.com"); it.putExtra(Intent.EXTRA_TEXT, "The email body text"); it.setType("text/plain"); startActivity(Intent.createChooser(it, "Choose Email Client")); Intent it = new Intent(Intent.ACTION_SEND); String[] tos = {"me@abc.com"}; it.putExtra(Intent.EXTRA_EMAIL, tos); ``` 这些只是Intent用法的一部分,实际上Intent还能用于启动Activity、BroadcastReceiver、Service等,甚至可以用来实现组件间的深度链接和App之间的跳转。Intent配合Flag、Extra等可以实现更复杂的交互逻辑,是Android开发中不可或缺的部分。理解并熟练掌握Intent的使用,对于提升Android应用的用户体验和功能完整性至关重要。
- 粉丝: 7
- 资源: 889
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助