zoukankan      html  css  js  c++  java
  • 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

    这个错误

     
     
  • 相关阅读:
    每天进步一点点--&gt;函数fseek() 使用方法
    几种更新(Update语句)查询的方法
    hibernate批量删除和更新数据
    Android ViewPager使用具体解释
    Linux curses库使用
    安装numpy、nltk问题汇总
    android widget 开发实例 : 桌面便签程序的实现具体解释和源代码 (上)
    Eclipse中SVN的安装步骤(两种)和用法
    Intent用法
    Tomcat全攻略
  • 原文地址:https://www.cnblogs.com/awkflf11/p/5910508.html
Copyright © 2011-2022 走看看