通过jstringTostring函数,可将Android端用户输入的信息通过JNI传送到本地函数,进行socket传输,以达到Android应用之间的通信。

//jstring to uint8_t*

uint8_t* jstringTostring(JNIEnv* env, jstring jstr)

{

uint8_t* rtn = NULL;

jclass clsstring = env->FindClass("java/lang/String");

jstring strencode = env->NewStringUTF("utf-8");

jmethodID mid = env->GetMethodID(clsstring, "getBytes", "(Ljava/lang/String;)[B");

jbyteArray barr= (jbyteArray)env->CallObjectMethod(jstr, mid, strencode);

jsize alen = env->GetArrayLength(barr);

jbyte* ba = env->GetByteArrayElements(barr, JNI_FALSE);

if (alen > 0)

{

rtn = (uint8_t*)malloc(alen + 1);

memcpy(rtn, ba, alen);

rtn[alen] = 0;

}

env->ReleaseByteArrayElements(barr, ba, 0);

return rtn;

}

//uint8_t* to jstring

jstring stoJstring(JNIEnv* env, const uint8_t* pat)

{

jclass strClass = env->FindClass("Ljava/lang/String;");

jmethodID ctorID = env->GetMethodID(strClass, "", "([BLjava/lang/String;)V");

jbyteArray bytes = env->NewByteArray(strlen(pat));

env->SetByteArrayRegion(bytes, 0, strlen(pat), (jbyte*)pat);

jstring encoding = env->NewStringUTF("utf-8");

return (jstring)env->NewObject(strClass, ctorID, bytes, encoding);

}

//invoke function  jstringTostring

static jint SendMessage(JNIEnv* env, jobject thiz, jstring str){

int ret = -1;

uint8_t *send_msg = NULL;

uint8_t *send_frame = NULL;

size_t framelen = 10;

send_msg = jstringTostring(env,str);

send_frame = Set_UserFrame(0x11,send_msg,10);

ret = send_to_all(send_frame,0x11,framelen);

if(ret > 0)

return IPP_SUCCESS;

else

return IPP_SOCKET_ERROR;

}

uint8 t对应java,uint8_t*和jstring之间的转换相关推荐

  1. java conversion_java 基本数据类型之间的转换(Conversion between Java basic data types).doc...

    java 基本数据类型之间的转换(Conversion between Java basic data types) java 基本数据类型之间的转换(Conversion between Java ...

  2. java千克和磅之间的转换,进行打印

    package pritice4; public class Changekg { public static void main(String[] args) { // 打印千克和磅之间的转换   ...

  3. Java开发中数据类型之间的转换

    1).简单类型数据间的转换,有两种方式:自动转换和强迫转换,通常产生在表达式中或方法的参数传递时. 自动转换 具体地讲,当1个较"小"数据与1个较"大"的数据1 ...

  4. java不同时区时间转换,Java不同时区(timezone)之间时间转换

    最近出现一个问题是这样的 我们的系统在国外打印的日志时间由于时差关系和国内不一致 看起来不方便 希望国外的日志和国内保持一致 即 需要对不同时区的时间做转换调整 统一为国内时间. 一.关于时区的一些概 ...

  5. Java不同时区(timezone)之间时间转换

    最近出现一个问题是这样的:我们的系统在国外打印的日志时间由于时差关系和国内不一致,看起来不方便,希望国外的日志和国内保持一致,即:需要对不同时区的时间做转换调整,统一为国内时间. 一.关于时区的一些概 ...

  6. Java int[] integer[] List之间的转换

    代码如下: package com.xinyu.test;import java.util.Arrays; import java.util.List; import java.util.stream ...

  7. java 时间与字符串之间的转换

    1. long字符串转换成yyyy-MM-dd HH:mm:ss格式输出 1 import java.text.SimpleDateFormat; 2 import java.util.Date; 3 ...

  8. Java 摄氏和华氏之间的转换

    题目描述 编写一个程序,从键盘读入一个实数表示摄氏温度,并将它们转化为华氏温度输出(输出时保留2位小数),其转换公式如下: 华氏温度=(9/5)×摄氏温度+32 输入描述 一个表示摄氏温度的实数 输出 ...

  9. Java List和Array之间的转换

    一.Array 转为List1.实现方法 :java中数组转list使用Arrays.asList(T... a)方法.public class Array2List {public static v ...

最新文章

  1. 电脑要什么配置好_学平面设计用什么电脑比较好?对配置要求高吗?
  2. 关于oracle监听程序的相关问题及解决方法
  3. Codeforces Round #211 (Div. 2)
  4. 紫书 例题8-10 UVa 714 (二分答案)
  5. HALCON示例程序check_blister.hdev药品胶囊检测
  6. conda环境管理介绍
  7. 洛谷 题解 P1135 【奇怪的电梯】
  8. ios设计规范_e微课5期:ios设计规范带来的设计细节(下篇)
  9. Shell 编程知识点集锦
  10. html怎么设背景颜色加上文字,怎么给视频添加文字 视频底部加文字,设置文字背景颜色、文字显示时间...
  11. Nginx为什么会比Apache Httpd高效
  12. PDF阅读器背景设置为护眼豆沙色(福昕)
  13. 如何使用百度云人脸识别服务(V3版接口python语言) (九)批量向人脸库中添加人脸
  14. 【镜像取证篇】VMware虚拟机配置文件取证
  15. 安卓 阿拉伯语显示时文字的适配
  16. python 批量下载 GPM 数据
  17. 构建企业级云原生日志系统架构
  18. 【财经期刊FM-Radio|2020年12月18日】
  19. LAA : random fourier features的又一应用
  20. 域控制器时代:ECU 的「消亡」与汽车「中央大脑」的重建

热门文章

  1. 网络俄罗斯方块对战游戏For FICQ
  2. yii2 php excel 导出,简单,易用的yii2导入和导出组件( illusion/yii2-excel)
  3. 微信公众号自动回复-底部菜单栏-关键字回复-回复2条消息(1文字,1图片)
  4. OUC2021软件工程OUC拼车程序小组Alpha阶段博客目录
  5. 《使用Java理解程序逻辑》学习笔记
  6. 蓝桥杯题目练习(能量项链)
  7. 2012-5-31 参加云时代质量的力量论坛与 16 届软件展览会的一些收获
  8. Java面试合集掌握百分之九十九,跳槽面试薪资60k
  9. Espressif IDF学习之路(1)项目文件结构的理解
  10. 微众银行数据库架构演进及 TiDB 实践经验