Cocos2d-x3.3RC0通过JNI调用Android的Java层URI代码发送短信

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

时间: 2024-12-29 04:48:53

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

QtAndroid详解(5):JNI调用Android系统功能(2)

在"QtAndroid详解(4):JNI调用Android系统功能(1)"中我们给出了一些简单的示例,演示了如何使用 Qt JNI 类库访问网络状态.系统资源目录.当前应用信息等等,这次呢,我们提供一些新的示例,这些示例可能更具实际意义.本文的示例包括: 震动 让屏幕常亮 动态改变应用的显示方向(横屏.竖屏) 调节屏幕亮度 设置铃声模式 示例介绍 图1 我们按照界面上的顺序,一个一个来看这些功能如何实现. 源码分析 构建界面的代码在 Widget 类的构造函数里,不说了.这次我们换个搞

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

一.前端代码的编写 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>jQuery Mobile Web 应用程序</title> <link href="jquery.mobile-1.3.2.css" rel="stylesheet" type="text/css"/>

android: 接收和发送短信

8.2    接收和发送短信 收发短信应该是每个手机最基本的功能之一了,即使是许多年前的老手机也都会具备这 项功能,而 Android 作为出色的智能手机操作系统,自然也少不了在这方面的支持.每个 Android 手机都会内置一个短信应用程序,使用它就可以轻松地完成收发短信的操作,如 图 8.4 所示. 图   8.4 不过作为一名开发者,仅仅满足于此显然是不够的.你要知道,Android 还提供了一系 列的 API,使得我们甚至可以在自己的应用程序里接收和发送短信.也就是说,只要你有足 够的信

针对Android平台我们需要学习如何在Unity中调用Android的JAVA代码。

Unity for Android 比较特殊,Unity for IOS 打包是将XCODE工程直接交给开发者,开发者可以在工程的基础上继续添加新的视图,最后由开发者自行打包生成IPA包,发布程序.而Unity for Android打包直接生成APK包,等于说源代码开发者是看不到的,但是Unity的自身确实有些局限,针对Android平台我们需要学习如何在Unity中调用Android的JAVA代码.本章我们的目标是使用Unity的脚本打开Activity.首先我们创建一个普通的Android

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

1 调用发送短信功能: Uri smsToUri = Uri.parse("smsto:"); Intent sendIntent = new Intent(Intent.ACTION_VIEW, smsToUri); sendIntent.putExtra("address", "123456"); //电话号码,这行去掉的话,默认就没有电话 sendIntent.putExtra("sms_body","短信内容

android 中调用接口发送短信

android中可以通过两种方式发送短信 第一:调用系统短信接口直接发送短信:主要代码如下: Java代码   //直接调用短信接口发短信 SmsManager smsManager = SmsManager.getDefault(); List<String> divideContents = smsManager.divideMessage(content); for (String text : divideContents) { smsManager.sendTextMessage(&

Android接收和发送短信

每一部手机都具有短信接收和发送功能,下面我们通过代码来实现接收和发送短信功能. 一.接收短信 1.创建内部广播接收器类,接收系统发出的短信广播 2.从获得的内容中解析出短信发送者和短信内容 3.在Activity中注册广播 4.添加接收短信权限 下面放上具体的代码 activity_main.xml文件用于显示短信发送者号码和显示短信内容 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout

【转】android 手机发送短信,震动,播放默认铃声

发送短信 @SuppressWarnings("deprecation") public void sendMessage(String phoneNo, String messageContent) {          SmsManager smsManager = SmsManager.getDefault();          smsManager.sendTextMessage(phoneNo,// 接收方的手机号码                             

android发送短信例子

Android应用开发中我们常常需要发送手机短信.这对于android平台来说,是最简单不过的功能了,无需太多代码,也无需自定义代码,只需要调用android提供的消息管理类SmsManager就可以了. [源码下载]http://www.code4apk.com/android-code/202 核心就是使用SmsManager的sendTextMessage方法加上PendingIntent跳转. 核心代码如下: SmsManager sms=SmsManager.getDefault();