1、Jni不在赘述。翻看前面博客
2、直接上代码
1)Java层,直接加在AppActivity.java中
public class AppActivity extends Cocos2dxActivity{
public static Activity acty;
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
acty = this;
}
static {
System.loadLibrary("cocos2dcpp");
}
public static void Share(){
new Thread(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
Uri uri = Uri.parse("smsto:18928475901");
Intent it = new Intent(Intent.ACTION_SENDTO,uri);
it.putExtra("sms_body", "短信内容");
System.out.println("test");
it.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
// acty.startActivity(Intent.createChooser(intent, "分享"));
acty.startActivity(it);
}
}).start();
}
}2)Jni层:Jni/hellocpp/test类的.h和.cpp代码例如以下
test.h
#ifndef TEST_H_
#define TEST_H_
extern "C"
{
//C++调Java的函数接口。该方法在HelloWorldScene中menuCallback函数中使用。
// void showTipDialog(const char* title,const char* msg);
void Share();
}
#endif
test.cpp 注意,这两段代码是在之前代码上改动的,部分代码与此功能无关。请自行删除。
3)C++层
void HelloWorld::menuCloseCallback(Ref* pSender)
{
#if(CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
// showTipDialog("exit","Exit,Really Go?");
Share();//调用tes.cpp中的Share()函数,该函数调用Java中的Share()函数
#endif
#if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS)
exit(0);
#endif
}
4)注意
在mk文件加上test.cpp文件路径。
在头文件处加上平台推断,代码例如以下:
#if(CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID) #include "../proj.android/jni/hellocpp/test.h" #endif