diff options
| author | 2017-12-21 19:14:37 +0000 | |
|---|---|---|
| committer | 2017-12-21 19:14:37 +0000 | |
| commit | e1a67faba3b91bdfedbb80301e06db3488b70f22 (patch) | |
| tree | f50f108a0d12ba38e1dfb19a1804eecca70b64d1 | |
| parent | 6c4f2de95a3cfde00f6d93609337b8f92bccdf5f (diff) | |
| parent | 6dfa25aa3f1c555fa3bd04b8452712d64dd71918 (diff) | |
Merge "Using new usbhost function usb_device_get_string_ucs2() to get USB descriptor strings."
| -rw-r--r-- | services/core/jni/com_android_server_UsbDescriptorParser.cpp | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/services/core/jni/com_android_server_UsbDescriptorParser.cpp b/services/core/jni/com_android_server_UsbDescriptorParser.cpp index 35e65bc3110f..79f482c6df7f 100644 --- a/services/core/jni/com_android_server_UsbDescriptorParser.cpp +++ b/services/core/jni/com_android_server_UsbDescriptorParser.cpp @@ -81,16 +81,20 @@ jstring JNICALL Java_com_android_server_usb_descriptors_UsbDescriptorParser_getD return NULL; } - char* c_str = usb_device_get_string(device, stringId, 0 /*timeout*/); - - jstring j_str = env->NewStringUTF(c_str); - - free(c_str); - usb_device_close(device); - + // Get Raw UCS2 Bytes + jbyte* byteBuffer = NULL; + size_t numUSC2Bytes = 0; + int retVal = + usb_device_get_string_ucs2(device, stringId, 0 /*timeout*/, + (void**)&byteBuffer, &numUSC2Bytes); + + jstring j_str = NULL; + + if (retVal == 0) { + j_str = env->NewString((jchar*)byteBuffer, numUSC2Bytes/2); + free(byteBuffer); + } return j_str; } } // extern "C" - - |