解决方案 »
- Android中如何卸载SD卡
- 讨论:如何用android编写“截屏”的代码呢?就像windows操作系统截屏一样?
- 如何把EditText默认的输入软件盘设置成类似于计算器那样的软件盘
- 关于android平台网络下载的问题
- android Camera 设置摄像质量
- 关于Android的getDrawable加载资源的问题
- 大神救命啊!64位ubuntu下用Android Screen Monitor 报错!
- Wallpaper壁纸经常出现OOM
- 为什么清单文件中,添加apn权限报错,,求指教
- 求一个Android手机一键Root源码例子
- Qualcomm Snapdragon 600 openmax硬解码解码数据不对
- 指定颜色去改变原有的照片颜色,请大家给点思路
GetStringUTFChars我就是这样写的。但是我不知道具体怎么处理。导致我的结果是char[0]='\',char[1]='0'这样。我贴下我的代码、
jfieldID mcc_id = (*env)->GetFieldID(env, clazz, "merchCateCode",
"Ljava/lang/String;");//取ID
jstring mcc_emv = (*env)->GetObjectField(env, obj, mcc_id);//取值
const char *mcc = (*env)->GetStringUTFChars(env, mcc_emv, 0);//转char*
strcpy(ep.MerchCateCode, mcc);我这里是赋值给一个结构体里的一个属性,是通过javaBean的方式传递过去的。
EMV_Param ep = new EMV_Param();
ep.merchName = "China";
ep.merchCateCode = "\0x00\0x01";我这里"China"这种字符串可以。但是那种十六进制形式的字符串咋就全为0了呢?
GetStringUTFChars我多试了几遍,不是0的为题。是显示char[0]='\300',char[1]='\200'
不知道为啥会这样。java传的 "\0x00\0x01",c里看到的const char* 结果是'\300\200x00\300\200x01'能给我写个demo试验一下吗?我希望的效果是java传"\0x00\0x01"字符串,JNI里char[0]=0x00,char[1]=0x01