【问题标题】:What is the default android:sharedUserId set if android:sharedUserId was not set如果未设置 android:sharedUserId,则默认设置的 android:sharedUserId 是什么
【发布时间】:2017-04-28 20:49:30
【问题描述】:

来自documentation

将与其他应用程序共享的 Linux 用户 ID 的名称。 默认情况下,Android 会为每个应用程序分配其自己的唯一用户 ID。

假设我有一个应用程序没有在 AndroidManifest.xml 文件中指定 android:sharedUserId。

Android 生成的默认 sharedUserId(参见上面的文档)是在构建中设置的(对于所有设备上的此应用都相同),还是在安装该应用的每台设备上生成不同的 sharedUserId?

【问题讨论】:

    标签: android android-manifest


    【解决方案1】:

    Android 会为您在设备上安装的每个应用程序生成随机唯一 ID。

    您可以通过以下方式获取此值:

    adb shell dumpsys package com.example.myapp | grep userId=
    

    或在代码中:

    int uId = getPackageManager().getApplicationInfo("com.example.myapp",PackageManager.GET_META_DATA).uid;
    

    但是,如果您为两个或多个应用程序设置了相同的 android:sharedUserId 值,那么它们将共享相同的 ID — 只要它们的证书集相同。

    具有相同用户 ID 的应用可以访问彼此的数据,并且如果需要,可以在同一进程中运行。

    【讨论】:

      猜你喜欢
      • 2020-03-19
      • 1970-01-01
      • 1970-01-01
      • 2011-01-07
      • 1970-01-01
      • 2016-09-01
      • 2022-07-01
      相关资源
      最近更新 更多