uint8 t对应java,uint8_t*和jstring之间的转换
通过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之间的转换相关推荐
- java conversion_java 基本数据类型之间的转换(Conversion between Java basic data types).doc...
java 基本数据类型之间的转换(Conversion between Java basic data types) java 基本数据类型之间的转换(Conversion between Java ...
- java千克和磅之间的转换,进行打印
package pritice4; public class Changekg { public static void main(String[] args) { // 打印千克和磅之间的转换 ...
- Java开发中数据类型之间的转换
1).简单类型数据间的转换,有两种方式:自动转换和强迫转换,通常产生在表达式中或方法的参数传递时. 自动转换 具体地讲,当1个较"小"数据与1个较"大"的数据1 ...
- java不同时区时间转换,Java不同时区(timezone)之间时间转换
最近出现一个问题是这样的 我们的系统在国外打印的日志时间由于时差关系和国内不一致 看起来不方便 希望国外的日志和国内保持一致 即 需要对不同时区的时间做转换调整 统一为国内时间. 一.关于时区的一些概 ...
- Java不同时区(timezone)之间时间转换
最近出现一个问题是这样的:我们的系统在国外打印的日志时间由于时差关系和国内不一致,看起来不方便,希望国外的日志和国内保持一致,即:需要对不同时区的时间做转换调整,统一为国内时间. 一.关于时区的一些概 ...
- Java int[] integer[] List之间的转换
代码如下: package com.xinyu.test;import java.util.Arrays; import java.util.List; import java.util.stream ...
- java 时间与字符串之间的转换
1. long字符串转换成yyyy-MM-dd HH:mm:ss格式输出 1 import java.text.SimpleDateFormat; 2 import java.util.Date; 3 ...
- Java 摄氏和华氏之间的转换
题目描述 编写一个程序,从键盘读入一个实数表示摄氏温度,并将它们转化为华氏温度输出(输出时保留2位小数),其转换公式如下: 华氏温度=(9/5)×摄氏温度+32 输入描述 一个表示摄氏温度的实数 输出 ...
- Java List和Array之间的转换
一.Array 转为List1.实现方法 :java中数组转list使用Arrays.asList(T... a)方法.public class Array2List {public static v ...
最新文章
- 电脑要什么配置好_学平面设计用什么电脑比较好?对配置要求高吗?
- 关于oracle监听程序的相关问题及解决方法
- Codeforces Round #211 (Div. 2)
- 紫书 例题8-10 UVa 714 (二分答案)
- HALCON示例程序check_blister.hdev药品胶囊检测
- conda环境管理介绍
- 洛谷 题解 P1135 【奇怪的电梯】
- ios设计规范_e微课5期:ios设计规范带来的设计细节(下篇)
- Shell 编程知识点集锦
- html怎么设背景颜色加上文字,怎么给视频添加文字 视频底部加文字,设置文字背景颜色、文字显示时间...
- Nginx为什么会比Apache Httpd高效
- PDF阅读器背景设置为护眼豆沙色(福昕)
- 如何使用百度云人脸识别服务(V3版接口python语言) (九)批量向人脸库中添加人脸
- 【镜像取证篇】VMware虚拟机配置文件取证
- 安卓 阿拉伯语显示时文字的适配
- python 批量下载 GPM 数据
- 构建企业级云原生日志系统架构
- 【财经期刊FM-Radio|2020年12月18日】
- LAA : random fourier features的又一应用
- 域控制器时代:ECU 的「消亡」与汽车「中央大脑」的重建
热门文章
- 网络俄罗斯方块对战游戏For FICQ
- yii2 php excel 导出,简单,易用的yii2导入和导出组件( illusion/yii2-excel)
- 微信公众号自动回复-底部菜单栏-关键字回复-回复2条消息(1文字,1图片)
- OUC2021软件工程OUC拼车程序小组Alpha阶段博客目录
- 《使用Java理解程序逻辑》学习笔记
- 蓝桥杯题目练习(能量项链)
- 2012-5-31 参加云时代质量的力量论坛与 16 届软件展览会的一些收获
- Java面试合集掌握百分之九十九,跳槽面试薪资60k
- Espressif IDF学习之路(1)项目文件结构的理解
- 微众银行数据库架构演进及 TiDB 实践经验