Android常见隐式意图使用

22、Android 显式与隐式意图开发实战 本文详细介绍了Android开发中显式意图与隐式意图的实战应用。通过创建多个Activity、设计UI布局、传递数据及返回结果等步骤,深入讲解了显式意图在应用内部页面跳转和数据交互中的使用;同时,通过启动网页浏览等场景,演示了隐式意图如何调用系统或其他应用组件。文章还对比了两种意图的优缺点、常见问题及解决方案,并提供了开发最佳实践与流程图,帮助开发者根据需求选择合适的意图类型,提升应用灵活性与用户体验。 阅读详情
一.设置闹铃
操作(action):
ACTION_SET_ALARM
数据 URI(data):
无
MIME 类型(mimeType):
无
Extra:
EXTRA_HOUR
闹铃的小时。
EXTRA_MINUTES
闹铃的分钟。
EXTRA_MESSAGE
用于标识闹铃的自定义消息。
EXTRA_DAYS
一个 ArrayList,其中包括应重复触发该闹铃的每个周日。 每一天都必须使用 Calendar 类中的某个整型值(如 MONDAY)进行声明。
对于一次性闹铃,无需指定此 extra。


EXTRA_RINGTONE
一个 content: URI,用于指定闹铃使用的铃声,也可指定 VALUE_RINGTONE_SILENT 以不使用铃声。
如需使用默认铃声,则无需指定此 extra。


EXTRA_VIBRATE
一个布尔型值,用于指定该闹铃触发时是否振动。
EXTRA_SKIP_UI
一个布尔型值,用于指定响应闹铃的应用在设置闹铃时是否应跳过其 UI。 若为 true,则应用应跳过任何确认 UI,直接设置指定的闹铃。

示例:

public void createAlarm(String message, int hour, int minutes) {
    Intent intent = new Intent(AlarmClock.ACTION_SET_ALARM)
            .putExtra(AlarmClock.EXTRA_MESSAGE, message)
            .putExtra(AlarmClock.EXTRA_HOUR, hour)
            .putExtra(AlarmClock.EXTRA_MINUTES, minutes);
    if (intent.resolveActivity(getPackageManager()) != null) {
        startActivity(intent);
    }
}
需添加权限:

<uses-permission android:name="com.android.alarm.permission.SET_ALARM" />




二.创建定时器
操作:
ACTION_SET_TIMER
数据 URI:
无
MIME 类型:
无

Extra:
EXTRA_LENGTH
以秒为单位的定时器定时长度。
EXTRA_MESSAGE
用于标识定时器的自定义消息。
EXTRA_SKIP_UI
一个布尔型值,用于指定响应定时器的应用在设置定时器时是否应跳过其 UI。 若为 true,则应用应跳过任何确认 UI,直接启动指定的定时器。
示例:

public void startTimer(String message, int seconds) {
    Intent intent = new Intent(AlarmClock.ACTION_SET_TIMER)
            .putExtra(AlarmClock.EXTRA_MESSAGE, message)
            .putExtra(AlarmClock.EXTRA_LENGTH, seconds)
            .putExtra(AlarmClock.EXTRA_SKIP_UI, true);
    if (intent.resolveActivity(getPackageManager()) != null) {
        startActivity(intent);
    }
}

需添加权限:

<uses-permission android:name="com.android.alarm.permission.SET_ALARM" />

三.使用相机
操作(action):
ACTION_IMAGE_CAPTURE 或
ACTION_VIDEO_CAPTURE
数据 URI(data) :
无
MIME 类型(mimeType):
无
Extra:
EXTRA_OUTPUT
相机应用应将照片或视频文件保存到的 URI 位置(Uri 对象形式)。

例子:

static final int REQUEST_IMAGE_CAPTURE = 1;
static final Uri mLocationForPhotos;

public void capturePhoto(String targetFilename) {
    Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
    intent.putExtra(MediaStore.EXTRA_OUTPUT,
            Uri.withAppendedPath(mLocationForPhotos, targetFilename));
    if (intent.resolveActivity(getPackageManager()) != null) {
        startActivityForResult(intent, REQUEST_IMAGE_CAPTURE);
    }
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == RESULT_OK) {
        Bitmap thumbnail = data.getParcelable("data");
        // Do other work with full size photo saved in mLocationForPhotos
        ...
    }
}


四.选择联系人
操作:
ACTION_PICK
数据 URI:
无
MIME 类型:
Contacts.CONTENT_TYPE

示例 :

static final int REQUEST_SELECT_CONTACT = 1;

public void selectContact() {
    Intent intent = new Intent(Intent.ACTION_PICK);
    intent.setType(ContactsContract.Contacts.CONTENT_TYPE);
    if (intent.resolveActivity(getPackageManager()) != null) {
        startActivityForResult(intent, REQUEST_SELECT_CONTACT);
    }
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == REQUEST_SELECT_CONTACT && resultCode == RESULT_OK) {
        Uri contactUri = data.getData();
        // Do something with the selected contact at contactUri
        ...
    }
}






