Tag: java的

Android VpnService保护存储在本机代码中的套接字?

我正在编写VPN应用程序,用于VPN连接的套接字是在我的本机C代码中处理的,而不是在java中处理的。 如何在该套接字上使用VpnService.protect() ? 我注意到它有一个VpnService.protect(int)重载,我可以返回socket从本机代码返回到Java的int并以这种方式保护它吗? 例 // Native Code int socket; JNIEXPORT jint JNICALL Java_com_my_package_Class_initializeSocket ( JNIEnv *env, jobject jobj ) { socket = socket(AF_INET, SOCK_DGRAM, 0); // . . . Handler other socket preparations return (jint)socket; } // Java Code public native int initializeSocket(); . . . int socket = initializeSocket(); this.protect(socket); 编辑 我确实找到了这个描述protectfunction如何工作的问题,看起来它可能在C中有一个非常简单的实现,因为看起来它只是使用了setsockopt调用。 但我对C也比较陌生,所以我不能完全遵循如何复制它。

从手机图库中选择图片

这是我的logcat 06-03 17:35:58.603: E/AndroidRuntime(300): FATAL EXCEPTION: main 06-03 17:35:58.603: E/AndroidRuntime(300): java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=1, result=-1, data=Intent { dat=content://media/external/images/media/1 }} to activity {com.example.fatwallet/com.example.fatwallet.Create_adds_Activity}: java.lang.NullPointerException 06-03 17:35:58.603: E/AndroidRuntime(300): at android.app.ActivityThread.deliverResults(ActivityThread.java:3515) 06-03 17:35:58.603: E/AndroidRuntime(300): at android.app.ActivityThread.handleSendResult(ActivityThread.java:3557) 06-03 17:35:58.603: E/AndroidRuntime(300): at android.app.ActivityThread.access$2800(ActivityThread.java:125) 06-03 17:35:58.603: E/AndroidRuntime(300): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2063) 06-03 17:35:58.603: E/AndroidRuntime(300): at android.os.Handler.dispatchMessage(Handler.java:99) 06-03 17:35:58.603: E/AndroidRuntime(300): at android.os.Looper.loop(Looper.java:123) […]

在JNI函数(Android)之外从C调用java中的函数?

我正在尝试使用Android中的JNI从我的C代码调用Java函数,但我处于一种有点尴尬的境地。 我的C代码在传递给库的回调中的JNI函数之外执行。 这是java代码的一个例子 package com.my.java.package; class MyClass { public function handleData(byte[] data) { doSomethingWithThisData(data); } } 这是C代码的一个例子 void handleData(uint8_t *data, size_t len) { // I need to call handleData in my java // class instance from here, but i have // no access to a JNIEnv here. // I don’t think I can create one, […]

如何在Android中使用FFMPEG缩小默认摄像头捕获的video大小?

我正在尝试减少Android中默认摄像头捕获的video大小(它生成高分辨率video)。 FFMPEG是否具有对具有给定分辨率的video进行编码的属性? 我尝试使用Google,但所有示例都使用FFMPEG的命令行模式。 我的问题是: 我们可以在Android中使用ffmpeg命令行吗? 如果没有那么我们将如何实现它? 我们能否在Android中使用ffmpeg直接录制video? 还有其他解决方案吗?