Intent.ACTION_VIEW

本文详细介绍了 Android 中 Intent 的两种常用动作:ACTION_VIEW 和 ACTION_SENDTO 的使用方法及应用场景,包括如何通过 Intent 打开网页、启动拨号程序、发送短信、播放视频文件以及发送电子邮件等。

1 Intent.ACTION_VIEW

String android.intent.action.VIEW

用于显示用户的数据。比较通用,会根据用户的数据类型打开相应的Activity。比如 tel:13400010001打开拨号程序,http://www.g.cn则会打开浏览器等。

代码1:

Uri uri = Uri.parse("http://www.google.com");     //浏览器
//Uri uri =Uri.parse("tel:1232333");		  //拨号程序
//Uri uri=Uri.parse("geo:39.899533,116.036476");  //打开地图定位
Intent it  = new Intent(Intent.ACTION_VIEW,uri); 
startActivity(it);

代码2:

//调用发送短信的程序
Intent it = new Intent(Intent.ACTION_VIEW);    
it.putExtra("sms_body", "信息内容...");    
it.setType("vnd.android-dir/mms-sms");    
startActivity(it); 

代码3:

//播放视频
Intent intent = new Intent(Intent.ACTION_VIEW); 
Uri uri = Uri.parse("file:///sdcard/media.mp4"); 
intent.setDataAndType(uri, "video/*"); 
startActivity(intent); 


2 Intent.ACTION_SENDTO

String: android.intent.action.SENDTO

说明:发送短信息

//发送短信息
Uri uri = Uri.parse("smsto:13200100001");    
Intent it = new Intent(Intent.ACTION_SENDTO, uri);    
it.putExtra("sms_body", "信息内容...");    
startActivity(it); 

//发送彩信,设备会提示选择合适的程序发送
Uri uri = Uri.parse("content://media/external/images/media/23"); //设备中的资源(图像或其他资源)  
Intent intent = new Intent(Intent.ACTION_SEND);    
intent.putExtra("sms_body", "内容");    
intent.putExtra(Intent.EXTRA_STREAM, uri);    
intent.setType("image/png");    
startActivity(it); 

 

//Email
Intent intent=new Intent(Intent.ACTION_SEND);      
String[] tos={"android1@163.com"};      
String[] ccs={"you@yahoo.com"};      
intent.putExtra(Intent.EXTRA_EMAIL, tos);      
intent.putExtra(Intent.EXTRA_CC, ccs);      
intent.putExtra(Intent.EXTRA_TEXT, "The email body text");      
intent.putExtra(Intent.EXTRA_SUBJECT, "The email subject text");      
intent.setType("message/rfc822");      
startActivity(Intent.createChooser(intent, "Choose Email Client")); 
Android 中,`Intent.ACTION_VIEW` 是一个标准的 Intent 动作常量,用于通知系统启动一个 Activity 来查看某些数据。通常用于展示用户可读的内容,例如打开网页、查看图片、播放视频等。它属于 Intent 的标准动作之一,与其他动作如 `Intent.ACTION_EDIT` 或 `Intent.ACTION_SEND` 不同,`ACTION_VIEW` 更侧重于“只读”操作[^1]。 ### 使用示例 #### 示例 1:使用 `Intent.ACTION_VIEW` 打开网页 ```java Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://www.example.com")); startActivity(intent); ``` 上述代码会触发系统中能够处理网页查看的 Activity,例如默认浏览器或用户选择的浏览器应用。 #### 示例 2:使用 `Intent.ACTION_VIEW` 查看图片 ```java Uri imageUri = Uri.parse("content://media/internal/images/media/1"); // 假设图片的 URI Intent intent = new Intent(Intent.ACTION_VIEW); intent.setDataAndType(imageUri, "image/*"); intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); startActivity(intent); ``` 此代码将启动一个能够查看图片的应用,例如图库应用或第三方图片查看器。 ### 与其他 Intent 常量的对比 | Intent 常量 | 用途 | 示例 | |-------------|------|------| | `Intent.ACTION_VIEW` | 查看数据,通常用于只读操作 | 打开网页、查看图片 | | `Intent.ACTION_EDIT` | 编辑数据 | 启动编辑器应用,编辑特定文件 | | `Intent.ACTION_SEND` | 发送数据给其他应用 | 分享文本、图片到社交平台 | | `Intent.ACTION_DIAL` | 拨打电话界面 | 启动拨号界面并显示特定号码 | | `Intent.ACTION_WEB_SEARCH` | 执行网页搜索 | 启动搜索引擎应用进行搜索 | 不同 Intent 常量触发的系统行为和应用场景各不相同。`ACTION_VIEW` 主要用于展示数据,而 `ACTION_EDIT` 更倾向于允许用户修改数据,`ACTION_SEND` 则用于跨应用的数据共享。 ### 适用场景与匹配规则 使用 `Intent.ACTION_VIEW` 时,系统会根据 `Intent-filter` 匹配合适的组件。例如,在 AndroidManifest.xml 中定义的某个 Activity 可以通过以下方式声明其支持处理网页查看: ```xml <activity android:name=".WebViewerActivity"> <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <data android:scheme="http://" android:host="*" /> </intent-filter> </activity> ``` 如果多个组件满足 Intent 请求,系统会弹出一个选择对话框,让用户决定使用哪个应用来处理请求[^2]。 ###
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值