安卓的Intent

简介: 从接触安卓开发一开始,我们就开始学习Activity这一大组件怎么用,然后就会在Activity之间跳转时遇到Intent。

前言

从接触安卓开发一开始,我们就开始学习Activity这一大组件怎么用,然后就会在Activity之间跳转时遇到Intent。但是Intent的用法着实让我至今还是很困扰,所以把一些使用方法记录下来,方便之后提高这一块知识的理解。

正篇

Intent是安卓特有的,意为意图,我理解为载具,因为它可以把你想要做的想要送达和传递的东西发送和接受到。 它的一些用法如下列举:

Android中一些常见的Intent的习惯用法:
如何通过Intent发送短信、发送邮件、启动摄像机拍照录视频、设置闹铃、打开WIFI设置界面等等

发送短信

示例:

//使用Intent.ACTION_SENDTO
Intent intent = new Intent(Intent.ACTION_SENDTO);
//指定URI使用smsto:协议,协议后面是接收短信的对象
Uri uri = Uri.parse("smsto:10000");
intent.setData(uri);
//设置消息体
intent.putExtra("sms_body", "您的电话费余额已不足");
ComponentName componentName = intent.resolveActivity(getPackageManager());
if(componentName != null){
    //跳转
    startActivity(intent);
}

如果在构建URI时,只写了smsto:,而没有写后面的电话号码,其实该intent也能启动短信应用,但在启动了短信应用之后,还要我们自己手动输入电话号码。

我们可以通过key为sms_body的extra字段设置短信的内容。

注意: 在startActivity(intent)运行之后,尽管短信应用会启动,可是短信不会直接发出去,而需要我们再点击一下发送消息才可以发出去。

摄像

打开相册选择照片

Intent intent = new Intent(Intent.ACTION_PICK, null);
intent.setDataAndType(
MediaStore.Images.Media.EXTERNAL_CONTENT_URI, "image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
//ALBUM_REQUEST_CODE: 返回和接受值,获取到可以在onActivityResult处理
startActivityForResult(intent, ALBUM_REQUEST_CODE);

处理相册选择的图片获取地址(通过Uri获取图片绝对地址):

@Override
 public void onActivityResult(int requestCode, int resultCode, Intent data) {      
 super.onActivityResult(requestCode, resultCode, data);    
 if (resultCode == Activity.RESULT_OK) {           
    if (requestCode == AppConstants.ALBUM_REQUEST_CODE) {               
         try {
               Uri uri = data.getData();                    
               final String absolutePath= getAbsolutePath(mActivity, uri);
               ogUtil.d("path=" + absolutePath);
             } catch (Exception e) {
                   e.printStackTrace();
          }
            }
        }
    }

总结

先列出两个Intent的使用方法,后续再慢慢补充,以及深入源码学习。

相关文章
|
4月前
|
Android开发 开发者
Android基础知识:什么是Intent?有哪些类型的Intent?
Android基础知识:什么是Intent?有哪些类型的Intent?
279 0
|
11月前
|
存储 SQL 人工智能
Android Activity启动流程一:从Intent到Activity创建
Android Activity启动流程一:从Intent到Activity创建
|
1月前
|
Java Android开发 UED
安卓scheme_url调端:如果手机上多个app都注册了 http或者https 的 intent。 调端的时候,调起哪个app呢?
当多个Android应用注册了相同的URL Scheme(如http或https)时,系统会在尝试打开这类链接时展示一个选择对话框,让用户挑选偏好应用。若用户选择“始终”使用某个应用,则后续相同链接将直接由该应用处理,无需再次选择。本文以App A与App B为例,展示了如何在`AndroidManifest.xml`中配置对http与https的支持,并提供了从其他应用发起调用的示例代码。此外,还讨论了如何在系统设置中管理这些默认应用选择,以及建议开发者为避免冲突应注册更独特的Scheme。
|
4月前
|
定位技术 Android开发
Intent在Android中的几种用法
Intent在Android中的几种用法
39 1
|
4月前
|
Java Android开发
Android桌面快捷方式图标生成与删除 使用Intent与launcher交互
Android桌面快捷方式图标生成与删除 使用Intent与launcher交互
79 1
|
Android开发
关于Android中intent传值问题
关于Android中intent传值问题
92 0
|
4月前
|
Android开发
Android Studio App开发入门之在活动之间传递消息(附源码 超详细必看)(包括显示和隐式Intent,向上一个和下一个Activity发送数据)
Android Studio App开发入门之在活动之间传递消息(附源码 超详细必看)(包括显示和隐式Intent,向上一个和下一个Activity发送数据)
175 0
|
Java Android开发
Android 中通过Intent传递类对象,通过实现Serializable和Parcelable接口两种方式传递对象
Android 中通过Intent传递类对象,通过实现Serializable和Parcelable接口两种方式传递对象
111 1
|
Java API Android开发
Android 中Activity和Intent的详解
Android 中Activity和Intent的详解
109 0
|
Java API 文件存储
Android:常用的隐式 Intent
本篇文章的内容其实是属于上一篇文章(Android 基础知识5:Intent 和 Intent 过滤器)的延伸,考虑到篇幅长度的原因,所以没有把本篇文章的内容写到上一篇文章中,另外单独写成一篇文章还有个好处就是方便读者查阅。这篇文章主要为大家列举了常用的隐式 Intent,大家如果在平时工作中有相关的需求可以直接复制代码使用。
94 0
Android:常用的隐式 Intent