如何在Android中访问受权限保护的导出服务

时间:2013-04-13 00:10:08

标签: permissions android-service

我按如下方式创建了一个远程服务: -

<service android:name=".XYZService"
            android:permission="com.xyz.service"
            android:exported="true">
            <intent-filter>
                <action android:name="com.abc.def.XYZService"/>
            </intent-filter>
        </service>

我尝试使用客户端应用程序服务绑定此服务,如下所示: -     //客户服务onStartCommand代码:

 @Override
            public int onStartCommand(Intent intent, int flags, int startId) {

                boolean ret;
                try {
                          Intent i = new Intent("com.abc.def.XYZService");
                    ret = getApplicationContext().bindService(i, serviceConnection,
                            Context.BIND_AUTO_CREATE);
                    if (ret == false) {
                        //log error
                    }

                } catch (SecurityException e) {
                                  e.printStackTrace();
                }
        return super.onStartCommand(intent, flags, startId);
            }

客户端应用程序清单具有以下权限: -

 <uses-permission android:name="com.xyz.service" />

不过,我有以下异常: - 安全例外:客户端服务没有绑定到xyz服务的权限。

我的目的是通过一些权限保护我的导出服务,并在客户端应用程序中使用该权限来访问导出的服务。 任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

使用此功能。

<permission
        android:name="myPermission"
        android:description="@string/myPermissionDescription"
        android:label="@string/myPermissionLabel">
    </permission>

更多信息: page 1 - page 2