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>
相关推荐
小菜同学爱学习12 小时前
突破瓶颈!MySQL高级优化与企业级实战场景详解
android·数据库·mysql
casual_clover13 小时前
【Android】创建带参数的 Fragment
android·带参数的fragment
da_caoyuan13 小时前
Android callbackFlow 使用场景详解
android
常利兵13 小时前
安卓启动页Logo适配秘籍:告别“奇形怪状”的展示
android·java·开发语言
帅次13 小时前
Android 性能优化专题面试稿
android·面试·性能优化
pengyu13 小时前
【Kotlin 协程修仙录 · 筑基境 · 初阶】 | 根本大法:结构化并发的父子约束与取消传播
android·kotlin
ifuleyou166813 小时前
《Inter问题》
android·开发语言·kotlin
夏沫琅琊14 小时前
android 通话记录相关
android·kotlin
MonkeyKing14 小时前
蓝蓝牙核心基础概念详解:2.4GHz频段、跳频、信道、广播、连接、配对
android·ios
我命由我1234514 小时前
Android 广播 - 显式广播与隐式广播
android·java·开发语言·java-ee·kotlin·android studio·android-studio