Android 多用户问题

记录一个开发过程中遇见的多用户问题

Android

java 复制代码
        List<MediaController> mediaControllers = mediaSessionManager.getActiveSessions(null);

List<MediaController> 在普通应用中可以获取到,但是在systemUI中获取不到

看了一下是 user组别问题导致的

应该使用

java 复制代码
 @SystemApi(client = SystemApi.Client.MODULE_LIBRARIES)
    @SuppressLint("UserHandle")
    public @NonNull List<MediaController> getActiveSessionsForUser(
            @Nullable ComponentName notificationListener, @NonNull UserHandle userHandle) {
        Objects.requireNonNull(userHandle, "userHandle shouldn't be null");
        return getActiveSessionsForUser(notificationListener, userHandle.getIdentifier());
    }

这个api解决 那为什么systemUI在 0这个组别?

java 复制代码
    private static void startSystemUi(Context context, WindowManagerService windowManager) {
        PackageManagerInternal pm = LocalServices.getService(PackageManagerInternal.class);
        Intent intent = new Intent();
        intent.setComponent(pm.getSystemUiServiceComponent());
        intent.addFlags(Intent.FLAG_DEBUG_TRIAGED_MISSING);
        //Slog.d(TAG, "Starting service: " + intent);
        context.startServiceAsUser(intent, UserHandle.SYSTEM);
        windowManager.onSystemUiStarted();
    }

在systemserver 里启动的组别就是这个

音频mediassion相关是区分用户的

那么还有没有什么是区别用户的

当然有 PMS也是这样

在工程模式下,可以使用 getInstalledPackages 或 getInstalledPackagesAsUser 方法获取全部已安装的应用程序,并展示给用户

java 复制代码
public List<PackageInfo> getAllInstalledApps(Context context) {
    PackageManager packageManager = context.getPackageManager();
    return packageManager.getInstalledPackages(PackageManager.GET_META_DATA);
}
相关推荐
参宿四南河三1 小时前
Android Compose SideEffect(副作用)实例加倍详解
android·app
火柴就是我2 小时前
mmkv的 mmap 的理解
android
没有了遇见2 小时前
Android之直播宽高比和相机宽高比不支持后动态获取所支持的宽高比
android
shenshizhong2 小时前
揭开 kotlin 中协程的神秘面纱
android·kotlin
vivo高启强3 小时前
如何简单 hack agp 执行过程中的某个类
android
沐怡旸3 小时前
【底层机制】 Android ION内存分配器深度解析
android·面试
你听得到113 小时前
肝了半个月,我用 Flutter 写了个功能强大的图片编辑器,告别image_cropper
android·前端·flutter
KevinWang_3 小时前
Android 原生 app 和 WebView 如何交互?
android
用户69371750013844 小时前
Android Studio中Gradle、AGP、Java 版本关系:不再被构建折磨!
android·android studio
杨筱毅4 小时前
【底层机制】Android低内存管理机制深度解析
android·底层机制