android 复制,粘贴流程很简单, 就是操作ClipboardManager写入或者获得数据,
需要导入 import android.text.ClipboardManager;
//java代码
public void copyMsg()
{
ClipboardManager mClipboardManager = (ClipboardManager)instance.getSystemService(CLIPBOARD_SERVICE);
mClipboardManager.setText("copy is ok");
}
public String getClipBoardContent()
{
ClipboardManager clipboardManager=(ClipboardManager)this.getSystemService(Context.CLIPBOARD_SERVICE);
tempStr=clipboardManager.getText().toString().trim();
return tempStr;
}
但是android sdk11后就被废弃了,需要引用 import android.content.ClipboardManager;
ClipboardManager clipboardManager = (ClipboardManager)getSystemService(Context.CLIPBOARD_SERVICE);
clipboardManager.setPrimaryClip(ClipData.newPlainText(null, "内容"));
if (clipboardManager.hasPrimaryClip()){
clipboardManager.getPrimaryClip().getItemAt(0).getText();
}
//这里是c++调用java非静态函数,所需要返回的java类的对象
public static Object get_Instance()
{
return this;
}
//c++代码
//复制 这里调用java 静态函数
void HelloWorld::copy()
{
#if(CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
JniMethodInfo method;
bool isHave=JniHelper::getStaticMethodInfo(method,"org/cocos2dx/cpp/AppActivity","clip","()V");
if(isHave)
{
method.env->CallStaticVoidMethod(method.classID,method.methodID);
}
#endif
}
//粘贴 这里调用java非静态函数
std::string HelloWorld::paste()
{
const char* msg = "";
#if(CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
JniMethodInfo method;
bool isHave=JniHelper::getStaticMethodInfo(method,"org/cocos2dx/cpp/AppActivity","get_Instance","()Ljava/lang/Object;");
jobject jobj;
if(isHave)
{
jobj=method.env->CallStaticObjectMethod(method.classID,method.methodID);
}
JniMethodInfo methodInfo;
bool isHave2= JniHelper::getMethodInfo(methodInfo,"org/cocos2dx/cpp/AppActivity","getClipBoardContent","()Ljava/lang/String;");
if(isHave2)
{
//jstring str= method.env->(jstring)CallStaticObjectMethod(method.classID,method.methodID);
jstring pasteMsg= (jstring)methodInfo.env->CallObjectMethod(jobj,methodInfo.methodID);
if(pasteMsg==NULL)
{
return "";
}
msg = (methodInfo.env)->GetStringUTFChars(pasteMsg, NULL);
return msg;
}
#endif
return msg;
}