AIDL接入Android 8.0和Android 11以上版本需要添加的设置

直接开始正题

Client端绑定服务代码

	val serviceIntent = Intent().apply {
        component = ComponentName("包名", "服务类名")
        action = "服务Action" //没有可以不写
    }
    val result = bindService(serviceIntent, connect, Context.BIND_AUTO_CREATE)
    println("bindService result $result")

Android 8之后 也就是sdk>= 26 在服务类的onCreate中需要加入启动前台服务的代码,不然无法绑定服务
该代码需要再清单文件加入权限

<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />

代码如下

    override fun onCreate() {
        super.onCreate()
       //.... 其他代码

        startServiceForeground()
    }

    private fun startServiceForeground() {
        if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.O){
            val manager = getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
            val channel = NotificationChannel("ChannelID", "NotificationName", NotificationManager.IMPORTANCE_LOW)

            manager.createNotificationChannel(channel)
            val notification = Notification.Builder(applicationContext, "ChannelID").build()
            startForeground(0x111, notification)
        }
    }

之后是Android11之后 官方进一步对安全做了限制,需要再Client的清单文件下 补充queries 否则还是无法绑定服务
加入queries如下

    <queries>
        <package android:name="需要绑定的服务的包名"/>
    </queries>

相关推荐

  1. Android基础-AIDL实现

    2023-12-20 14:38:03       32 阅读
  2. Android10以上版本调用相机拍照

    2023-12-20 14:38:03       35 阅读
  3. Android AIDL传递类对象

    2023-12-20 14:38:03       28 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-20 14:38:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-20 14:38:03       101 阅读
  3. 在Django里面运行非项目文件

    2023-12-20 14:38:03       82 阅读
  4. Python语言-面向对象

    2023-12-20 14:38:03       91 阅读

热门阅读

  1. 国产MCU在充气泵方案上面的优势

    2023-12-20 14:38:03       62 阅读
  2. 机器学习之逻辑回归(Logistic Regression)

    2023-12-20 14:38:03       61 阅读
  3. nginx配置端口转发

    2023-12-20 14:38:03       67 阅读
  4. 第30节: Vue3 监听事件

    2023-12-20 14:38:03       86 阅读
  5. 搜索区间—-二分查找,力扣-go实现

    2023-12-20 14:38:03       55 阅读
  6. 我们应该了解的前端缓存

    2023-12-20 14:38:03       45 阅读
  7. 【无标题】

    2023-12-20 14:38:03       62 阅读
  8. C++中的类型转换概念详解和示例代码

    2023-12-20 14:38:03       55 阅读
  9. hackrf OOK算法简单数据分析(傅里叶计算)

    2023-12-20 14:38:03       55 阅读
  10. @Configuration 什么时候被执行

    2023-12-20 14:38:03       59 阅读
  11. 后端架构演进过程

    2023-12-20 14:38:03       65 阅读
  12. 算法竞赛进阶指南学习目录

    2023-12-20 14:38:03       64 阅读