1. 程式人生 > >cocos2dx複製內容到剪貼簿

cocos2dx複製內容到剪貼簿

android

c++中

javar 型別簽名

型別簽名 Java型別
Z boolean
B byte
C char
S short
I int
J long
F float
D double
L full-qualified-class; 完全限定的類,分號必須要有
[ type type[ ]
(arg-types) ret-type (引數型別列表)返回值型別
    int copyToClipboard(const
std::string& paras) { JniMethodInfo minfo; if (JniHelper::getStaticMethodInfo(minfo, "org/cocos2dx/javascript/AppActivity", "copyToClipboard", "(Ljava/lang/String;)I")) { jstring jstr = minfo.env->NewStringUTF(paras.c_str()); int code = minfo.env->CallStaticIntMethod(minfo.classID, minfo.methodID, jstr); return
code; } #endif return -1; }

java中

public class AppActivity extends Cocos2dxActivity {
    static AppActivity sgsActivity;

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        sgsActivity = this;

    }
    //引數要加final關鍵字,否則內部類不能訪問
static public int copyToClipboard(final String text) { final Context context = sgsActivity;//引數要加final關鍵字,否則內部類不能訪問 try { Log.d("cocos2dx","copyToClipboard " + text); Runnable runnable = new Runnable() { public void run() { android.content.ClipboardManager clipboard = (android.content.ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE); android.content.ClipData clip = android.content.ClipData.newPlainText("Copied Text", text); clipboard.setPrimaryClip(clip); } }; //getSystemService執行所線上程必須執行過Looper.prepare() //否則會出現Can't create handler inside thread that has not called Looper.prepare() sgsActivity.runOnUiThread(runnable); }catch(Exception e){ Log.d("cocos2dx","copyToClipboard error"); e.printStackTrace(); return -1; } return 0; }