Articles of native code

NewObject调用无效的间接引用

好的,所以我有下面的本地代码。 我试图从它返回一个FilePermissionInfo数组,填充stat()返回的一些数据。 问题是,当第一次调用NewObject时,我得到以下错误: 06-15 20:25:17.621:W / dalvikvm(2287):无效的间接引用0x40005820在decodeIndirectRef 06-15 20:25:17.621:E / dalvikvm(2287):VM中止 这很奇怪,因为我唯一的引用对象是jclass(用于FilePermissionInfo),我把它变成一个全局引用。 代码是: JNIEXPORT jobjectArray JNICALL Java_com_mn_rootscape_utils_NativeMethods_getFilesPermissions( JNIEnv* env, jobject thizz, jobjectArray filePathsArray ) { jobjectArray result; int size = (*env)->GetArrayLength(env, filePathsArray); jboolean isCopy; jclass filePermInfoCls = (*env)->FindClass(env, kFilePermissionInfoPath); if(!filePermInfoCls) { LOGE("getFilesPermissions: failed to get class reference."); return NULL; } gFilePermInfoClass = (jclass)(*env)->NewGlobalRef(env, filePermInfoCls); LOGI("got […]

Android:本地代码可以从android系统获得广播意图吗?

最近我见过一个有趣的应用程序 – 照片奇迹。 当这个应用程序被卸载,它显示一个网页调查页面,要求卸载应用程序的原因。 现在,这是问题。 据我所知,应用程序已被删除后,系统广播ACTION_PAKAGE_REMOVED意图。 但是这个有趣的应用程序能够显示我的网页,虽然官方文档说: “正在安装的软件包没有收到这个意图。 无论如何,我可以find一个进程检查应用程序的某种状态。 现在是这个问题。 原生的应用程序能从android系统捕获广播的意图吗? 如果可能,请告诉我如何! 🙁

如何在不停止媒体logging器的情况下更改媒体logging器的输出文件

我的项目有一个要求,那就是video正在录制并上传到服务器上,但是由于移动networking不可靠,所以我决定每隔30秒就要做一次 停止录音机 重置logging器状态 检索logging器写入的文件,并在不同的线程中上传(多部分表单数据)。 根据当前时间戳的散列值将logging器的outfile更改为新文件。 每30秒重复一次 由于每个30秒的video文件大小不超过1MB,并且上传顺利进行,因此完全适合我的需求。 但是我面对的问题是,每次媒体logging器停止和重新开始,都有500毫秒的延迟,所以我在服务器上收到的video每隔30秒就会有这500毫秒的时间,这对我现在的情况来说是非常糟糕的。我正在考虑是否可以更改logging器正在写入的文件? 相关代码: GenericCallback onTickListener = new GenericCallback() { @Override public void execute(Object data) { int timeElapsedInSecs = (int) data; if (timeElapsedInSecs % pingIntervalInSecs == 0) { new API(getActivity().getApplicationContext()).pingServer(objInterviewQuestion.getCurrentAccessToken(), new NetworkCallback() { @Override public void execute(int response_code, Object result) { // TODO: HANDLE callback } }); } if (timeElapsedInSecs […]