37、Android 隐式意图与广播意图详解 本文详细介绍了Android开发中隐式意图与广播意图的使用方法。涵盖隐式意图的配置、安装与测试流程,以及广播意图的创建、发送、接收和注册机制。通过具体代码示例和操作步骤,讲解了如何处理Chrome默认设置冲突、Android 3.0+和8.0+版本的广播兼容问题,并提供了监听系统事件(如电源断开)的实践方案。文章还对比了两种意图的特性,总结了关键技术点与常见问题解决方案,帮助开发者深入理解Android组件间通信机制,提升应用交互性与响应能力。 阅读详情

相关推荐

35、Android 意图(Intents)实战指南

本文深入讲解了 Android 中意图(Intent)的基本概念及实战应用,涵盖了显式意图和隐式意图的定义、使用场景及实现方法。通过详细的示例项目,介绍了活动之间的数据传递、链接验证、安全限制及常见问题的解决方案。同时总结了意图使用的流程、注意事项和最佳实践,为开发功能丰富的 Android 应用程序提供了全面指导。

gpt4scribbler的博客 95

Android 设置系统闹钟,日历写入。实现demo

可变时间格式:"yyyy-MM-dd HH:mm:ss" 保存闹钟时间: SimpleDateFormat df = new SimpleDateFormat("HH:mm");//设置日期格式 String thistime = df.format(new Date()); SharedPreferences sharedPreferences = getShared...

meixi_android的博客 3138

android显示意图和隐式意图的区别

显示Intent和隐式Intent的区别

Android 设置系统闹钟

1、创建闹钟和倒计时  必须的权限:  &lt; uses-permission android:name=”com.android.alarm.permission.SET_ALARM” /&gt;  闹钟:如果我们借助AlarmManager开发一个用药提醒的APP,一旦APP进程被用户干掉后,就没法提醒了,这时我们就只能借助系统闹钟来曲线救国了。 private void createAl...

Mbyp132的博客 7825

ADS学习笔记 2. 低噪声放大器设计

ADS学习笔记 2. 低噪声放大器设计。设计了一个中心频率433MHz,增益18.206dB,NF=0.134dB,S11带宽较好的低噪声放大器

u014087103的博客 9509

离线路径规划服务Graphhopper

离线路径规划服务Graphhopper 本文主要探索使用Graphhopper搭建离线路径规划服务,需要掌握一定的JAVA基础环境配置的知识 文章目录离线路径规划服务Graphhopper前言一、Graphhopper是什么?二、使用步骤1.下载Graphhopper2.从OpenStreetMap下载路图数据3.安装Graphhopper所需环境4.修改配置5.启动Graphhopper总结 前言 在外网环境中可以使用百度、高德等第三方的sdk用以实现路径规划的功能,由于项目的需要,在离线环境中需要使

Sysdark的博客 7560

史上最全的隐式Intent解析

Android中的众多内置Intent,你知道它们各自的作用吗?本篇文章将带你全面解析Android中所有常见的内置Intent。

郭霖 3047

Vivado2022.2下载安装

链接:https://pan.baidu.com/s/1lyfE2d-VmaWC-_aR8ratCQ提取码:mt09。

weixin_61081689的博客 2万+

设置系统闹钟方法记录

