首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

安卓应用安全指南 4.1.2 创建使用活动 规则书

由于意图过滤器的特性,以及工作原理,即使您打算向内部的私有活动发送意图,但如果通过意图过滤器发送,则可能会无意中启动另一个活动。...另一方面,私有活动永远不会直接从其他应用收到任何意图,但目标应用中的公共活动可能会将恶意Intent转发给私有活动,因此您不应该认为私有活动不会收到任何恶意输入。...4.1.2.7 返回结果时,请注意目标应用产生的可能的信息泄露(必需) 当您使用setResult()返回数据时,目标应用的可靠性将取决于Activity类型。...此外,根据实现,向伙伴或内部活动发送意图时,也存在各种信息泄漏的风险。 即使将数据发送到私有活动,也存在风险,意图中的数据可能通过LogCat泄漏。...意图附加部分中的信息不会输出到LogCat`,因此最好在那里存储敏感信息。 但是,不首先发送敏感数据,是防止信息泄露的唯一完美解决方案,因此您应该尽可能限制发送的敏感信息的数量。

1.3K20

【Android 启动过程】Activity 启动源码分析 ( Activity -> AMS、主线程阶段 )

* * @param intent 要启动的意图. * @param requestCode 如果>=0,则当活动退出时,此代码将在onActivityResult()中返回....* * 此方法返回一个{@link ActivityResult}对象,您可以 * 在拦截应用程序调用时使用,以避免执行启动 * 活动操作,但仍返回应用程序运行的结果...为此,重写此方法以捕获对start的调用 * 活动,以便返回包含结果的新ActivityResult * 您希望应用程序能够看到,并且不要调用超级用户 * 班级。...* @param target 哪个活动正在执行启动(并因此接收任何结果);如果未进行此调用,则可能为null从一项活动中。 * @param intent 启动的实际意图。...* @return 要强制返回特定结果,请返回包含所需数据的ActivityResult对象; * 否则返回null。默认实现总是返回null。

2.6K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    安卓应用安全指南 4.1.3 创建使用活动 高级话题

    如果定义了任何意图过滤器,则该活动是公开的;否则它是私有的。...由于这个漏洞,可能会将敏感信息发送到其他应用,或者应用可能会收到意外的返回值。 如上所示,使用意图过滤器,将隐式意图发送到私有应用,可能会导致意外行为,因此最好避免此设置。...因此,使用此处解释的方法时,源(请求)应用需要使用startActivityForResult(),即使它不需要获取返回值。...发送到任务的根Activity的意图,被添加到任务历史中。 根活动是在任务中启动的第一个活动。 任何应用都可以通过使用ActivityManager类,读取添加到任务历史的意图。...每个任务的信息存储在ActivityManager.RecentTaskInfo类的实例中,但发送到任务根Activity的意图存储在其成员变量baseIntent中。

    1.4K20

    《Android移动应用基础教程》(Android Studio)(第二版)黑马程序员 课后习题答案

    2、适配器:RecyclerView控件使用的是RecyclerView.Adapter适配器,该适配器将BaseAdapter中的getView()方法拆分为onCreateViewHolder()方法和...(2)Intent被称为意图,是程序中各组件间进行交互的一种重要方式,它不仅可以指定当前组件要执行的动作,还可以在不同组件之间进行数据传递。...B程序通过ContentResolver操作A程序暴露出来的数据,而A程序会将操作结果返回给ContentResolver,然后ContentResolver再将操作结果返回给B程序。...(2) 广播发送者通过Binder机制向AMS发送广播。 (3) AMS查找符合相应条件(IntentFilter/Permission)的广播接收者,将广播发送到相应的消息循环队列中。...当发送无序广播时,所有监听这个广播的广播接收者都会接收到此广播消息,但接收和执行的顺序不确定。 (3)拦截广播 有序广播的接收者可拦截广播。

    2.9K20

    1--安卓多媒体之图片综合篇

    (new Intent(MediaStore.ACTION_IMAGE_CAPTURE), Cons.CAMERA_RESULT); 2.接收返回的Bitmap @Override protected...两个数据库中 数据库中图片的主要字段有: _id:id标识 _data: 图片绝对路径 _size: 图片大小 mime_type:...media的内容提供者数据库.png 1.获取内容提供者并添加一条自定义信息的图片 private void insertImg() { //1.创建ContentValues对象,记录插入照片信息...values); L.d(imgFileUri + L.l());//content://media/external/images/media/1064830 //3.通过打开图片的意图添加额外信息将...查询最近100张图片.png 1.获取最近100条数据库记录 排序条件:"date_added desc"表示根据date_added字段倒序查询 将数据盛放在List中,并根据列表元素个数来决定跳出

    58920

    AndroidUI高级之十六使用Intent进行通信

    Intent称为意图,用于描述一次操作的动作、参数以及附加的数据,用于很多地方,可以理解类似于网页之间的超链接。...就要在intent中包含相应的内容,一般来说数据中最基本的应该包括: •Action:用来指明要实施的动作是什么,比如说ACTION_VIEW, ACTION_EDIT等...•Data: 要事实的具体的数据,一般由一个Uri变量来表示 •Category:一个字符串,包含了关于处理该intent的组件的种类的信息。...被启动的组件结束时,需要将数据返回给调用者,通过Activity.startActivityForResult启动Activity public void startActivityForResult...resultCode为返回结果的结果编码,用于标识结果类型 •参数data为返回的数据 接收数据返回 启动者的启动调用示例 startActivityForResult

    8710

    《移动互联网技术》第五章 界面开发: 掌握Activity的基本概念,Activity的堆栈管理和生命周期

    Intent中可以不设置category,如果这时使用startActivity或者startActivityForResult,系统会自动添加默认的category。...使用extras可以为组件提供扩展信息,比如如果要执行“发送电子邮件”这个动作,可以将电子邮件的标题、正文等保存在extras中,然后传给电子邮件发送组件。...作为数据的接收方,主界面在启动子活动时需要使用startActivityForResult()函数。...子活动作为发送方,需要将数据放入Intent,然后调用setResult()函数把子活动想要返回的数据返回到MainActivity。...Flags:Flags可以为意图设置某种标志,可以用作意图发送者签名。设置了Flags的意图启动一个 Activity 后,这个Activity可以根据意图中的Flags值判断意图来自哪里。

    22810

    已中招!Android 基础面试常常吊死在这几个问题上……

    第二步:通过javac将Java源代码编译为 .class 文件,然后通过 sdk “工具”中包含的“ dx” 工具将类文件转换为 Dalvik 字节码。输出为 classes.dex 。...它不会创建新实例,而是将意图发送给 Activity 的现有实例。...commit() 同步写入数据,并根据结果立即返回成功或失败的boolean类型值。 apply()是异步的,不会返回任何布尔响应。...应聘者:它是一个列表,有自己的适配器,在 onBindViewHolder 方法中进行数据的绑定的! 面试官:我给你补充一下! RecyclerView 在显示较长的项目列表。...假设我们要显示100行项目。一种简单的方法是只创建100个视图,每行一个视图,然后将它们全部布局。但这是浪费的,因为在任何时间点上,只有10个左右的项目可以放在屏幕上,而其余项目则不在屏幕上。

    2K20

    Android MVI框架搭建与使用

    MVI框架适用于UI变化很多的项目,通过数据去驱动UI,MVI就是Model、View、Intent。 Model 这里的Model有所不同,里面还包含UI的状态。...进行JSON数据格式化,然后我们需要设置数据类的名称,这里输入Wallpaper,因为我们需要使用Moshi,将JSON数据直接转成数据类,所以这里我们点击Advanced,如图所示:   这里默认是...作为网络接口请求的地址头,然后构建了MoShi,通过MoShi去进行JSON转Kotlin数据类的处理,之后就是构建Retrofit,将MoShi设置进去,最后就是通过Retrofit创建一个网络请求服务...initView()函数中是控件的一些配置,比如给RecyclerView添加布局管理器和设置适配器,给按钮添加点击事件,在点击的时候发送意图,发送的意图被MainViewModel中mainIntentChannel...页面UI(点击事件发送意图) → ViewModel收集意图(确定内容) → ViewModel更新状态(修改_state) → 页面观察ViewModel状态(收集state,执行相关的UI) 这是一个环

    3.5K40

    Android Intent用法总结

    Android中提供了Intent机制来协助应用间的交互与通讯,Intent负责对应用中一次操作的动作、动作涉及数据、附加数据进行描述,Android则根据此Intent的描述,负责找到对应的组件,将...类,可以唯一确定一个Activity,意图特别明确,所以是显式的。...其中最常用的是Action属性和Data属性。 Action:用来表现意图的行动 一个字符串变量,可以用来指定Intent要执行的动作类别。...Category:用来表现动作的类别 一个包含Intent额外信息的字符串,表示哪种类型的组件来处理这个Intent。...并且包含这个属性的Activity所定义的icon将取代application中定义的icon CATEGORY_BROWSABLE 当Intent指向网络相关时,必须要添加这个类别 CATEGORY_HOME

    1.6K10

    四大组件的纽带——Intent

    Intent 描述了要启动的 Activity,并携带了任何必要的数据。 如果希望在 Activity 完成后收到结果,则可以调用 startActivityForResult()。...Intent 描述了要启动的服务,并携带了任何必要的数据。 如果服务旨在使用客户端-服务器接口,则通过将 Intent 传递给 bindService(),可以从其他组件绑定到此服务。 3....发送广播 广播是任何应用均可接收的消息。系统将针对系统事件(例如:系统启动或设备开始充电时)传递各种广播。...Android系统会根据隐式Intent中设置的动作(action )、类别(category )、数据(Uri和数据类型)找到最合适的组件。...隐式 Intent启动Activity的示意图如下图所示。 ? 在上图中,Activity A 创建包含操作描述的 Intent,并将其传递给 startActivity()。

    1.1K50

    C#开发移动应用系列(4.调用系统应用,以及第三方应用(调用与被调用))

    (这是一个路径,但是不能直接拿来用) 2.将返回值转换成我们想要的文件路径(重点~直接复制我代码就好了..) 3.通过文件流读取文件,并得到字节(和.NET的IO操作一模一样) 这样,我们就完成了整个读取照片的过程...我们首先新建一个APP项目如下: ? 然后在MainActivity编写意图过滤特性,如下: ?...这里两个属性的意思是:Intent.ActionSend当用户的意图是发送操作的时候,类别设置为默认 这样我们就稍微过滤了一下意图.. 然后,我们把这个APP部署在模拟器上,如图: ?..., "发送数据:XXXXX"); StartActivity(Intent.CreateChooser(ite, "选择应用程序")); 我们点击按钮,就会调用到APP3,如图: ?...上图中,我的APP3已经获取到WebApp测试发过来的数据.

    99970

    【Android从零单排系列三十五】《Android四大组件——Activity》

    数据传递和返回:通过Intent可以在不同的Activity之间传递数据。...Intent:Activity接收到的意图对象,包含了启动Activity的相关信息,如数据、标志位等。 Window:代表Activity的窗口,可以用来设置标题栏、背景色等窗口属性。...onActivityResult():用于接收其他Activity返回的结果,通过Intent对象获取返回的数据。...CurrentActivity.this, TargetActivity.class); startActivity(intent); 隐式启动: 通过指定Action、Category和Data等属性,将启动请求发送给系统让其自行匹配合适的...()启动: 当需要获取目标Activity返回的结果时,可以使用startActivityForResult()方法启动,并在目标Activity中调用setResult()方法设置返回结果。

    22710

    用户界面开发基础

    由于Data是可序列化的对象,因此完全可以将Data抓换成byte[]类型的数据,然后将byte[]类型的数据再进行Base4编码(通过Email发送附件就是将附件转换成为Base64格式的字符串发送的...全局类中不需要定义静态变量,只需要定义成员变量即可, 而且全局类中必须要有一个无参的构造方法,或者不编写任何代码的构造方法(系统会自动的建立一个无参数的构造方法)。...,不仅要向Activity传递数据,同时也要从Activity中返回数据,一般建议采用Intent这种方式来返回数据,需要使用startActivityForResult方法来显示Activity。...发送意图标示为REQUSET=1 startActivityForResult(intent, REQUSET); B Activity处理数据: Intent intent=new Intent(...这样在Activity中就不用创建按钮对象而处理按钮单击事件了。 如果在程序中只处理单击事件,而不直接引用相应的对象,可以采用这种方法。

    1.8K20

    android之onActivityResult介绍

    image.png onActivityResult 在一个主界面(主Activity)通过意图跳转至多个不同子Activity上去,当子模块的代码执行完毕后再次返回主页面,将子activity中得到的数据显示在主界面...这种带数据的意图跳转需要使用activity的onActivityResult()方法。...,用于携带将跳转至下一个界面中使用的数据,使用putExtra(A,B)方法,此处存储的数据类型特别多,基本类型全部支持。...可以通过data.getXxxExtra( );方法来获取指定数据类型的数据, setResult(int resultCode, Intent data) 在意图跳转的目的地界面调用这个方法把Activity...想要返回的数据返回到主Activity, 第一个参数:当Activity结束时resultCode将归还在onActivityResult()中,一般为RESULT_CANCELED , RESULT_OK

    1.6K40

    Android-使用Intent传递数据

    返回数据给上一个活动 Activity中还有一个StartActivityForResult()方法也是用于启动活动的, 但这个方法期望在活动被销毁的时候能够返回一个结果给上一个活动。...StartActivityForResult()接收两个参数, 第一个参数还是Intent, 第二个参数是请求码,用于在回调中判断数据的来源。..., 没有指定任何“意图”,把要传递的数据存放在Intent中,调用setResult()方法, 专门用于向上一个活动返回数据的,接收两个参数, 第一个参数用于上一个活动返回处理结果,一般使用RESULT_OK..., 第二个参数resultCode,即我们返回数据时传入的处理结果, 第三个参数data,即携带着返回数据的Intent。...由于在一个活动中有可能调用startActivityForResult()方法启动很多不同的活动, 每一个活动返回的数据都会回调onActivityResult()方法,因此需要先判断requestCode

    1.2K30

    android学习笔记----隐式意图和显式意图

    ,为您提供requestCode,启动它,返回resultCode,以及来自它的任何其他数据。...如果活动显式返回,则不会返回任何结果,或者在操作期间崩溃,resultCode将为RESULT_CANCELED。 当您的活动重新启动时,您将在onResume()之前立即收到此调用。...data Intent:一个Intent,它可以将结果数据返回给调用者(各种数据可以附加到Intent“extras”)。...由于在一个活动中有可能调用startActivityForResult()方法去启动很多不同的活动,每一个活动返回的数据都会回调到onActivityResult()这个方法中,因此我们首先要做的就是通过...resultCode的值来判断数据来源,确定这个是由哪一个活动返回的数据。

    1.4K10

    Android面试题含答案「建议收藏」

    而在startActivityForResult()这个方法。因为startActivityForResult()方法是有返回结果的,所以系统就直接给一个-1,就表示不需要结果返回了。...RecyclerView提供了API来实现item的动画效果。 在性能上: 如果需要频繁的刷新数据,需要添加动画,则RecyclerView有较大的优势。...(但是这是不推荐的)。...在这种情况下,C认为连接还未建立成功,将忽略S发来的任何数据分 组,只等待连接确认应答分组。而S在发出的分组超时后,重复发送同样的分组。这样就形成了死锁。...服务器每收到一次客户端的请求后都会重新复位这个计时器,时间通常是设置为2小时,若两小时还没有收到客户端的任何数据,服务器就会发送一个探测报文段,以后每隔75分钟发送一次。

    1.4K20
    领券