Mats-Hjalmar
06/15/2024, 1:02 PMLaunchedEffect(Unit) {
if (!CHHapticEngine.capabilitiesForHardware().supportsHaptics) return@LaunchedEffect
val hapticEngine = CHHapticEngine() // Nullpointer exception here.
val hapticDict = mapOf(
CHHapticPatternKeyPattern to listOf(
mapOf(
CHHapticPatternKeyEvent to listOf(
mapOf(
CHHapticPatternKeyEventType to CHHapticEventTypeHapticTransient,
CHHapticPatternKeyTime to CHHapticTimeImmediate,
CHHapticPatternKeyEventDuration to 1.0
)
)
)
)
)
val pattern = CHHapticPattern(dictionary = hapticDict as Map<Any?, *>, error = null)
val player = hapticEngine.createPlayerWithPattern(pattern = pattern, error = null)
player?.startAtTime(0.0, error = null)
}
A better question might be, how can i use haptic engine in iOSAndrei Salavei
06/16/2024, 9:17 AMval haptic = LocalHapticFeedback.current
Row(
Modifier.clickable {
haptic.performHapticFeedback(HapticFeedbackType.LongPress)
}
)
Mats-Hjalmar
06/16/2024, 9:20 AMAndrei Salavei
06/16/2024, 9:51 AM// Nullpointer exception here.
. let me check.Andrei Salavei
06/16/2024, 10:37 AMCHHapticsEngine
.
Try the following code:
memScoped {
val result = alloc<ObjCObjectVar<NSError?>>()
val hapticEngine = CHHapticEngine(andReturnError = result.ptr)
val error = result.value
if (error == null) {
println(">>>>> Okay")
} else {
println(">>>>> Not okay: $error")
}
}
I don't have ready-to-test device to verify the code.Mats-Hjalmar
06/16/2024, 1:32 PMMats-Hjalmar
06/16/2024, 1:32 PMMats-Hjalmar
06/16/2024, 2:13 PMAndrei Salavei
06/17/2024, 11:16 AMMats-Hjalmar
06/17/2024, 11:17 AM