diff --git a/coreapi/linphonecore_jni.cc b/coreapi/linphonecore_jni.cc index 8f4b441542fd08858a27455c12702a52cc7285fd..be72e283fa68594c393b5c4ac37a42f670770059 100644 --- a/coreapi/linphonecore_jni.cc +++ b/coreapi/linphonecore_jni.cc @@ -2726,11 +2726,15 @@ extern "C" void Java_org_linphone_core_LinphoneChatMessageImpl_store(JNIEnv* en linphone_chat_message_store((LinphoneChatMessage*)ptr); } -extern "C" jstring Java_org_linphone_core_LinphoneChatMessageImpl_getText(JNIEnv* env +extern "C" jbyteArray Java_org_linphone_core_LinphoneChatMessageImpl_getText(JNIEnv* env ,jobject thiz ,jlong ptr) { - jstring jvalue =env->NewStringUTF(linphone_chat_message_get_text((LinphoneChatMessage*)ptr)); - return jvalue; + const char *message = linphone_chat_message_get_text((LinphoneChatMessage*)ptr); + size_t length = strlen(message); + jbyteArray array = env->NewByteArray(length); + env->SetByteArrayRegion(array, 0, length, (const jbyte*)message); + + return array; } extern "C" jint Java_org_linphone_core_LinphoneChatMessageImpl_getReason(JNIEnv* env diff --git a/java/impl/org/linphone/core/LinphoneChatMessageImpl.java b/java/impl/org/linphone/core/LinphoneChatMessageImpl.java index 7e6d474a229615a43c921649579272f503975870..6d6009c921cdab158117d95c106ec09a33460044 100644 --- a/java/impl/org/linphone/core/LinphoneChatMessageImpl.java +++ b/java/impl/org/linphone/core/LinphoneChatMessageImpl.java @@ -1,8 +1,10 @@ package org.linphone.core; +import java.io.UnsupportedEncodingException; + public class LinphoneChatMessageImpl implements LinphoneChatMessage { protected final long nativePtr; - private native String getText(long ptr); + private native byte[] getText(long ptr); private native long getPeerAddress(long ptr); private native String getExternalBodyUrl(long ptr); private native void setExternalBodyUrl(long ptr, String url); @@ -25,7 +27,12 @@ public class LinphoneChatMessageImpl implements LinphoneChatMessage { @Override public String getText() { - return getText(nativePtr); + try { + return new String(getText(nativePtr), "UTF-8"); + } catch (UnsupportedEncodingException e) { + e.printStackTrace(); + } + return null; } @Override