安卓的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的使用方法,后续再慢慢补充,以及深入源码学习。

相关文章
|
11月前
|
Android开发
关于安卓DialogFragment使用(三)
关于安卓DialogFragment使用(三)
138 0
|
12月前
|
XML Java Android开发
Android安卓——SimpleAdapter的简单使用
本文是博主对Adapter(适配器)的一些理解,为了加深对Adapter的理解以及记录自己的阶段学习而写,同时也适合初学者阅读,参考本条博客的逻辑进行学习。
84 0
|
定位技术 Android开发
安卓采用Intent切换activity
Intent:Android程序中各组件之间进行交互的一种重要方式。可以指明当前组件 想要执行的动作,也可以在不同组件之间传递数据。如启动活动、启动服务、发送广播等。
120 0
|
XML 文件存储 Android开发
安卓 Activity 详解
常见容器视图示例: 类名称 description LinearLayout 在一行或一列里显示视图。 RelativeLayout 相对某个视图放置其他视图。 FrameLayout ViewGroup 包含一个子视图。 ScrollView 一种 FrameLayout,旨在让用户能够在视图中滚动查看内容。 ConstraintLayout 这是更新的 viewgroup;可以灵活地放置视图。在这节课的稍后阶段,我们将学习 ConstraintLayout。 Activity 会创建视图来向用户显示信息,并使用户与 Activity 互动。视图是 Android UI 框架中的类。它们占据
163 0
|
Android开发 iOS开发
Android - 安卓设备在微信中播放视频结束后出现广告的解决办法
Android - 安卓设备在微信中播放视频结束后出现广告的解决办法
171 0
|
XML IDE 数据可视化
Android与iOS的对决
Android的市场份额已经超过80%了,在这一背景下,创业公司永恒的问题“Android优先还是iOS优先”愈显棘手。不过也许经理们和非技术出身的创始人们不用操心这个问题,他们可以把这个烦心的问题交给开发者们!那开发者们是咋想的?很简单,谁能让他们更轻松,谁就能获得巨大的优势。
140 0
|
数据安全/隐私保护 Android开发 安全