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/details/46859349

http://www.2cto.com/kf/201305/211624.html

http://www.cnblogs.com/lwbqqyumidi/p/3793440.html

http://www.cnblogs.com/lwbqqyumidi/p/4181185.html

http://zhidao.baidu.com/link?url=K4XvTHMcJsdJihYRrkz9xuzAjoXA9PUqqM2znR97MfOZ0xmVvgkWpHLjiu-Ewq6dIG7tSEVPoYXXeGftOrSP3Zgq_WGkN93XnESFFOu7rrG

android:exported

这个属性用于指示该服务是否能够被其他应用程序组件调用或跟它交互。如果设置为true,则能够被调用或交互,否则不能。

设置为false时,只有同一个应用程序的组件或带有相同用户ID的应用程序才能启动或绑定该服务。

它的默认值依赖与该服务所包含的过滤器。没有过滤器则意味着该服务只能通过指定明确的类名来调用,这样就是说该服务只能在应用程序的内部使用(因为其他外部使用者不会知道该服务的类名),因此这种情况下,这个属性的默认值是false。另一方面,如果至少包含了一个过滤器,则意味着该服务可以给外部的其他应用提供服务,因此默认值是true。

这个属性不是限制把服务暴露给其他应用程序的唯一方法。还可以使用权限来限制能够跟该服务交互的外部实体。

详细一点:

1. <service android:name=".RemoteService"/>  这样的Service其他进程是不能访问的

2. <service android:name=".RemoteService"
            android:exported="true" 
            android:permission="com.stone.RemoteAccess">
            <intent-filter>
                <action android:name="com.example.ipc_b.RemoteService"/>
            </intent-filter>
        </service>

其他进程要访问上面的service, 必须使用permission<uses-permission android:name="com.stone.RemoteAccess"/>

3. 其他进程可以访问下面的service, 有intent-filter(包含action), exported属性就默认为true

<service android:name=".RemoteService">
            <intent-filter>
                <action android:name="com.example.ipc_b.RemoteService"/>
            </intent-filter>
        </service>

==============1,1

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-12 18:04:39

sevice__属性介绍: android:exported的相关文章

AndroidManifest 中android:exported

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

android:exported对ContentProvider的影响

前两天按教学视频在MainActivity中写完ContentProvider后在Manifest中配置了如下代码 <provider android:name="test.provider.SQLiteProvider" android:authorities="test.provider" /> 然而并不能传递内容,当时在网上找并没有找到明确答案,有的在provider配置了许多内容,偶然加上了一句android:exported="tru

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

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

android:exported 属性详解

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

android:exported 属性

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

android:exported属性

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

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

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

Android TextView常用属性介绍Android:drawableEnd

//TextView所呈现的文字 android:text="我爱Java" //文字颜色 android:textColor="#f00" //文字尺寸 android:textSize="20pt" //文本框结尾处绘制图片 android:drawableEnd="@drawable/ic_launcher" //不管内容多长,单行显示 android:singleLine="true" //文字过长

android:exported

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