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  注意,这两段代码是在之前代码上改动的,部分代码与此功能无关。请自行删除。

#include "test.h"
#include "cocos2d.h"
#include "platform/android/jni/JniHelper.h"
#include "../../../Classes/JniTest.h"
#include <jni.h> #define CLASS_NAME "org/cocos2dx/cpp/JniTestHelper"
#define CLASS_NAMENEW "org/cocos2dx/cpp/AppActivity"
using namespace cocos2d;
extern "C"
{
void Share()
{
bool hasMethod;
JniMethodInfo t;
hasMethod = JniHelper::getStaticMethodInfo(t,CLASS_NAMENEW,"Share","()V");
if(hasMethod)
{
log("Share function");
if(t.methodID)
{
t.env->CallStaticVoidMethod(t.classID,t.methodID);
log("function share() was called");
}else{
log("function share was not called");
}
}else
{
log("function share was not found");
}
}
}

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


Cocos2d-x3.3RC0通过JNI调用Android的Java层URI代码发送短信的更多相关文章

  1. android使用Intent操作拨打号码发送短信

    Activity程序Activity.java package com.example.intentcaseproject; import android.net.Uri; import androi ...

  2. android 入门 002 (拨打电话,发送短信)

    一.拨打电话 1.首先做好界面,代码如下: layout =>activity_main.xml 中 <LinearLayout xmlns:android="http://sc ...

  3. android: 接收和发送短信

    8.2    接收和发送短信 收发短信应该是每个手机最基本的功能之一了,即使是许多年前的老手机也都会具备这 项功能,而 Android 作为出色的智能手机操作系统,自然也少不了在这方面的支持.每个 A ...

  4. phoneGap的Android下编写phonegap 发送短信插件

    一.前端代码的编写 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> < ...

  5. cocos2d-x 通过JNI实现c/c++和Android的java层函数互调

    文章摘要: 本文主要实现两个功能: (1)通过Android sdk的API得到应用程序的包名(PackageName),然后传递给c++层函数. (2)通过c++函数调用Android的java层函 ...

  6. android 中调用接口发送短信

    android中可以通过两种方式发送短信 第一:调用系统短信接口直接发送短信:主要代码如下: //直接调用短信接口发短信 SmsManager smsManager = SmsManager.getD ...

  7. js调用android本地java代码

    js调用android本地java代码 当在Android上使用WebView控件开发一个Web应用时,可以创建一个通过Javascript调用Android端java代码的接口.也就是可以通过Jav ...

  8. android中调用系统的发送短信、发送邮件、打电话功能

    1 调用发送短信功能: Uri smsToUri = Uri.parse("smsto:");  Intent sendIntent = new Intent(Intent.ACT ...

  9. android开发学习:打电话和发短信

    1.新建一个android项目 File--New--Other--android application project 填写application name(就是应用的名字.比方:天天酷跑) 填写 ...

随机推荐

  1. 黑马程序员_java基础笔记(02)...java语言基础组成

    ——————————  ASP.Net+Android+IOS开发..Net培训.期待与您交流!—————————— java语法(1:关键字,2:标识符,3:注释,4:常量和变量,5:运算符,6:语 ...

  2. linux下更换pip源

    pip不更换源的话,速度可能非常慢.这里将pip源更换为阿里云源. 1.修改文件~/.pip/pip.conf(没有该文件则创建一个) $ sudo vim ~/.pip/pip.conf 2.写入以 ...

  3. .NET Core2.1下采用EFCore比较原生IOC、AspectCore、AutoFac之间的性能

    一.前言 ASP.NET Core本身已经集成了一个轻量级的IOC容器,开发者只需要定义好接口后,在Startup.cs的ConfigureServices方法里使用对应生命周期的绑定方法即可,常见方 ...

  4. MySQL 类型转换

    1.问题描述 在项目中遇到要将Int类型转为Char类型,然后利用转化后的Char类型进行模糊查询. 例:合同编号在数据库中为int类型 8066 用利用 806 模糊查询出合同编号为8066数据记录 ...

  5. 1007 Maximum Subsequence Sum (25)(25 point(s))

    problem Given a sequence of K integers { N~1~, N~2~, ..., N~K~ }. A continuous subsequence is define ...

  6. python2和python3同时安装

    现在很多项目用python2完成的,很多情况下2和3是同时存在的 大多人都是先安装了python2 安装python3: 下一步: 然后安装完成以后,去cmd控制台输入python看看安装成功了吗(用 ...

  7. 在python中独立运行orm

  8. [CSAcademy]Cycle Tree

    [CSAcademy]Cycle Tree 题目大意: 定义环树是一张无向连通的简单图,它的生成方式如下: \(2\)个点\(1\)条边的图是环树: 对任意一个环树,加入\(k\)个点\(a_{1\s ...

  9. 【BZOJ】4985: 评分【DP】

    4985: 评分 Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 148  Solved: 75[Submit][Status][Discuss] Des ...

  10. bzoj1477 poj1061 青蛙的约会

    Description 两只青蛙在网上相识了,它们聊得很开心,于是觉得很有必要见一面.它们很高兴地发现它们住在同一条纬度线上,于是它们约定各自朝西跳,直到碰面为止.可是它们出发之前忘记了一件很重要的事 ...