This is the code i have implemented for creating 2D texture from 16 bit pixel data:

GLES30.glTexImage2D(GLES30.GL_TEXTURE_2D, 0,
GLES30.GL_RGB16I, ImageWidth, ImageHeight, 0,
GLES30.GL_RGB_INTEGER, GLES30.GL_SHORT, pixelBuffer);
I have succesfully created Image Texture using GL_UNSIGNED BYTE with 8 bit data. But failed when using GL_SHORT using 16 bit data. Can you please suggest a solution for solving this issue.