第三方应用如何获得我的自定义服务权限以启动我的服务?

时间:2012-12-27 22:26:47

标签: android android-intent android-manifest android-service android-permissions

这是我的后台服务声明的清单文件

......
    <service android:name="com.example.MyService" 
               android:process=":service" 
               android:permission="android.permission.BIND_VPN_SERVICE">

         <intent-filter>
            <action android:name="com.example.START_MY_SERVICE" />
         </intent-filter>
......
  1. 第三方应用程序应在其清单中声明什么 有兴趣与我的服务绑定吗?
  2. 当第三方应用尝试绑定到我的服务时,如何在我的应用中验证权限(或自定义权限)?

1 个答案:

答案 0 :(得分:2)

  

这是我的后台服务声明的清单文件

首先,如果没有非常的充分理由,请不要使用单独的流程。

其次,请不要为自己的目的重复使用Android标准权限,除非这些目的真的与Android使用该权限保护的内容密切相关。如果您的应用程序将执行与VPN相关的操作,例如代表调用方绑定VPN,则应该只需要BIND_VPN_SERVICE

  

第三方应用程序在其清单中声明哪些内容有兴趣绑定我的服务应在其清单中声明?

<uses-permission android:name="android.permission.BIND_VPN_SERVICE" />
  

当第三方应用尝试绑定到我的服务时,如何在我的应用中验证权限?

当有人通过标识您的服务的startService()来呼叫bindService()Intent时,Android会自动为您处理。如果来电者未持有android:permission中列出的权限,他们将获得SecurityException