2015-10-08 59 views
1

我正在使用mupdf庫進行註釋。註釋後,當我們backpress上mupdfactivity下面的代碼寫入註解之後MuPdf保存文件android

@Override 
public void onBackPressed() { 
    if (core != null && core.hasChanges()) { 
     DialogInterface.OnClickListener listener = new DialogInterface.OnClickListener() { 
      public void onClick(DialogInterface dialog, int which) { 
       if (which == AlertDialog.BUTTON_POSITIVE) 
        core.save(); 

       finish(); 
      } 
     }; 
     AlertDialog alert = mAlertBuilder.create(); 
     alert.setTitle("Save Changes"); 
     alert.setMessage(getString(R.string.document_has_changes_save_them_)); 
     alert.setButton(AlertDialog.BUTTON_POSITIVE, 
       getString(R.string.yes), listener); 
     alert.setButton(AlertDialog.BUTTON_NEGATIVE, 
       getString(R.string.no), listener); 
     alert.show(); 
    } else { 
     super.onBackPressed(); 
    } 
} 

但是當我點擊core.save()方法,它重定向我的本地函數體中MuPdfCore.java。

private native void saveInternal(); 

我想更改保存文件的路徑。搜索這個方法的實現,我可以從哪裏獲得save方法的實現?如果有人在這方面做過工作?

在此先感謝

回答

1

你可以找到你正在尋找的功能和被稱爲形式在Java側platform/android/jni/mupdf.c所有其他本地功能。

您可以修改此功能通過改變其聲明

JNI_FN(MuPDFCore_saveAsInternal)(JNIEnv *env, jobject thiz, jstring jpath) 

的函數接受一個新的路徑可以然後通過聲明進行訪問Java端一樣

private native int saveAsInternal(String path); 

MuPDFCore

在C代碼,你可以得到經的東西,作爲一個Java字符串傳遞像

const char *new_path = NULL;                
if (jpath != NULL) { 
    public static native boolean javascriptSupported(); 
    new_path = (*env)->GetStringUTFChars(env, jpath, NULL); 
} 

希望有所幫助的路徑。