我有一个 Android 应用程序配置为通过 Firebase 接收推送通知,但在手机处于打盹模式时无法正常工作。
应用程序正确接收推送通知,无论它是在前台还是在后台。为此,我仅使用data推送通知中的字段来处理传入的任何内容,而不管应用程序的状态如何。
我已经实现了我的服务来接收通知,如下所示:
class MyFirebaseMessagingService : FirebaseMessagingService() {
override fun onMessageReceived(p0: RemoteMessage?) {
Timber.d("Push notification received")
super.onMessageReceived(p0)
when (p0!!.data["ch"]) {
NotificationType.VoIP.channelType() -> handleVoIPNotification(p0.data)
NotificationType.Push.channelType() -> handlePushNotification(p0.data)
}
}
}
Run Code Online (Sandbox Code Playgroud)
该ch属性定义了通知的类型并从我的后端发送:由于我的应用程序具有视频通话功能,当有人呼叫后端时,会发送通知ch = voip并将消息优先级设置为high,如Firebase 指南中所述。
该handleVoIPNotification函数包含以下内容:
private fun handleVoIPNotification(data: Map<String, String>) {
val gson = Gson()
val jsonElement = gson.toJsonTree(data)
try {
val voIPNotification = gson.fromJson(jsonElement, VoIPNotification::class.java)
Timber.i("VoIP Notification received: %s", voIPNotification.action.name)
// pass the incoming …Run Code Online (Sandbox Code Playgroud) 我正在针对 iOS 的 Kotlin 多平台项目中研究 AES256 加密算法。
我检查了一些在纯 Kotlin 中实现这一点的现有库(例如krypto),但它们都不符合我对其余代码的要求(它们已经在 JVM 和 JS 中实现,因此无法更改) .
来自 iOS 背景,我决定使用CommonCrypto. 我从这里改编并移植了代码,但我坚持如何ULong通过引用传递CCCrypt函数并稍后检索其值。
我非常仔细地阅读了关于C Interop和Objective-C Interop的 Kotlin 文档,但我找不到任何可以解释如何处理我的案例的示例。
特别是,我的问题是numBytesEncrypted变量(见下面的代码)。我需要通过引用CCCrypt函数来传递它,然后读取它的值以NSData使用正确的长度实例化结果。在 Objective-C/Swift 中,我会&在调用函数时为变量加上前缀。
但是,Kotlin 不支持&运算符。如果我从文档中理解正确,那么 Native 中的替换是CValueRef( docs ),所以我使用cValue速记来获取正确类型的引用(应该是size_t,又名。ULong)。
我试图以CValueRef两种方式实例化,就类型检查而言,这两种方式似乎都有效:
val numBytesEncrypted = cValue<ULongVar>()
// or
val numBytesEncrypted = cValue<ULongVarOf<size_t>>()
Run Code Online (Sandbox Code Playgroud)
然后我使用这段代码来获取函数执行后的值: …
我的公司正在从之前的 JIRA 环境迁移到 DevOps 和 Azure Boards,我们遇到了一个非常大的权限问题。
\n\n目前,我们已经配置了各个领域来支持我们的开发团队;我们还有一个专门针对产品团队的区域,首先输入业务需求,然后进行审查。每个团队都有权编辑自己区域中的工作项,并且不能编辑其他区域中的工作项。
\n\n所以,基本上这就是我们的结构:
\n\n现在,我们正在尝试授予任何团队中的任何人对工作项目发表评论(即使用“讨论”部分)的权限,无论其所在区域如何,但看起来评论的能力与工作项目严格相关。编辑工作项的权限\xe2\x80\xa6 换句话说,如果不授予编辑工作项的权限,我们就无法启用“讨论”部分,这并不理想。
\n\n有没有办法在限制编辑的同时为任何人启用讨论部分?
\n