我按照此处的指南尝试在新的 KMM 项目中使用不带 CocoaPods 的 iOS 框架:
https://kotlinlang.org/docs/kmm-add-dependency.html#without-cocoapods
我有一个现有的、工作的 .xcframework,我将其添加到 .xcframework 下的项目中shared/src。我添加了一个MyKit.def文件并在同一共享目录中src/nativeInterop/cinterop/更新了该文件:build.gradle.kts
MyKit.def 看起来像
language = Objective-C
modules = MyKit
package = MyKit
Run Code Online (Sandbox Code Playgroud)
构建.gradle.kts
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeTarget
plugins {
kotlin("multiplatform")
id("com.android.library")
}
kotlin {
android()
val iosTarget: (String, KotlinNativeTarget.() -> Unit) -> KotlinNativeTarget =
if (System.getenv("SDK_NAME")?.startsWith("iphoneos") == true)
::iosArm64
else
::iosX64
iosTarget("ios") {
binaries {
framework {
baseName = "shared"
}
}
}
sourceSets {
val commonMain by getting
val commonTest by getting { …Run Code Online (Sandbox Code Playgroud) android ios kotlin-multiplatform xcframework kotlin-multiplatform-mobile
我的问题是我不确定使用什么字符串键来检查通知权限。对于钥匙
"com.google.android.c2dm.permission.RECEIVE"
Run Code Online (Sandbox Code Playgroud)
即使我从清单中删除了权限,此代码也始终返回 true:
int permissionCheck = ContextCompat.checkSelfPermission(getApplicationContext(), "com.google.android.c2dm.permission.RECEIVE");
if (permissionCheck==PackageManager.PERMISSION_GRANTED) {
Log.d("granted","TRUE");
}
Run Code Online (Sandbox Code Playgroud)
我还尝试了其他权限字符串,例如“mypkg.permission.C2D_MESSAGE”。
如果这是因为系统中的通知权限被认为是“正常”而不是“危险”,那么如何检测用户是否在手机设置中禁用了我的应用程序的通知(如附图)?