小编Tho*_*y84的帖子

ConnectionService 未从 TelecomManager#placeCall 启动

我需要拦截设备框架发出的传出呼叫的事件。
按照android 指南,我停在第 3 点电信子系统绑定到您的应用程序的 ConnectionService 实现。,也就是说我已经走到了这一步:

通话流程

val telecomManager :TelecomManager= getSystemService(
        TELECOM_SERVICE
    ) as TelecomManager
    if (ContextCompat.checkSelfPermission(this, Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED) {
        ActivityCompat.requestPermissions(this, arrayOf(Manifest.permission.CALL_PHONE),
            2333)
    } else {
        try {
            val phoneAccountHandle = PhoneAccountHandle(ComponentName(
                applicationContext,
                MyConnectionService::class.java
            ), "ID999")
            telecomManager.registerPhoneAccount(PhoneAccount.builder(
                phoneAccountHandle,
                "label"
            ).setCapabilities(PhoneAccount.CAPABILITY_CONNECTION_MANAGER) .build())
            val extras = Bundle()
            extras.putParcelable(TelecomManager.EXTRA_PHONE_ACCOUNT_HANDLE, phoneAccountHandle)
            telecomManager.placeCall(Uri.parse("tel:$phoneNumber"), extras)
        } catch (e: SecurityException) {
            e.printStackTrace()
        }
    }
Run Code Online (Sandbox Code Playgroud)

连接服务

class MyConnectionService : ConnectionService() {
private val TAG = "mycnnser"
override fun onCreate() {
    super.onCreate()
    Log.d(TAG, …
Run Code Online (Sandbox Code Playgroud)

android telecom-manager android-connectionservice

5
推荐指数
0
解决办法
692
查看次数

无法加载类插件

我正在尝试生成第一个插件,但出现此错误:
无法找到 jar:file
org.gradle.api.plugins.InvalidPluginException 中指定的插件“common-plugin”的实现类“CommonPluginClass”:应用插件请求时发生异常[ id: '通用插件']

在此输入图像描述
这是我的CommonPluginClass

class CommonPluginClass: Plugin<Project> {

    override fun apply(project: Project) {
        project.task("hello") {
            doLast {
                println ("Hello from the CommonPluginClass")
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这很简单。我的 build.gradle (约定)

plugins {
    id 'groovy-gradle-plugin'
}

gradlePlugin {
    plugins {
        commonPlugin {
            id = "common-plugin"
            implementationClass = "CommonPluginClass"
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

并进入settings.gradle(构建逻辑)

dependencyResolutionManagement {
    repositories {
        google()
        mavenCentral()
    }
}

rootProject.name = "build-logic"
include(":convention")
Run Code Online (Sandbox Code Playgroud)

在 build.gradle (应用程序)中,我以这种模式调用插件:
plugins { id 'common-plugin' }
我的例外:

  • 出了什么问题:应用插件请求 [id: 'common-plugin'] …

android gradle android-gradle-plugin

5
推荐指数
2
解决办法
2448
查看次数