隐式启动系统服务
我们在购物的时候,在最后的支付页面都会遇到这种情况:点击支付的时候会让我们选择支付的方式——微信支付或支付宝支付,这就会涉及到不同程序之间页面的跳转(这个例子其实还不够贴切,因为我们现在咋购物商城支付时已经不再需要以跳转页面的方式支付了,多数的情况都是弹窗(dialog)),微信分享这个例子更贴切。
也有这么些应用,我们在使用某项功能的时候需要我们上传图片,点击图标会出现弹窗——选择照相机还是文件夹。这样的情况就需要我们访问系统给我们提供的系统服务。
跳转到系统服务
->相机 相册 文件夹
拨打电话
mButton.setOnClickListener {
//拨打电话
Intent().apply {
//通过配置文件的意图过滤器来查找我们需要的Activity
//action 动作行为
//action = "android.intent.action.DIAL"
action = Intent.ACTION_DIAL
//data 传递数据
data = Uri.parse("tel:19112069047")
}.also {
startActivity(it)
}
}
程序运行点击按钮,就进入拨号页面,默认拨打号码为指定的号码。
如果是自己定义的Activity就通过配置Intent:从哪里跳转到哪里
如果是跳转到系统提供的服务,就需要意图过滤配置action
上方有两种跳转到系统服务的action:
前一种是我们阅读模拟器中源码的意图过滤器得到的action
后面一种是以代码的方式找到的action
Uri:资源的索引,parse解析
发送短信
mMessage.setOnClickListener {
Intent().apply {
//action = Intent.ACTION_VIEW
action = Intent.ACTION_SEND
data = Uri.parse("sms:赶紧调代码了,脑子要废了!")
}.also {
startActivity(it)
}
}
启动系统相机
mCamera.setOnClickListener {
Intent().apply {
//启动系统相机
action = "com.android.camera.IMAGE_CAPTURE"
}.also {
startActivity(it)
}
}
网友评论