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>
相关推荐
冬奇Lab10 小时前
Android 开发要变天了:Google 专为 Agent 重建工具链,Token 减少 70%、速度提升 3 倍
android·人工智能·ai编程
imuliuliang12 小时前
存储过程(SQL)
android·数据库·sql
AgCl2314 小时前
MYSQL-6-函数与约束-3/17
android·数据库·mysql
zzb158015 小时前
Fragment 生命周期深度图解:从 onAttach 到 onDetach 完整流程(面试必备)
android·java·面试·安卓
众少成多积小致巨15 小时前
Android 源码查看笔记
android·源码
angerdream15 小时前
Android手把手编写儿童手机远程监控App之前台服务
android
敲代码的瓦龙17 小时前
Android?Activity!!!
android
重生之我在安卓搞音频18 小时前
二、Android 音频框架
android·音视频
studyForMokey18 小时前
【Android面试】Java专题 todo
android·java·面试
代码改善世界18 小时前
【MATLAB初阶】矩阵操作(二):矩阵的运算
android·matlab·矩阵