gpt4 book ai didi

具有 u10_system 用户 ID 的 Android 服务

转载 作者:行者123 更新时间:2023-12-05 07:57:13 36 4
gpt4 key购买 nike

这是在启用了多帐户功能的 Android Kitkat/Lollipop 下。我创建了一个用户标识为“system”的服务,并且有一个绑定(bind)到该服务的 Activity 。然后在不同的用户帐户中,我尝试将另一个 Activity 绑定(bind)到同一服务(使用标志 Context.BIND_AUTO_CREATE)。我希望该 Activity 将绑定(bind)到用户 ID 为“system”的现有服务。但是,Android 创建了一个用户 ID 为“u10_system”的新服务。为什么会这样?是否可以绑定(bind)到用户 ID 为“system”的现有服务?

编辑:对于服务,我有这个属性:android:singleUser="true"。该服务还具有 INTERACT_ACCROSS_USERS 权限。

最佳答案

您看到的是 AndroidManifest.xml 中 sharedUserIdsingleUser 标志组合的效果。这是我在 Android 12 中发现的情况(所以大约 8 年后,Lollipop 中的情况可能有所不同......):

  • sharedUserId:system && singleUser:true
    • 作为 linux 用户“system”uid 1000 又名 Android 用户 0 运行
    • 单例和特权
  • sharedUserId:system
    • 作为“u10_system”运行
    • 不是单例但有特权
  • singleUser:true
    • 以 linux 用户“u0_a222”(或另一个 _a 号码)身份运行
    • 单例但没有特权
    • 为每个普通用户运行
    • 不是单例,没有特权

关于具有 u10_system 用户 ID 的 Android 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27607358/

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