小编mut*_*112的帖子

具有 iOS Arm64 二进制框架 (.xcframework) 和 cinterop 的 KMM

我按照此处的指南尝试在新的 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

7
推荐指数
1
解决办法
2229
查看次数

Android checkSelfPermission 推送通知

我的问题是我不确定使用什么字符串键来检查通知权限。对于钥匙

"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”。

如果这是因为系统中的通知权限被认为是“正常”而不是“危险”,那么如何检测用户是否在手机设置中禁用了我的应用程序的通知(如附图)?

在此输入图像描述

permissions android push-notification

3
推荐指数
1
解决办法
2729
查看次数