Android 如何要求多个权限才能启动或绑定到服务

Android 如何要求多个权限才能启动或绑定到服务,android,permissions,Android,Permissions,根据,Android清单文件对于服务可以具有以下语法: <service android:enabled=["true" | "false"] android:exported=["true" | "false"] android:icon="drawable resource" android:isolatedProcess=["true" | "false"] android:label="string resou

根据,Android清单文件对于
服务可以具有以下语法:

<service android:enabled=["true" | "false"]
         android:exported=["true" | "false"]
         android:icon="drawable resource"
         android:isolatedProcess=["true" | "false"]
         android:label="string resource"
         android:name="string"
         android:permission="string"
         android:process="string" >
    . . .
</service>

. . .
权限属性特别指定:

实体必须具有的权限的名称,以便 启动或绑定服务

但我似乎不能为一个实体请求一个以上的权限来启动我的服务。真的是这样吗?有没有办法绕过这个问题

在Stackoverflow上,我找到的最接近的地方是作者说的:

Android服务可以有多个权限,但权限是有限的 在应用程序级别授予,而不是在服务级别授予

但是他接着解释了
属性,这不是我想要的。使我的希望更加渺茫。看来这确实是不可能的

如果是这样的话,我正在考虑的另一种选择是为我需要的每一个许可提供一个服务,并让他们都作为负责这项工作的实际服务的转发商工作。还有更好的主意吗

真的是这样吗

就舱单中的自动保护而言,是的。这是99.9%的情况

有没有办法绕过这个问题

在Java代码中使用某物检查其他权限

但他接着解释了这个属性,这不是我想要的

我正在考虑的另一种选择是为我需要的每一项许可提供一项服务,并使他们都成为负责这项工作的实际服务的转运人

只有当您尝试在权限上使用逻辑OR时,这才有意义,因为调用者必须拥有权限X或权限Y。在您的问题出现之前,我一直认为您希望在权限上使用逻辑AND(调用者必须拥有权限X和权限Y)

我想不出一个场景,在这个场景中,对传入权限使用逻辑OR是有用的,更不用说是必要的了。也就是说,如果您将命令模式与
startService()
一起使用,不导出“真实”服务,并且在从导出的服务上转发命令后调用
stopSelf()
,那么您的解决方法应该是可行的。如果您的愿景是使用绑定模式的代理方法,使用
bindService()
,那么可以
$dedity
怜悯您的灵魂,因为您需要它