android:exported 属性

android:exported
这个属性用于指示该服务是否能够被其他应用程序组件调用或跟它交互。如果设置为true,则能够被调用或交互,否则不能。设置为false时,只有同一个应用程序的组件或带有相同用户ID的应用程序才能启动或绑定该服务。
它的默认值依赖与该服务所包含的过滤器。没有过滤器则意味着该服务只能通过指定明确的类名来调用,这样就是说该服务只能在应用程序的内部使用(因为其他外部使用者不会知道该服务的类名),因此这种情况下,这个属性的默认值是false。另一方面,如果至少包含了一个过滤器,则意味着该服务可以给外部的其他应用提供服务,因此默认值是true。
这个属性不是限制把服务暴露给其他应用程序的唯一方法。还可以使用权限来限制能够跟该服务交互的外部实体。

在项目中,如果想使用systemUI.apk中的screenshot.TakeScreenshotService 进行截屏,那么需要把systemUI中的AndroidManifest.xml 的<service android:name=".screenshot.TakeScreenshotService">中添加android:exported="true"。那么其他应用app就可以去访问TakeScreenshotService 功能(函数)了。

否则其他app访问systemUI的TakeScreenshotService 话,会报:

Permission Denial: Accessing service ComponentInfo

java.lang.SecurityException: Not allowed to bind to service Intent

这个错误

时间: 2024-10-06 06:23:14

android:exported 属性的相关文章

android:exported 属性详解

昨天在用360扫描应用漏洞时,扫描结果,出来一个android:exported属性,其实之前根本不知道这个属性,更不知道这个属性用来干嘛的,详情见下图: 因此,查了官方API,学习了一下这个属性! android:exported 是Android中的四大组件 Activity,Service,Provider,Receiver 四大组件中都会有的一个属性. 总体来说它的主要作用是:是否支持其它应用调用当前组件. 默认值:如果包含有intent-filter 默认值为false; 没有inte

android:exported属性

一个应用程序启动另一个应用程序的组件或服务时会报Permission Denial的错误. 通过查阅资料和逐步调试确认,android的四大组件均有android:exported属性,该属性是用于指示该组件能否被其它应用程序组件所调用.设置为true,则能够被调用,否则只有同一个应用程序的组件或带有相同用户Id的应用程序才能调用. 该属性的默认值依赖于组件的包含的过滤器.没有过滤器则该属性默认值为false,否则默认值为true.

Umeng推送消息的坑,Android Service的android:exported详解

前段时间使用友盟的消息推送,发现消息能推送到设备,但进入不到Receiver,没法实现对收到的消息进行自定义处理,友盟的 文档也没有进行说明.后来咨询了友盟的工程师,说加上 android:exported="false" 就可以了,试了下果然可以.代码如下: <!-- 监听消息到达的广播 --> <receiver android:name="com.umeng.message.MessageReceiver" android:exported=

android 防止程序之间互相访问(exported属性)

程序A如果不想被其他的程序调用自己的activity,service,或者是receiver的时候,只要在AndroidManifest.xml里面添加exported属性,便能使其他的程序不能调用自己. AndroidManifest.xml <activity ... android:exported="false" /> <service ... android:exported="false" /> <receiver ....

Android相关属性的介绍:android:exported = true

在Activity中该属性用来标示:当前Activity是否可以被另一个Application的组件启动:true允许被启动:false不允许被启动. android:exported 是Android中的四大组件 Activity,Service,Provider,Receiver 四大组件中都会有的一个属性. 总体来说它的主要作用是:是否支持其它应用调用当前组件. 例如: <activity android:exported="true" …/> 注意: Android

AndroidManifest 中android:exported

假设Service等的AndroidManifest中声明为android:exported="false" 则该服务不可以跨进程使用. Permission Denied! 须要改为:android:exported="true" android:exported 这个属性用于指示该服务是否可以被其它应用程序组件调用或跟它交互. 假设设置为true,则可以被调用或交互,否则不能. 设置为false时.仅仅有同一个应用程序的组件或带有同样用户ID的应用程序才干启动或

sevice__属性介绍: android:exported

http://blog.csdn.net/lhf0000/article/details/6576327 http://blog.csdn.net/berry666/article/details/28867699 https://my.oschina.net/u/589963/blog/316912 http://blog.csdn.net/watermusicyes/article/details/46460347 http://blog.csdn.net/lvxiangan/article

Android activity属性

android:allowTaskReparenting 是否允许activity更换从属的任务,比如从短信息任务 切换到浏览器任务. android:alwaysRetainTaskState 是否保留状态不变, 比如切换回home, 再从新打开, activity处于最后的状态 android:clearTaskOnLanunch 比如 P 是 activity, Q 是被P 触发的 activity, 然后返回Home, 从新启动 P, 是否显示 Q android:configChang

android:configChanges属性

对android:configChanges属性,一般认为有以下几点: 1.不设置Activity的android:configChanges时,切屏会重新调用各个生命周期,切横屏时会执行一次,切竖屏时会执行两次 2.设置Activity的android:configChanges="orientation"时,切屏还是会重新调用各个生命周期,切横.竖屏时只会执行一次 3.设置Activity的android:configChanges="orientation|keyboa