我一直在一个钛项目中直接尝试(我希望)一个简单的Android超级循环代码(使用SDK7.0.1.GA和超级循环3)。
var sysProp = require('android.os.SystemProperties');
var serialNumber = sysProp.get("sys.serialnumber", "none");
但是,当应用程序运行时,它会报告
Requested module not found:android.os.SystemProperties
我认为这可能是因为在编译应用程序(使用cli)时,它会报告
hyperloop:generateSources: Skipping Hyperloop wrapper generation, no usage found ...
我在jar中有类似的代码,如果我使用它,它就能工作,所以我想知道为什么超循环生成没有被触发,因为我认为这就是问题所在。
抱歉,应该解释得更清楚些。
这就是我使用的jar源,序列号的提取只是一个例子(我还需要访问其他信息制造商的特定数据),我想看看是否可以使用超级循环而不是包含JAR文件来复制JAR功能。如果它还没坏,就不要去修理它,只是好奇地想看看是否能做到。
发布于 2017-12-24 13:32:40
因此,通过@miga的反馈和一些尝试和错误,我想出了一个非常好的解决方案,并将完成所需的方法反射。我的新超循环功能是
function getData(data){
var result = false;
var Class = require("java.lang.Class");
var String = require("java.lang.String");
var c = Class.forName("android.os.SystemProperties");
var get = c.getMethod("get", String.class, String.class);
result = get.invoke(c, data, "Error");
return result;
}
其中数据是我想要的系统属性的字符串。
我使用它从三星设备中提取和匹配序列号,这是一个系统属性调用"ril.serialnumber“或"sys.serialnumber”。现在,我可以使用上面的函数来执行我使用JAR文件时所做的事情。我只是想和大家分享一下,以防其他人需要类似的东西。
发布于 2017-12-23 14:10:17
这是因为android.os.SystemProperties
不是您可以导入的类。查看https://developer.android.com/reference/android/os/package-summary.html上的android文档
你可以用
var build = require('android.os.Build');
console.log(build.SERIAL);
访问序列号。
https://stackoverflow.com/questions/47952887
复制相似问题