Advertisement
saurabhmesh17

Pass Array from JNI to Java

Jul 29th, 2014
448
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.28 KB | None | 0 0
  1. /* Here is the JNI code Snippet */
  2.  
  3. int test_arr[5] = {1, 2, 3, 4, 5};      /* Global Variable */
  4. JNIEXPORT void JNICALL Java_com_ges_sip_Callbacks_nativeMethod(JNIEnv *env, jobject obj, jint get_event, jintArray test_arr)
  5. {
  6.     int size = 5;
  7.     jclass cls = (*env)->GetObjectClass(env, obj);
  8.     if (!cls) {
  9.         __android_log_print(ANDROID_LOG_DEBUG, TAG, "initClassHelper:FAILED TO GET CLASS");
  10.         return;
  11.     }
  12.     if (get_event == 1) {
  13.         jintArray result_test = (*env)->NewIntArray(env, size);
  14.         (*env)->SetIntArrayRegion(env, result_test, 0, size, test_arr);
  15.  
  16.         jmethodID mid = (*env)->GetMethodID(env, cls, "callback", "(I[I)V");
  17.         if (mid == 0)
  18.             return;
  19.         (*env)->CallVoidMethod(env, obj, mid, get_event, result_test);
  20.  
  21.     } else if (get_event == 2) {
  22.         ; // Do Something
  23.     }
  24.     return;
  25. }
  26.  
  27. /* Here is my Java Code */
  28. public class Callbacks
  29. {  
  30.     private static final String TAG="[JNI_GSIP_Client]:Callbacks";
  31.     public void Callbacks() {
  32.         System.loadLibrary("sipclient");
  33.     }
  34.  
  35.     public void callback(int get_event, int test_arr[])
  36.     {
  37.         if (get_event == 1) {
  38.             ......         
  39.             Log.d(TAG, "[EVA-GUI] Received Array at Java: result_test[] :"+Arrays.toString(test_arr));
  40.             ......
  41.         } else if (get_event == 2) {
  42.             ; /* Do Something */
  43.         }
  44.     }
  45.     native void nativeMethod(int send_event);
  46.     ......
  47. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement