我正在创建一个 Jetbrains Compose 多平台项目。但我只需要 Desktop (JVM) 和 Android,所以有两个 JVM 目标。我想分解出需要 grpc 的逻辑,这样 Android 和 Desktop 都可以使用它,而无需我对其进行两次编程。
我似乎无法找到将 grpc/proto 绑定到项目中的方法,以便我可以编写一次逻辑并在 android 和桌面之间共享它。这是我的公共项目的 build.gradle.kts 的样子:
plugins {
id("com.android.library")
kotlin("multiplatform")
id("org.jetbrains.compose")
}
kotlin {
android()
jvm("desktop")
sourceSets {
named("commonMain") {
dependencies {
api(compose.runtime)
api(compose.foundation)
api(compose.material)
api(compose.ui)
implementation(compose.preview)
implementation(compose.uiTooling)
}
}
}
}
android {
compileSdk = 31
defaultConfig {
minSdk = 21
targetSdk = 31
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}
sourceSets {
named("main") {
manifest.srcFile("src/androidMain/AndroidManifest.xml")
res.srcDirs("src/androidMain/res")
}
} …Run Code Online (Sandbox Code Playgroud) android grpc kotlin-multiplatform android-jetpack-compose jetbrains-compose
我希望当设备找到指定的蓝牙设备时唤醒我的应用程序。问题是,在 android O 之后,您不能再注册广播接收器来在后台处理它。拥有持续的前台服务对我来说也是没有选择的。Android Auto 已经执行了此行为,我正在尝试实现自己。
我发现了这个:https : //developer.android.com/guide/topics/connectivity/companion-device-pairing 它说
设备配对后,设备可以利用 REQUEST_COMPANION_RUN_IN_BACKGROUND 和 REQUEST_COMPANION_USE_DATA_IN_BACKGROUND 权限从后台启动应用程序。
可悲的是,我似乎无法找到这是如何使用的,如果这甚至提供了我正在寻找的东西。我很高兴所有的建议和提示。