android bindService打开失败

在写demo验证SurfaceControlViewHost的时候,bindService提示

Unable to start service Intent U=0: not found

在源代码里搜了下,找到是在如下方法里面里面打印出来的

java 复制代码
// frameworks/base/services/core/java/com/android/server/am/ActiveServices.java
retrieveServiceLocked {
    ....
    if(mAm.getPackageManagerInternal().filterAppAccess(r.packageName,callingUid,
        userId)){
        Slog.w(TAG_SERVICE,"Unable to start service "+service+" U="+userId
        +": not found");
        returnnull;
    }
    ....
}

后面查了下,发现是包可见性的变更引起的异常

Android 11 中的软件包可见性 | Android Developers
Android 上的软件包可见性过滤 | Android Developers

解决方案,在使用的bindService的应用的AndroidManifest.xml里面加上queries,类似如下

java 复制代码
    <queries>
        <package android:name="com.example.host"/>
    </queries>
相关推荐
城东米粉儿1 小时前
Android AIDL 笔记
android
城东米粉儿1 小时前
Android 进程间传递大数据 笔记
android
城东米粉儿2 小时前
Android KMP 笔记
android
冬奇Lab3 小时前
WMS核心机制:窗口管理与层级控制深度解析
android·源码阅读
松仔log4 小时前
JetPack——Paging
android·rxjava
城东米粉儿4 小时前
Android Kotlin DSL 笔记
android
城东米粉儿4 小时前
Android Gradle 笔记
android
城东米粉儿4 小时前
Android Monkey 笔记
android
城东米粉儿5 小时前
Android 组件化 笔记
android