如何从本机空间中的宗地中检索字符串数据
How to retrieve string data from parcel in native space?
我有一个本机命令,它通过绑定器与Android Framework中的系统服务进行交互,使用包裹获取一些数据并将其显示给用户。数据由整数和字符串变量组成。从 SS 发送的数据使用 parcel.writeInt()和 parcel.writeString()分别用于整数和字符串数据。现在,问题是如何在本机空间(尽管不是 JNI)中检索此数据,其中我的本机命令处理代码以.cpp文件的形式存在?本机空间中没有等效的 package.readInt() 或 parcel.readString() 方法可用于解组或处理收到的宗地数据。如果我在那里使用可用的方法,如parcel.readInt32()和parcel.readString16()方法,数据不正确(可能),并且不会显示在屏幕上。对此问题的任何见解和可能的解决方案将不胜感激。
谢谢和问候,
你需要在 Java 中创建一个函数,从包裹中获取一个字符串:
private String getDataFromParcel(Parcel parcel) {
return parcel.readString();
}
并从 JNI 调用它(您说您在 JNI 上下文中拥有包裹):
std::string getString(jobject object, jobject parcel) const {
bool result = false;
JNIEnv *env = JniGetEnv();
jmethod jGetDataFromParcelMethod = getJMethod(object);
jstring javaValue = (jstring) env->CallObjectMethod(object, jGetDataFromParcelMethod, parcel);
...
}
相关文章:
- 是否可以从格式字符串中检索"width"
- C++从字符串中检索几行
- 如何检索由带通配符的字符串索引的对象
- 检索字符串的第一个字符,并在C++中按字母顺序进行比较
- 如何同时从嵌套映射中检索键字符串
- 检索嵌套在字符串中的每个括号的内容
- 使用 void 方法将字符串从 txt 文件检索到 int C++的向量
- 如何将浮子值的字节存储在字符串中并以后检索值
- 当我将字符串数组从 VBA 传递到 c++ 并将它们用作映射中的键时,为什么我无法从映射中检索数据(使用键)
- 检索字符串中定义的字符
- 如何从本机空间中的宗地中检索字符串数据
- C++序列化只检索字符串的一半
- 无法从数组中检索字符串
- 从指针检索字符串时获取常量空行输出
- 从本机调用C#以检索字符串
- 安卓系统上的JNI:如何从Java代码中检索字符串
- LLVM字符串值对象:如何从值中检索字符串
- 是否有标准的机制来检索C字符串的哈希值?
- 从赋值给双变量后检索字符串“0.1”
- C++检索字符串的一部分