steam想申明库存量,不晓得在哪里去增设,那个出口处是稍稍有点儿深,由此可见毕竟也很单纯,一起来看一看什么样操作方式。操作方式方式01登入steam后,点选街道社区旁的对个人......
2024-02-05 557
ndk获取wifi的ip的方法,分两种,一种是通过java层获取,一种是通过linux api获取,用 linux api gethostname获取的名字是"localhost", 调用 gethostbyname 后返回的永远是"127.0.0.1",所以暂时不采用这种方式;
采用Java层获取,jni回调,最大的缺点是麻烦,现将实现过程如下:
方便他人亦是方便自己,如果觉得还行就点下赞吧,这样可以帮助其他人更快的找到解决问题的方法;有疑问的也可留言哦, 谢谢!
视频和代码的百度云地址:http://pan.baidu.com/s/1pJNT2Dt
在java层MainActivity 类中实获取wifi的密码的函数:
int getWifiAddress()
{
WifiManager mgr = (WifiManager)getSystemService(WIFI_SERVICE);
WifiInfo info = mgr.getConnectionInfo();
if (null == info)
return0;
int nIp = info.getIpAddress();
returnnIp;
}
将MainActivity 的对象指针传到ndk层:
在类中声明一个函数,不需要实现,由ndk层来实现:
public native int Tst();
并在MainActivity 的onCreate 方法中调用
Tst();
通过javah生成对应的c接口,由ndk层来来实现改函数:
在ndk层实现对应的函数 (C 的话需要加 extern "C"前缀)
extern "C" JNIEXPORT jint JNICALL Java_fk_localtalkie_MainActivity_Tst
(JNIEnv *pJniEnv, jobject objActivity);
如下图,javah的通过Eclipse的 菜单下的 Run->External Tools->External Tools Configuration... 配置的效果图:配置好后点击 Run 就会在 jni/platform下面生成对应的文件fk_localtalkie_MainActivity.h
通过javap生成java层 MainActivity 类的方法签名,
如下图,javp的通过Eclipse的 菜单下的 Run->External Tools->External Tools Configuration... 配置的效果图:配置好后点击 Run 就会在 Eclipse 控制台窗口生成对应的 函数签名,如下图
在ndk层实现
extern "C"
JNIEXPORT jint JNICALL Java_fk_localtalkie_MainActivity_Tst
(JNIEnv *pJniEnv, jobject objActivity)
{
/// 获取 MainActivity类,不是对象,对象已经有了是:objActivity
jclass clsActivity= pJniEnv->FindClass("fk/localtalkie/MainActivity");
/// 获取类中的函数 getWifiAddress的函数ID,第三个参数填写该函数的函数签名
jmethodIDmethod= pJniEnv->GetMethodID(clsActivity, "getWifiAddress", "()I");
/// 调用java层函数
int nIp = pJniEnv->CallIntMethod(objActivity, method);
/// 获取ip地址,ip地址就存在于变量ip中
char*ip = inet_ntoa(*((in_addr*)&nIp));
return0;
}
如果希望直接把 获取wifi ip的功能写成ndk接口getWifiIp(char* szIp);可以考虑在在 MainActivity的OnCreate中把JNIEnv环境指针 和 MainActivityjobject对象传过来,ndk层保存好这两个变量,然后在getWifiIp 函数就可以直接对用这两个变量;
到此完毕
以上方法由办公区教程网编辑摘抄自百度经验可供大家参考!
相关文章
steam想申明库存量,不晓得在哪里去增设,那个出口处是稍稍有点儿深,由此可见毕竟也很单纯,一起来看一看什么样操作方式。操作方式方式01登入steam后,点选街道社区旁的对个人......
2024-02-05 557
操作方式方法01【辅助widget】多种辅助工具相连接两个功能键的可同时按【Shift】加此功能键挑选出1、正方形、圆锥选框辅助工具 【M】 2、终端辅助工具 【V】 3、截叶......
2024-02-05 500
操作方式01文档格式难题qq肖像最合适用jpeg文档格式的相片,若是相片有透明化地下通道,能选用png文档格式上载。 02大小不一难题若是相片极重也可能将引致上载失利,检......
2024-02-05 419