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. django视图函数中 应用装饰器

    from django.shortcuts import render, redirect, HttpResponse from .forms import LoginForm, Registrati ...

  2. MVC设计模式一

    一:基础知识 1.mvc model view control 2.模型 是应用程序的主体部分,模型表示业务数据与业务逻辑. 一个模型可以为多个视图提供数据 提高了代码的可重用性 3.视图 用户看到的 ...

  3. linux下更换pip源

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

  4. Mysql远程连接报错:SQL Error (1130): Host '192.168.61.128' is not allowed to connect to this MySQL server

    Mysql远程连接报错:SQL Error (1130): Host '192.168.0.18' is not allowed to connect to this MySQL server     ...

  5. HashMap+双向链表手写LRU缓存算法/页面置换算法

    import java.util.Hashtable; class DLinkedList { String key; //键 int value; //值 DLinkedList pre; //双向 ...

  6. 预备作业02:体会做中学(Learning By Doing)

    1.很惭愧,我并没有什么技能能强过大家. 2...... 3.我觉得培养一个技能,必须要通过勤勉的练习,认真的学习,还有不断地结合实践. 4.我觉得我学习<程序设计与数据结构>之后应该对程 ...

  7. TCP 建立连接为什么要握 3 次手?

    上次已经说过,没有协议,不成方圆,计算机之间的通信更是依赖于协议.今天就重点分析一下 TCP 协议. 传输控制协议 TCP 是一种面向连接的.可靠的.基于字节流的传输层通信协议,由IETF的RFC 7 ...

  8. 1008 Elevator (20)(20 point(s))

    problem The highest building in our city has only one elevator. A request list is made up with N pos ...

  9. Opencv学习笔记4:Opencv处理调整图片亮度和对比度

    一.理论基础 在数学中我们学过线性理论,在图像亮度和对比度调节中同样适用,看下面这个公式: 在图像像素中其中: 参数f(x)表示源图像像素. 参数g(x) 表示输出图像像素. 参数a(需要满足a> ...

  10. 【枚举】【二分】Codeforces Round #477 (rated, Div. 2, based on VK Cup 2018 Round 3) D. Resource Distribution

    题意:有两个服务要求被满足,服务S1要求x1数量的资源,S2要求x2数量的资源.有n个服务器来提供资源,第i台能提供a[i]的资源.当你选择一定数量的服务器来为某个服务提供资源后,资源需求会等量地分担 ...