Android 如何要求多个权限才能启动或绑定到服务
根据,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
服务可以具有以下语法:
<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
怜悯您的灵魂,因为您需要它