gpt4 book ai didi

android - 如何要求多个权限来启动或绑定(bind)到服务

转载 作者:行者123 更新时间:2023-11-29 17:54:22 25 4
gpt4 key购买 nike

根据docs , Android list 文件可以使用以下语法表示 Service :

<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>

permission 属性特别指定:

The name of a permission that that an entity must have in order to launch the service or bind to it.

但似乎我不能为一个实体请求多个许可来启动我的服务。真的是这样吗?无论如何要规避这个?

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

An Android Service can have multiple permissions, but permissions are granted at the application level, not at the Service level.

但随后他继续解释 <uses-permission>这不是我要找的属性。 Another answer进一步降低了我的希望。看来这确实是不可能的。

如果是这种情况,我正在考虑的替代方案是为我需要的每个权限提供一项服务,并让它们都作为负责完成这项工作的实际服务的转发器。有更好的主意吗?

最佳答案

Is that really the case?

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

Is there anyway to circumvent this?

检查 Java 代码中的其他权限,使用一些东西 like checkCallingPermission() .

But then he goes on to explain the attribute which is not what I'm looking for.

正确。

the alternative I'm considering is to have one service for each permission I require and make them all work as forwarders to the actual service in charge of doing the job.

只有当您尝试对权限进行逻辑或操作时,这才有意义,其中调用者必须具有权限 X 权限 Y。直到您的问题的这一点,我已经假定您想要对权限进行逻辑与(调用者必须持有权限 X 权限 Y)。

我想不出传入权限的逻辑或有用的场景,更不用说必要的了。话虽这么说,如果您将命令模式与 startService() 一起使用,不导出“真实”服务,并且调用 stopSelf() 从您导出的服务转发命令后。如果您的愿景是将这种代理方法与绑定(bind)模式一起使用,使用 bindService()$DEITY 可能会怜悯您的灵魂,因为您会需要它.

关于android - 如何要求多个权限来启动或绑定(bind)到服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20551356/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com