/** * * @param message 描述信息 * @param hour 设置小时 * @param minutes 设置分钟 */ private void createAlarm(String message, int hour, int minutes) { ArrayList<Integer> testDays = new ArrayList<>(); t..

qq_32440691的博客 743

VMware17安装教程(附安装包)VMware17小白详细一键安装教程

VMware 17.5 是一款强大的虚拟机软件。本安装教程将为您详细介绍VMware17安装教程其下载、安装步骤及验证方法,助您轻松完成安装,开启虚拟化体验。

2501_91538706的博客 2万+

Android Framework 开发工程师职位深度解析与面试指南

摘要:博泰车联网科技(上海)股份有限公司招聘Android Framework开发工程师,负责车载系统的底层开发与优化。岗位要求5年以上经验,深入掌握Android Framework机制(WindowManager、PowerManager等模块),熟悉高通平台中间件架构及NDK/JNI开发,具备性能优化(启动时间、ANR处理)、OTA升级等能力。需熟练使用Android Studio、Git等工具,有车载开发经验者优先。工作内容包括Framework定制开发、问题排查及技术文档编写。

郑伟强dev的专栏 552

android中一些隐式意图使用

要打开一个文件 ,可以向系统发送一个隐式意图,这样系统就会弹出能够处理该文件的程序,下面是部分代码: Intent intent = new Intent();intent.setAction(Intent.ACTION_VIEW);intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);String type = Utils.getType(selecte...

445822357 204

Testbench编写:激励生成、响应监控、仿真时间控制

本文介绍了Verilog/VHDL Testbench的核心技术,重点阐述了激励生成、响应监控和仿真时间控制三大关键环节。通过时钟生成、复位信号生成等具体代码示例,展示了如何有效构建测试平台。文章还总结了波形输出、自动检查等验证方法,并提出了模块化设计、自动化检查等最佳实践,帮助开发者提升FPGA仿真效率和验证质量。这些技术要点为数字电路设计的正确性验证提供了系统化的解决方案。

2301_79143213的博客 111

Android中发送短信的几种常见写法及注意事项

在Android中常见的发送短信的方式有以下两种: 1.利用系统的短信发送程序发送短信 这里面又可以分为两种写法: 1.1 利用Intent发送一个隐式意图 Intent intent = new Intent(Intent.ACTION_SENDTO); Uri data = Uri.parse("smsto:"+ "15555215556"); intent.setData(d

you__are_my_sunshine的博客 941

MC_SetOverride指令详细应用介绍(基恩士PLC)

基恩士KV系列PLC和松下总线绝对值伺服运动控制(详细配置+轴控完整ST源代码)

RXXW_Dor的博客 335

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Intent 意图

1 显示意图开启activityMainActivity.this:当前上下文FirstActivity.class:目标活动使用startActivity 开启这个intent Intent intent = new Intent(MainActivity.this, FirstActivity.class); startActivi...

da_xin的博客 259

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

App与其他应用交互之隐式意图的使用

一、常见的隐式意图 1.打电话: Uri number = Uri.parse("tel:5551234"); Intent callIntent = new Intent(Intent.ACTION_DIAL, number);2.看地图: // Map point based on address Uri location = Uri.parse("geo:0,0?q=1600+Amph

ssjj_programmer的博客 700

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Intent用法和回顾(显示,隐式,传参,跳转,启动电话,网页,短信)

###显式意图和隐式意图的应用场景 * 显式意图用于启动同一应用中的Activity * 隐式意图用于启动不同应用中的Activity     * 如果系统中存在多个Activity的intent-filter同时与你的intent匹配,那么系统会显示一个对话框,列出所有匹配的Activity,由用户选择启动哪一个   在Activity的跳转中 >Activity的跳转需要创建Int

不要和代码过不去 953

Android Intent学习

Intent学习 Intent分为两种显式意图和隐式意图,1.显式意图 主要用于已经知道要跳转的组件的名字的情况下使用代码如下:// intent 意图 , 描述一个动作, 激活一个组件 /*第一种写法 * Intent intent = new Intent();intent.setClassName("cn.itcast.mutileactivity", "cn.itc...

weixin_34367845的博客 92

android 21 隐式意图启动系统预定义activity

Intent intent=new Intent(LoginActivity.this, MainActivity.class);//显示意图启动,显示从一个activity到另一个activity, 隐示意图启动activity,不显示activity名字,而通过一个action或者category一个字符串,跨应用程序启动另一个应用程序的activity只能用隐示意图启动,   ...

weixin_34293141的博客 207

Android service笔记

本文章整理了服务使用时的一些坑和注意点 坑1: 一句话概述: 要使 onServiceConnected 方法被系统回调,需要让绑定的服务的 onBind 方法返回 IBinder 对象才行 情景再现: 假设,在 MyServiceActivity 类里我们通过隐式方式绑定了一个服务,如下: 在 MyService 类里,我们的 onBind 方法给 MyServiceAc

lvhailing1986的博客 327

Android复习笔记(2) - Intent介绍

Intent: 意图,是andriod四大组件通讯的桥梁,即四大组间之间的相互调用及数据传递都是通过intent实现。 分类: 显示意图与隐式意图。 区别:显示意图:通过直接指定Class(类的字节码式类名)进行组件之间调用,主要用于调用当前程序的Activity,效率更高。             隐式意图:通过setAction(String actionName)与setDate(Ur

v587的博客 2466

Android intent-filter意图过滤器

intent-filter意图过滤器   意图过滤器在Android中应用比较广泛,但是我们使用得最多的还是给启动页面设置意图过滤器,这样我们才能在打开一个应用时知道第一个启动的Activity是哪一个.当然Intent-filter不止拥有这一个功能.还可以实现页面和原生的跳转,实现隐式意图的响应等. category(类别):category中一般会配置一条默认的参数,“android....

Seven丶Echo的博客 1452

android初学

Textview Button (onClick该属性值是个方法名,当用户点击按钮时自动调用该方法 响应用户按下的动作),Edit, Imageview图像视图 ImageButton 图像按钮 ,常用UI布局 线性、相对(用的多)、表格、网格、约束、视图分离,xml文件,最外层的标签为根节点,中间的标签为布局节点,最内层的为控件节点,最外层的标签要有配对的标签头和便签尾。1.显示意图:创建 new intent(context上下文 ,对方的activity类的class),

2401_89971259的博客 540

java.lang.IllegalArgumentException: Service Intent must be explicit: Intent

2021-06-15 11:34:10.868 9512-9512/com.zsj.aidlservice E/AndroidRuntime: FATAL EXCEPTION: main Process: com.zsj.aidlservice, PID: 9512 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.zsj.aidlservice/com.zsj.aidlservice.MainAct...

Alex的博客 2999
上一篇: HTML&CSS
下一篇: Android程序运行权限申请
ssjj_programmer
博客等级 码龄11年 2粉丝 34原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值