CODE函数-英雄云拓展知识分享
132
2023-10-25
【摘要】 本书摘自《基于Kotlin的Android应用程序开发》一书中第3章,第3节,由薛岗编著。
3.3 基于 Intent 对象启动运行环境中
其他应用程序
关于Intent对象,只需要对消息接收对象进行调整,并遵循标准的开发协议,使用Intent 对 象可以启动运行环境中(即Android 环境中)的其他应用程序。所谓“遵循标准的开发协议”,主 要需要考虑以下技术细节:运行环境中其他应用程序的情况,哪些应用程序是可被使用的,这些 应用程序如何被调用。
Android开发工具使用Action技术来应对这些问题,只需要在Intent 中设置 Action 选项,运 行环境会根据 Action的设置情况执行相应的操作。
3.3.1 使用Intent对象启动短消息应用
通过设置 Intent 中Action的选项, MainActivity 可将相关信息发送给运行环境中其他的应用 程序。例如,下列程序可以启动 Android 环境中的短消息应用:
1 fun listDevices(view:View){
val intent = Intent(Intent.ACTION SEND)
3 intent.type ="text/plain"
4 intent.putExtra(Intent.EXTRA TEXT,text.text) startActivity(intent)
6 }
在上述程序中,第2 行初始化一个 Intent 对象,并设置对象的 Action 选项为 Intent.ACTION SEND; 第3行程序指定了封装数据的类型, “text/plain”表示普通文本;第4行 程序指定了具体的封装数据,数据的键为Intent.EXTRA TEXT,值为text.text(即界面中 TextView 中显示的信息)。
Intent.ACTION SEND 选项表示将信息发送给其他应用程序,系统中的应用程序会根据 intent.type 所指定的数据类型来启动。当系统中针对某一个数据类型存在多个可运行的应用程序 时,系统会显示应用程序列表(方便用户选择)。
将修改过的程序编译运行以后,单击 MainActivity的 “SHOW DEVICES”按钮,系统会提示
能处理该Intent对象的应用程序列表, 一旦用户选择应用程序以后,MainActivity中的文本信息会 被发送到所选择的应用程序中。例如,当界面按钮被单击以后,用户选择短消息发送应用程序 Messenger后,程序运行的结果如图3.5所示。
若想实现程序在运行环境中能够接收并处理其他应用程序所发送的消息,可在项目的主配置 文件(AndroidManifest.xml)中进行声明。声明的位置在Android中 ,Intent分为两类:显式和隐式。显式Intent对象指该对象在初始化时被指定了具 体接收者,如 Intent(this,Target:class.java)。当 Intent 在初始化时未指定接收对象, Intent 对象为 隐式,如 Intent(Intent.ACTION SEND)。在应用程序开发中,若希望当前程序能够处理系统中其 他应用的 Intent对象,则需要将当前程序的Intent类型声明为隐式。例如,可以设置为:
17
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们 18664393530@aliyun.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~